- Filter Application Order
-
-
-
diff --git a/legacy/docs/templates/sponsor_logos.html b/legacy/docs/templates/sponsor_logos.html
deleted file mode 100644
index cfc65305..00000000
--- a/legacy/docs/templates/sponsor_logos.html
+++ /dev/null
@@ -1,20 +0,0 @@
-
diff --git a/legacy/process.py b/legacy/process.py
deleted file mode 100644
index 915df706..00000000
--- a/legacy/process.py
+++ /dev/null
@@ -1,182 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (C) 2011, 2012 by Wendy Liu, Andrew Hankinson
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-# THE SOFTWARE.
-
-import sys
-import os
-import math
-from vipsCC import VImage
-from optparse import OptionParser
-
-"""
-This is a python script that will process all the images in a directory and
-try to convert them into pyramidal tiff format using the vips image processing
-library. The converted images will then be moved into a subdirectory named
-"processed" within the specified directory.
-
-Dependencies:
- Python (version < 3.0)
- vips (http://www.vips.ecs.soton.ac.uk/index.php?title=VIPS)
-
-Usage:
- Either run it with
- python process.py [directory]
- or chmod it to executable (chmod +x process.py) and run it with
- ./process.py directory
-
-Options:
- If you want to resize all the images so that they have the same number
- of zoom levels, add the -r or --resize switch. This is not necessary,
- but will result in all the images being closer to the same size than
- processing without the switch.
-"""
-
-
-def main(opts):
- directory = opts['idir']
- processed = opts['odir']
- resize_images = opts['resz']
- quality = opts['qual']
- tilesize = opts['tsze']
- compression = opts['comp']
-
- twid = float(tilesize)
-
- # set the compression options. We only need to munge it
- # for jpeg -- all the other options we don't need a quality
- # declaration. If one is specified, we ignore it.
- if compression == "jpeg":
- compression = "{0}:{1}".format(compression, quality)
-
- # If an output directory is supplied, use that one. Else create
- # a folder called "processed" in the original directory.
- # If that directory already exists, fail
- if processed:
- # set the output directory to the supplied directory:
- outputdir = processed
- if not os.path.isdir(outputdir):
- os.mkdir(outputdir)
- else:
- if os.path.isdir(os.path.join(directory, 'processed')):
- print('There already is a processed directory! Delete it and try again.')
- sys.exit(1)
- else:
- outputdir = os.path.join(directory, 'processed')
- os.mkdir(outputdir)
-
- # Store the zooms of the files in a list
- # Use another list to store filenames (same indices etc)
- max_zoom_list = []
- filename_list = []
- dimensions_list = []
- for dirpath, dirnames, filenames in os.walk(directory):
- for filename in filenames:
- if filename.startswith("."):
- continue
- max_zoom, dimensions = get_image_info(os.path.join(directory, filename), twid)
- print("file: {0} has a maximum zoom of {1} ({2} zoom levels).".format(filename, (max_zoom - 1), max_zoom))
- max_zoom_list.append(max_zoom)
- filename_list.append(filename)
- dimensions_list.append(dimensions)
-
- # Now get the absolute lowest and highest max zoom
- lowest_max_zoom = min(max_zoom_list)
-
- # Now figure out which files have a zoom larger than that
- for i, filename in enumerate(filename_list):
- fn, ext = os.path.splitext(filename)
- input_file = os.path.join(directory, filename)
- new_fn = fn.replace(' ', '_') # Replaces all spaces with _ because spaces can cause problems in the long run
- output_file = os.path.join(outputdir, "{0}.tif".format(new_fn))
-
- print("Processing {0}".format(input_file))
- vimage = VImage.VImage(input_file)
-
- # If the image needs to be resized
- if max_zoom_list[i] > lowest_max_zoom and resize_images:
- print('{0} needs to be resized, resizing and converting now'.format(filename))
- # Resize this image to the proper size ... prepend resized_
- width, height = dimensions_list[i]
- new_width, new_height = resize_image(lowest_max_zoom, width, height, twid)
- vimage.resize_linear(new_width, new_height).vips2tiff('{0}:{1},tile:{2}x{2},pyramid'.format(output_file, compression, tilesize))
- else:
- vimage.vips2tiff('{0}:{1},tile:{2}x{2},pyramid'.format(output_file, compression, tilesize))
- del vimage
-
- # Now print out the max_zoom this document has
- print("This document has a max zoom of: {0}".format(lowest_max_zoom))
-
-
-# Calculate the maximum zoom of an image given its filepath
-def get_image_info(filepath, tilewidth):
- # First, find the largest dimension of the image
- image = VImage.VImage(filepath)
- width = image.Xsize()
- height = image.Ysize()
- largest_dim = width if width > height else height
-
- # Now figure out the number of zooms
- zoom_levels = math.ceil(math.log((largest_dim + 1) / (tilewidth), 2)) + 1
-
- del image
- return (int(zoom_levels), (width, height))
-
-
-# Resize an image to the desired zoom
-def resize_image(desired_zoom, width, height, tilewidth):
- # Figure out the maximum dimensions we can give it with this zoom
- max_dim = (2 ** (desired_zoom - 1) * tilewidth) - 1
-
- if width > height:
- width_largest = True
- else:
- width_largest = False
-
- # Now figure out the new dimensions
- if width_largest:
- # imagemagick will figure out the aspect ratio stuff
- new_dimensions = max_dim, height
- else:
- new_dimensions = width, max_dim
- return new_dimensions
-
-if __name__ == "__main__":
- usage = "%prog [options] directory [output directory]"
- parser = OptionParser(usage)
- parser.add_option("-r", "--resize", action="store_true", default=False, help="Resizes all images so that they have the same number of zoom levels", dest="resize")
- parser.add_option("-q", "--quality", action="store", default="75", type="string", help="JPEG Image Quality level for vips (0-100, Default: 75)", dest="quality")
- parser.add_option("-s", "--tilesize", action="store", default="256", type="string", help="Pyramid TIFF tile size (square, default 256)", dest="tilesize")
- parser.add_option("-m", "--compression", action="store", default="jpeg", choices=["jpeg", "none", "deflate"], help="The type of compression to use. Choose jpeg (default), none, or deflate", dest="compression")
- options, args = parser.parse_args()
-
- if len(args) < 1:
- parser.print_help()
- parser.error("You must specify a directory to process.")
-
- opts = {
- 'idir': args[0],
- 'odir': args[1],
- 'resz': options.resize,
- 'qual': options.quality,
- 'tsze': options.tilesize,
- 'comp': options.compression
- }
- sys.exit(main(opts))
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 00000000..f3ce6083
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,10850 @@
+{
+ "name": "diva",
+ "version": "6.0.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.0.0-beta.51",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.51.tgz",
+ "integrity": "sha1-vXHZsZKvl435FYKdOdQJRFZDmgw=",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "7.0.0-beta.51"
+ }
+ },
+ "@babel/generator": {
+ "version": "7.0.0-beta.51",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.51.tgz",
+ "integrity": "sha1-bHV1/952HQdIXgS67cA5LG2eMPY=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "7.0.0-beta.51",
+ "jsesc": "^2.5.1",
+ "lodash": "^4.17.5",
+ "source-map": "^0.5.0",
+ "trim-right": "^1.0.1"
+ },
+ "dependencies": {
+ "jsesc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz",
+ "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=",
+ "dev": true
+ }
+ }
+ },
+ "@babel/helper-function-name": {
+ "version": "7.0.0-beta.51",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.51.tgz",
+ "integrity": "sha1-IbSHSiJ8+Z7K/MMKkDAtpaJkBWE=",
+ "dev": true,
+ "requires": {
+ "@babel/helper-get-function-arity": "7.0.0-beta.51",
+ "@babel/template": "7.0.0-beta.51",
+ "@babel/types": "7.0.0-beta.51"
+ }
+ },
+ "@babel/helper-get-function-arity": {
+ "version": "7.0.0-beta.51",
+ "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.51.tgz",
+ "integrity": "sha1-MoGy0EWvlcFyzpGyCCXYXqRnZBE=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "7.0.0-beta.51"
+ }
+ },
+ "@babel/helper-split-export-declaration": {
+ "version": "7.0.0-beta.51",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.51.tgz",
+ "integrity": "sha1-imw/ZsTSZTUvwHdIT59ugKUauXg=",
+ "dev": true,
+ "requires": {
+ "@babel/types": "7.0.0-beta.51"
+ }
+ },
+ "@babel/highlight": {
+ "version": "7.0.0-beta.51",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.51.tgz",
+ "integrity": "sha1-6IRK4loVlcz9QriWI7Q3bKBtIl0=",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.0.0",
+ "esutils": "^2.0.2",
+ "js-tokens": "^3.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
+ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "@babel/parser": {
+ "version": "7.0.0-beta.51",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.0.0-beta.51.tgz",
+ "integrity": "sha1-J87C30Cd9gr1gnDtj2qlVAnqhvY=",
+ "dev": true
+ },
+ "@babel/template": {
+ "version": "7.0.0-beta.51",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.51.tgz",
+ "integrity": "sha1-lgKkCuvPNXrpZ34lMu9fyBD1+/8=",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "7.0.0-beta.51",
+ "@babel/parser": "7.0.0-beta.51",
+ "@babel/types": "7.0.0-beta.51",
+ "lodash": "^4.17.5"
+ }
+ },
+ "@babel/traverse": {
+ "version": "7.0.0-beta.51",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.51.tgz",
+ "integrity": "sha1-mB2vLOw0emIx06odnhgDsDqqpKg=",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "7.0.0-beta.51",
+ "@babel/generator": "7.0.0-beta.51",
+ "@babel/helper-function-name": "7.0.0-beta.51",
+ "@babel/helper-split-export-declaration": "7.0.0-beta.51",
+ "@babel/parser": "7.0.0-beta.51",
+ "@babel/types": "7.0.0-beta.51",
+ "debug": "^3.1.0",
+ "globals": "^11.1.0",
+ "invariant": "^2.2.0",
+ "lodash": "^4.17.5"
+ },
+ "dependencies": {
+ "globals": {
+ "version": "11.7.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz",
+ "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==",
+ "dev": true
+ }
+ }
+ },
+ "@babel/types": {
+ "version": "7.0.0-beta.51",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.51.tgz",
+ "integrity": "sha1-2AK3tUO1g2x3iqaReXq/APPZfqk=",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2",
+ "lodash": "^4.17.5",
+ "to-fast-properties": "^2.0.0"
+ },
+ "dependencies": {
+ "to-fast-properties": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
+ "dev": true
+ }
+ }
+ },
+ "@webassemblyjs/ast": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.5.13.tgz",
+ "integrity": "sha512-49nwvW/Hx9i+OYHg+mRhKZfAlqThr11Dqz8TsrvqGKMhdI2ijy3KBJOun2Z4770TPjrIJhR6KxChQIDaz8clDA==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/helper-module-context": "1.5.13",
+ "@webassemblyjs/helper-wasm-bytecode": "1.5.13",
+ "@webassemblyjs/wast-parser": "1.5.13",
+ "debug": "^3.1.0",
+ "mamacro": "^0.0.3"
+ }
+ },
+ "@webassemblyjs/floating-point-hex-parser": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.5.13.tgz",
+ "integrity": "sha512-vrvvB18Kh4uyghSKb0NTv+2WZx871WL2NzwMj61jcq2bXkyhRC+8Q0oD7JGVf0+5i/fKQYQSBCNMMsDMRVAMqA==",
+ "dev": true
+ },
+ "@webassemblyjs/helper-api-error": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.5.13.tgz",
+ "integrity": "sha512-dBh2CWYqjaDlvMmRP/kudxpdh30uXjIbpkLj9HQe+qtYlwvYjPRjdQXrq1cTAAOUSMTtzqbXIxEdEZmyKfcwsg==",
+ "dev": true
+ },
+ "@webassemblyjs/helper-buffer": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.5.13.tgz",
+ "integrity": "sha512-v7igWf1mHcpJNbn4m7e77XOAWXCDT76Xe7Is1VQFXc4K5jRcFrl9D0NrqM4XifQ0bXiuTSkTKMYqDxu5MhNljA==",
+ "dev": true,
+ "requires": {
+ "debug": "^3.1.0"
+ }
+ },
+ "@webassemblyjs/helper-code-frame": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.5.13.tgz",
+ "integrity": "sha512-yN6ScQQDFCiAXnVctdVO/J5NQRbwyTbQzsGzEgXsAnrxhjp0xihh+nNHQTMrq5UhOqTb5LykpJAvEv9AT0jnAQ==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/wast-printer": "1.5.13"
+ }
+ },
+ "@webassemblyjs/helper-fsm": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.5.13.tgz",
+ "integrity": "sha512-hSIKzbXjVMRvy3Jzhgu+vDd/aswJ+UMEnLRCkZDdknZO3Z9e6rp1DAs0tdLItjCFqkz9+0BeOPK/mk3eYvVzZg==",
+ "dev": true
+ },
+ "@webassemblyjs/helper-module-context": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.5.13.tgz",
+ "integrity": "sha512-zxJXULGPLB7r+k+wIlvGlXpT4CYppRz8fLUM/xobGHc9Z3T6qlmJD9ySJ2jknuktuuiR9AjnNpKYDECyaiX+QQ==",
+ "dev": true,
+ "requires": {
+ "debug": "^3.1.0",
+ "mamacro": "^0.0.3"
+ }
+ },
+ "@webassemblyjs/helper-wasm-bytecode": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.5.13.tgz",
+ "integrity": "sha512-0n3SoNGLvbJIZPhtMFq0XmmnA/YmQBXaZKQZcW8maGKwLpVcgjNrxpFZHEOLKjXJYVN5Il8vSfG7nRX50Zn+aw==",
+ "dev": true
+ },
+ "@webassemblyjs/helper-wasm-section": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.5.13.tgz",
+ "integrity": "sha512-IJ/goicOZ5TT1axZFSnlAtz4m8KEjYr12BNOANAwGFPKXM4byEDaMNXYowHMG0yKV9a397eU/NlibFaLwr1fbw==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.5.13",
+ "@webassemblyjs/helper-buffer": "1.5.13",
+ "@webassemblyjs/helper-wasm-bytecode": "1.5.13",
+ "@webassemblyjs/wasm-gen": "1.5.13",
+ "debug": "^3.1.0"
+ }
+ },
+ "@webassemblyjs/ieee754": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.5.13.tgz",
+ "integrity": "sha512-TseswvXEPpG5TCBKoLx9tT7+/GMACjC1ruo09j46ULRZWYm8XHpDWaosOjTnI7kr4SRJFzA6MWoUkAB+YCGKKg==",
+ "dev": true,
+ "requires": {
+ "ieee754": "^1.1.11"
+ }
+ },
+ "@webassemblyjs/leb128": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.5.13.tgz",
+ "integrity": "sha512-0NRMxrL+GG3eISGZBmLBLAVjphbN8Si15s7jzThaw1UE9e5BY1oH49/+MA1xBzxpf1OW5sf9OrPDOclk9wj2yg==",
+ "dev": true,
+ "requires": {
+ "long": "4.0.0"
+ },
+ "dependencies": {
+ "long": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
+ "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==",
+ "dev": true
+ }
+ }
+ },
+ "@webassemblyjs/utf8": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.5.13.tgz",
+ "integrity": "sha512-Ve1ilU2N48Ew0lVGB8FqY7V7hXjaC4+PeZM+vDYxEd+R2iQ0q+Wb3Rw8v0Ri0+rxhoz6gVGsnQNb4FjRiEH/Ng==",
+ "dev": true
+ },
+ "@webassemblyjs/wasm-edit": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.5.13.tgz",
+ "integrity": "sha512-X7ZNW4+Hga4f2NmqENnHke2V/mGYK/xnybJSIXImt1ulxbCOEs/A+ZK/Km2jgihjyVxp/0z0hwIcxC6PrkWtgw==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.5.13",
+ "@webassemblyjs/helper-buffer": "1.5.13",
+ "@webassemblyjs/helper-wasm-bytecode": "1.5.13",
+ "@webassemblyjs/helper-wasm-section": "1.5.13",
+ "@webassemblyjs/wasm-gen": "1.5.13",
+ "@webassemblyjs/wasm-opt": "1.5.13",
+ "@webassemblyjs/wasm-parser": "1.5.13",
+ "@webassemblyjs/wast-printer": "1.5.13",
+ "debug": "^3.1.0"
+ }
+ },
+ "@webassemblyjs/wasm-gen": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.5.13.tgz",
+ "integrity": "sha512-yfv94Se8R73zmr8GAYzezFHc3lDwE/lBXQddSiIZEKZFuqy7yWtm3KMwA1uGbv5G1WphimJxboXHR80IgX1hQA==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.5.13",
+ "@webassemblyjs/helper-wasm-bytecode": "1.5.13",
+ "@webassemblyjs/ieee754": "1.5.13",
+ "@webassemblyjs/leb128": "1.5.13",
+ "@webassemblyjs/utf8": "1.5.13"
+ }
+ },
+ "@webassemblyjs/wasm-opt": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.5.13.tgz",
+ "integrity": "sha512-IkXSkgzVhQ0QYAdIayuCWMmXSYx0dHGU8Ah/AxJf1gBvstMWVnzJnBwLsXLyD87VSBIcsqkmZ28dVb0mOC3oBg==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.5.13",
+ "@webassemblyjs/helper-buffer": "1.5.13",
+ "@webassemblyjs/wasm-gen": "1.5.13",
+ "@webassemblyjs/wasm-parser": "1.5.13",
+ "debug": "^3.1.0"
+ }
+ },
+ "@webassemblyjs/wasm-parser": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.5.13.tgz",
+ "integrity": "sha512-XnYoIcu2iqq8/LrtmdnN3T+bRjqYFjRHqWbqK3osD/0r/Fcv4d9ecRzjVtC29ENEuNTK4mQ9yyxCBCbK8S/cpg==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.5.13",
+ "@webassemblyjs/helper-api-error": "1.5.13",
+ "@webassemblyjs/helper-wasm-bytecode": "1.5.13",
+ "@webassemblyjs/ieee754": "1.5.13",
+ "@webassemblyjs/leb128": "1.5.13",
+ "@webassemblyjs/utf8": "1.5.13"
+ }
+ },
+ "@webassemblyjs/wast-parser": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.5.13.tgz",
+ "integrity": "sha512-Lbz65T0LQ1LgzKiUytl34CwuhMNhaCLgrh0JW4rJBN6INnBB8NMwUfQM+FxTnLY9qJ+lHJL/gCM5xYhB9oWi4A==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.5.13",
+ "@webassemblyjs/floating-point-hex-parser": "1.5.13",
+ "@webassemblyjs/helper-api-error": "1.5.13",
+ "@webassemblyjs/helper-code-frame": "1.5.13",
+ "@webassemblyjs/helper-fsm": "1.5.13",
+ "long": "^3.2.0",
+ "mamacro": "^0.0.3"
+ }
+ },
+ "@webassemblyjs/wast-printer": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.5.13.tgz",
+ "integrity": "sha512-QcwogrdqcBh8Z+eUF8SG+ag5iwQSXxQJELBEHmLkk790wgQgnIMmntT2sMAMw53GiFNckArf5X0bsCA44j3lWQ==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.5.13",
+ "@webassemblyjs/wast-parser": "1.5.13",
+ "long": "^3.2.0"
+ }
+ },
+ "abbrev": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
+ "dev": true
+ },
+ "accepts": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
+ "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
+ "dev": true,
+ "requires": {
+ "mime-types": "~2.1.18",
+ "negotiator": "0.6.1"
+ }
+ },
+ "acorn": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.2.tgz",
+ "integrity": "sha512-cJrKCNcr2kv8dlDnbw+JPUGjHZzo4myaxOLmpOX8a+rgX94YeTcTMv/LFJUSByRpc+i4GgVnnhLxvMu/2Y+rqw==",
+ "dev": true
+ },
+ "acorn-dynamic-import": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz",
+ "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==",
+ "dev": true,
+ "requires": {
+ "acorn": "^5.0.0"
+ }
+ },
+ "after": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
+ "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=",
+ "dev": true
+ },
+ "agent-base": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz",
+ "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==",
+ "dev": true,
+ "requires": {
+ "es6-promisify": "^5.0.0"
+ }
+ },
+ "ajv": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz",
+ "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^2.0.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.1"
+ },
+ "dependencies": {
+ "fast-deep-equal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
+ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
+ "dev": true
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true
+ }
+ }
+ },
+ "ajv-errors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.0.tgz",
+ "integrity": "sha1-7PAh+hCP0X37Xms4Py3SM+Mf/Fk=",
+ "dev": true
+ },
+ "ajv-keywords": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz",
+ "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=",
+ "dev": true
+ },
+ "align-text": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
+ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2",
+ "longest": "^1.0.1",
+ "repeat-string": "^1.5.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "amdefine": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
+ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
+ "dev": true
+ },
+ "ansi-colors": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.0.5.tgz",
+ "integrity": "sha512-VVjWpkfaphxUBFarydrQ3n26zX5nIK7hcbT3/ielrvwDDyBBjuh2vuSw1P9zkPq0cfqvdw7lkYHnu+OLSfIBsg==",
+ "dev": true
+ },
+ "ansi-escapes": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz",
+ "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==",
+ "dev": true
+ },
+ "ansi-html": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz",
+ "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=",
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "anymatch": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
+ "dev": true,
+ "requires": {
+ "micromatch": "^3.1.4",
+ "normalize-path": "^2.1.1"
+ }
+ },
+ "append-transform": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz",
+ "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==",
+ "dev": true,
+ "requires": {
+ "default-require-extensions": "^2.0.0"
+ }
+ },
+ "aproba": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
+ "dev": true
+ },
+ "are-we-there-yet": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
+ "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
+ "dev": true,
+ "requires": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
+ "dev": true
+ },
+ "arr-flatten": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
+ "dev": true
+ },
+ "arr-union": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
+ "dev": true
+ },
+ "array-find-index": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
+ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
+ "dev": true
+ },
+ "array-flatten": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.1.tgz",
+ "integrity": "sha1-Qmu52oQJDBg42BLIFQryCoMx4pY=",
+ "dev": true
+ },
+ "array-slice": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz",
+ "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=",
+ "dev": true
+ },
+ "array-union": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
+ "dev": true,
+ "requires": {
+ "array-uniq": "^1.0.1"
+ }
+ },
+ "array-uniq": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
+ "dev": true
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+ "dev": true
+ },
+ "array.prototype.fill": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.fill/-/array.prototype.fill-1.0.2.tgz",
+ "integrity": "sha1-qzMgfyHVfRqy9/DRzxItNBnDjvU="
+ },
+ "arraybuffer.slice": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz",
+ "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==",
+ "dev": true
+ },
+ "arrify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
+ "dev": true
+ },
+ "asn1": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
+ "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=",
+ "dev": true
+ },
+ "asn1.js": {
+ "version": "4.10.1",
+ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz",
+ "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "assert": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz",
+ "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=",
+ "dev": true,
+ "requires": {
+ "util": "0.10.3"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
+ "dev": true
+ },
+ "util": {
+ "version": "0.10.3",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
+ "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.1"
+ }
+ }
+ }
+ },
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true
+ },
+ "assertion-error": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
+ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
+ "dev": true
+ },
+ "assign-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
+ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
+ "dev": true
+ },
+ "async": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
+ "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.10"
+ }
+ },
+ "async-each": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
+ "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=",
+ "dev": true
+ },
+ "async-foreach": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz",
+ "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=",
+ "dev": true
+ },
+ "async-limiter": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
+ "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==",
+ "dev": true
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
+ "dev": true
+ },
+ "atob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz",
+ "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=",
+ "dev": true
+ },
+ "aws-sign2": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
+ "dev": true
+ },
+ "aws4": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz",
+ "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==",
+ "dev": true
+ },
+ "babel-code-frame": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
+ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "esutils": "^2.0.2",
+ "js-tokens": "^3.0.2"
+ }
+ },
+ "babel-core": {
+ "version": "6.26.3",
+ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz",
+ "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==",
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "^6.26.0",
+ "babel-generator": "^6.26.0",
+ "babel-helpers": "^6.24.1",
+ "babel-messages": "^6.23.0",
+ "babel-register": "^6.26.0",
+ "babel-runtime": "^6.26.0",
+ "babel-template": "^6.26.0",
+ "babel-traverse": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0",
+ "convert-source-map": "^1.5.1",
+ "debug": "^2.6.9",
+ "json5": "^0.5.1",
+ "lodash": "^4.17.4",
+ "minimatch": "^3.0.4",
+ "path-is-absolute": "^1.0.1",
+ "private": "^0.1.8",
+ "slash": "^1.0.0",
+ "source-map": "^0.5.7"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ },
+ "babel-generator": {
+ "version": "6.26.1",
+ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz",
+ "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==",
+ "dev": true,
+ "requires": {
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "detect-indent": "^4.0.0",
+ "jsesc": "^1.3.0",
+ "lodash": "^4.17.4",
+ "source-map": "^0.5.7",
+ "trim-right": "^1.0.1"
+ }
+ },
+ "babel-helper-builder-binary-assignment-operator-visitor": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz",
+ "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=",
+ "dev": true,
+ "requires": {
+ "babel-helper-explode-assignable-expression": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-helper-call-delegate": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz",
+ "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=",
+ "dev": true,
+ "requires": {
+ "babel-helper-hoist-variables": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-helper-define-map": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz",
+ "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=",
+ "dev": true,
+ "requires": {
+ "babel-helper-function-name": "^6.24.1",
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "lodash": "^4.17.4"
+ }
+ },
+ "babel-helper-explode-assignable-expression": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz",
+ "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-helper-function-name": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz",
+ "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=",
+ "dev": true,
+ "requires": {
+ "babel-helper-get-function-arity": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-helper-get-function-arity": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz",
+ "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-helper-hoist-variables": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz",
+ "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-helper-optimise-call-expression": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz",
+ "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-helper-regex": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz",
+ "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "lodash": "^4.17.4"
+ }
+ },
+ "babel-helper-remap-async-to-generator": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz",
+ "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=",
+ "dev": true,
+ "requires": {
+ "babel-helper-function-name": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-helper-replace-supers": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz",
+ "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=",
+ "dev": true,
+ "requires": {
+ "babel-helper-optimise-call-expression": "^6.24.1",
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-helpers": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz",
+ "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
+ }
+ },
+ "babel-loader": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.0.tgz",
+ "integrity": "sha512-lBUGBz411lSfT+8MHPEaqIVQ44odS1D/wxuTMhijqHc9arZR6jhJEaJa0RpZlCSITZoeK6xoDXTaVTrSoFD7IQ==",
+ "dev": true,
+ "requires": {
+ "find-cache-dir": "^1.0.0",
+ "loader-utils": "^1.0.2",
+ "mkdirp": "^0.5.1",
+ "util.promisify": "^1.0.0"
+ }
+ },
+ "babel-messages": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
+ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-check-es2015-constants": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz",
+ "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-syntax-async-functions": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz",
+ "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=",
+ "dev": true
+ },
+ "babel-plugin-syntax-exponentiation-operator": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz",
+ "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=",
+ "dev": true
+ },
+ "babel-plugin-syntax-trailing-function-commas": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz",
+ "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=",
+ "dev": true
+ },
+ "babel-plugin-transform-async-to-generator": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz",
+ "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=",
+ "dev": true,
+ "requires": {
+ "babel-helper-remap-async-to-generator": "^6.24.1",
+ "babel-plugin-syntax-async-functions": "^6.8.0",
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-arrow-functions": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz",
+ "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-block-scoped-functions": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz",
+ "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-block-scoping": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz",
+ "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.26.0",
+ "babel-template": "^6.26.0",
+ "babel-traverse": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "lodash": "^4.17.4"
+ }
+ },
+ "babel-plugin-transform-es2015-classes": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz",
+ "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=",
+ "dev": true,
+ "requires": {
+ "babel-helper-define-map": "^6.24.1",
+ "babel-helper-function-name": "^6.24.1",
+ "babel-helper-optimise-call-expression": "^6.24.1",
+ "babel-helper-replace-supers": "^6.24.1",
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-computed-properties": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz",
+ "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-destructuring": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz",
+ "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-duplicate-keys": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz",
+ "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-for-of": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz",
+ "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-function-name": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz",
+ "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=",
+ "dev": true,
+ "requires": {
+ "babel-helper-function-name": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-literals": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz",
+ "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-amd": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz",
+ "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-commonjs": {
+ "version": "6.26.2",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz",
+ "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==",
+ "dev": true,
+ "requires": {
+ "babel-plugin-transform-strict-mode": "^6.24.1",
+ "babel-runtime": "^6.26.0",
+ "babel-template": "^6.26.0",
+ "babel-types": "^6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-systemjs": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz",
+ "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=",
+ "dev": true,
+ "requires": {
+ "babel-helper-hoist-variables": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-umd": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz",
+ "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-transform-es2015-modules-amd": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-object-super": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz",
+ "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=",
+ "dev": true,
+ "requires": {
+ "babel-helper-replace-supers": "^6.24.1",
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-parameters": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz",
+ "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=",
+ "dev": true,
+ "requires": {
+ "babel-helper-call-delegate": "^6.24.1",
+ "babel-helper-get-function-arity": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-shorthand-properties": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz",
+ "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-spread": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz",
+ "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-sticky-regex": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz",
+ "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=",
+ "dev": true,
+ "requires": {
+ "babel-helper-regex": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-template-literals": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz",
+ "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-typeof-symbol": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz",
+ "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-unicode-regex": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz",
+ "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=",
+ "dev": true,
+ "requires": {
+ "babel-helper-regex": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "regexpu-core": "^2.0.0"
+ }
+ },
+ "babel-plugin-transform-exponentiation-operator": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz",
+ "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=",
+ "dev": true,
+ "requires": {
+ "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1",
+ "babel-plugin-syntax-exponentiation-operator": "^6.8.0",
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-regenerator": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz",
+ "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=",
+ "dev": true,
+ "requires": {
+ "regenerator-transform": "^0.10.0"
+ }
+ },
+ "babel-plugin-transform-strict-mode": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz",
+ "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-preset-env": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz",
+ "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==",
+ "dev": true,
+ "requires": {
+ "babel-plugin-check-es2015-constants": "^6.22.0",
+ "babel-plugin-syntax-trailing-function-commas": "^6.22.0",
+ "babel-plugin-transform-async-to-generator": "^6.22.0",
+ "babel-plugin-transform-es2015-arrow-functions": "^6.22.0",
+ "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0",
+ "babel-plugin-transform-es2015-block-scoping": "^6.23.0",
+ "babel-plugin-transform-es2015-classes": "^6.23.0",
+ "babel-plugin-transform-es2015-computed-properties": "^6.22.0",
+ "babel-plugin-transform-es2015-destructuring": "^6.23.0",
+ "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0",
+ "babel-plugin-transform-es2015-for-of": "^6.23.0",
+ "babel-plugin-transform-es2015-function-name": "^6.22.0",
+ "babel-plugin-transform-es2015-literals": "^6.22.0",
+ "babel-plugin-transform-es2015-modules-amd": "^6.22.0",
+ "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0",
+ "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0",
+ "babel-plugin-transform-es2015-modules-umd": "^6.23.0",
+ "babel-plugin-transform-es2015-object-super": "^6.22.0",
+ "babel-plugin-transform-es2015-parameters": "^6.23.0",
+ "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0",
+ "babel-plugin-transform-es2015-spread": "^6.22.0",
+ "babel-plugin-transform-es2015-sticky-regex": "^6.22.0",
+ "babel-plugin-transform-es2015-template-literals": "^6.22.0",
+ "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0",
+ "babel-plugin-transform-es2015-unicode-regex": "^6.22.0",
+ "babel-plugin-transform-exponentiation-operator": "^6.22.0",
+ "babel-plugin-transform-regenerator": "^6.22.0",
+ "browserslist": "^3.2.6",
+ "invariant": "^2.2.2",
+ "semver": "^5.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
+ "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==",
+ "dev": true
+ }
+ }
+ },
+ "babel-register": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz",
+ "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=",
+ "dev": true,
+ "requires": {
+ "babel-core": "^6.26.0",
+ "babel-runtime": "^6.26.0",
+ "core-js": "^2.5.0",
+ "home-or-tmp": "^2.0.0",
+ "lodash": "^4.17.4",
+ "mkdirp": "^0.5.1",
+ "source-map-support": "^0.4.15"
+ }
+ },
+ "babel-runtime": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
+ "dev": true,
+ "requires": {
+ "core-js": "^2.4.0",
+ "regenerator-runtime": "^0.11.0"
+ }
+ },
+ "babel-template": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
+ "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.26.0",
+ "babel-traverse": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0",
+ "lodash": "^4.17.4"
+ }
+ },
+ "babel-traverse": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
+ "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "^6.26.0",
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0",
+ "debug": "^2.6.8",
+ "globals": "^9.18.0",
+ "invariant": "^2.2.2",
+ "lodash": "^4.17.4"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ },
+ "babel-types": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
+ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.26.0",
+ "esutils": "^2.0.2",
+ "lodash": "^4.17.4",
+ "to-fast-properties": "^1.0.3"
+ }
+ },
+ "babylon": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
+ "dev": true
+ },
+ "backo2": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
+ "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=",
+ "dev": true
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+ "dev": true
+ },
+ "base": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
+ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
+ "dev": true,
+ "requires": {
+ "cache-base": "^1.0.1",
+ "class-utils": "^0.3.5",
+ "component-emitter": "^1.2.1",
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.1",
+ "mixin-deep": "^1.2.0",
+ "pascalcase": "^0.1.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "base64-arraybuffer": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz",
+ "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=",
+ "dev": true
+ },
+ "base64-js": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz",
+ "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==",
+ "dev": true
+ },
+ "base64id": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz",
+ "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=",
+ "dev": true
+ },
+ "batch": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
+ "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=",
+ "dev": true
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tweetnacl": "^0.14.3"
+ }
+ },
+ "beeper": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz",
+ "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=",
+ "dev": true
+ },
+ "better-assert": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz",
+ "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=",
+ "dev": true,
+ "requires": {
+ "callsite": "1.0.0"
+ }
+ },
+ "big.js": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
+ "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==",
+ "dev": true
+ },
+ "binary-extensions": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz",
+ "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=",
+ "dev": true
+ },
+ "blob": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz",
+ "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=",
+ "dev": true
+ },
+ "block-stream": {
+ "version": "0.0.9",
+ "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
+ "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
+ "dev": true,
+ "requires": {
+ "inherits": "~2.0.0"
+ }
+ },
+ "bluebird": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
+ "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==",
+ "dev": true
+ },
+ "bn.js": {
+ "version": "4.11.8",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
+ "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
+ "dev": true
+ },
+ "body-parser": {
+ "version": "1.18.2",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz",
+ "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=",
+ "dev": true,
+ "requires": {
+ "bytes": "3.0.0",
+ "content-type": "~1.0.4",
+ "debug": "2.6.9",
+ "depd": "~1.1.1",
+ "http-errors": "~1.6.2",
+ "iconv-lite": "0.4.19",
+ "on-finished": "~2.3.0",
+ "qs": "6.5.1",
+ "raw-body": "2.3.2",
+ "type-is": "~1.6.15"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "iconv-lite": {
+ "version": "0.4.19",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
+ "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==",
+ "dev": true
+ },
+ "qs": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
+ "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==",
+ "dev": true
+ }
+ }
+ },
+ "bonjour": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz",
+ "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=",
+ "dev": true,
+ "requires": {
+ "array-flatten": "^2.1.0",
+ "deep-equal": "^1.0.1",
+ "dns-equal": "^1.0.0",
+ "dns-txt": "^2.0.2",
+ "multicast-dns": "^6.0.1",
+ "multicast-dns-service-types": "^1.1.0"
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "dev": true,
+ "requires": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "brorand": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+ "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",
+ "dev": true
+ },
+ "browser-stdout": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
+ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
+ "dev": true
+ },
+ "browserify-aes": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
+ "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
+ "dev": true,
+ "requires": {
+ "buffer-xor": "^1.0.3",
+ "cipher-base": "^1.0.0",
+ "create-hash": "^1.1.0",
+ "evp_bytestokey": "^1.0.3",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "browserify-cipher": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
+ "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
+ "dev": true,
+ "requires": {
+ "browserify-aes": "^1.0.4",
+ "browserify-des": "^1.0.0",
+ "evp_bytestokey": "^1.0.0"
+ }
+ },
+ "browserify-des": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
+ "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
+ "dev": true,
+ "requires": {
+ "cipher-base": "^1.0.1",
+ "des.js": "^1.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "browserify-rsa": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
+ "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.1.0",
+ "randombytes": "^2.0.1"
+ }
+ },
+ "browserify-sign": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz",
+ "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.1.1",
+ "browserify-rsa": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "create-hmac": "^1.1.2",
+ "elliptic": "^6.0.0",
+ "inherits": "^2.0.1",
+ "parse-asn1": "^5.0.0"
+ }
+ },
+ "browserify-zlib": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
+ "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
+ "dev": true,
+ "requires": {
+ "pako": "~1.0.5"
+ }
+ },
+ "browserslist": {
+ "version": "3.2.8",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz",
+ "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==",
+ "dev": true,
+ "requires": {
+ "caniuse-lite": "^1.0.30000844",
+ "electron-to-chromium": "^1.3.47"
+ }
+ },
+ "buffer": {
+ "version": "4.9.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
+ "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
+ "dev": true,
+ "requires": {
+ "base64-js": "^1.0.2",
+ "ieee754": "^1.1.4",
+ "isarray": "^1.0.0"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ }
+ }
+ },
+ "buffer-alloc": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
+ "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
+ "dev": true,
+ "requires": {
+ "buffer-alloc-unsafe": "^1.1.0",
+ "buffer-fill": "^1.0.0"
+ }
+ },
+ "buffer-alloc-unsafe": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
+ "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==",
+ "dev": true
+ },
+ "buffer-fill": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
+ "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=",
+ "dev": true
+ },
+ "buffer-from": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz",
+ "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==",
+ "dev": true
+ },
+ "buffer-indexof": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz",
+ "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==",
+ "dev": true
+ },
+ "buffer-xor": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+ "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",
+ "dev": true
+ },
+ "builtin-modules": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
+ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
+ "dev": true
+ },
+ "builtin-status-codes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
+ "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=",
+ "dev": true
+ },
+ "bytes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
+ "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=",
+ "dev": true
+ },
+ "cacache": {
+ "version": "10.0.4",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz",
+ "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==",
+ "dev": true,
+ "requires": {
+ "bluebird": "^3.5.1",
+ "chownr": "^1.0.1",
+ "glob": "^7.1.2",
+ "graceful-fs": "^4.1.11",
+ "lru-cache": "^4.1.1",
+ "mississippi": "^2.0.0",
+ "mkdirp": "^0.5.1",
+ "move-concurrently": "^1.0.1",
+ "promise-inflight": "^1.0.1",
+ "rimraf": "^2.6.2",
+ "ssri": "^5.2.4",
+ "unique-filename": "^1.1.0",
+ "y18n": "^4.0.0"
+ },
+ "dependencies": {
+ "y18n": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
+ "dev": true
+ }
+ }
+ },
+ "cache-base": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
+ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+ "dev": true,
+ "requires": {
+ "collection-visit": "^1.0.0",
+ "component-emitter": "^1.2.1",
+ "get-value": "^2.0.6",
+ "has-value": "^1.0.0",
+ "isobject": "^3.0.1",
+ "set-value": "^2.0.0",
+ "to-object-path": "^0.3.0",
+ "union-value": "^1.0.0",
+ "unset-value": "^1.0.0"
+ }
+ },
+ "callsite": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",
+ "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=",
+ "dev": true
+ },
+ "camelcase": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
+ "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
+ "dev": true,
+ "optional": true
+ },
+ "camelcase-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
+ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
+ "dev": true,
+ "requires": {
+ "camelcase": "^2.0.0",
+ "map-obj": "^1.0.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+ "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
+ "dev": true
+ }
+ }
+ },
+ "caniuse-lite": {
+ "version": "1.0.30000865",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000865.tgz",
+ "integrity": "sha512-vs79o1mOSKRGv/1pSkp4EXgl4ZviWeYReXw60XfacPU64uQWZwJT6vZNmxRF9O+6zu71sJwMxLK5JXxbzuVrLw==",
+ "dev": true
+ },
+ "caseless": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
+ "dev": true
+ },
+ "center-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
+ "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "align-text": "^0.1.3",
+ "lazy-cache": "^1.0.3"
+ }
+ },
+ "chai": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz",
+ "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=",
+ "dev": true,
+ "requires": {
+ "assertion-error": "^1.0.1",
+ "check-error": "^1.0.1",
+ "deep-eql": "^3.0.0",
+ "get-func-name": "^2.0.0",
+ "pathval": "^1.0.0",
+ "type-detect": "^4.0.0"
+ }
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ }
+ },
+ "chardet": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.5.0.tgz",
+ "integrity": "sha512-9ZTaoBaePSCFvNlNGrsyI8ZVACP2svUtq0DkM7t4K2ClAa96sqOIRjAzDTc8zXzFt1cZR46rRzLTiHFSJ+Qw0g==",
+ "dev": true
+ },
+ "check-error": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
+ "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",
+ "dev": true
+ },
+ "chokidar": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz",
+ "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==",
+ "dev": true,
+ "requires": {
+ "anymatch": "^2.0.0",
+ "async-each": "^1.0.0",
+ "braces": "^2.3.0",
+ "fsevents": "^1.2.2",
+ "glob-parent": "^3.1.0",
+ "inherits": "^2.0.1",
+ "is-binary-path": "^1.0.0",
+ "is-glob": "^4.0.0",
+ "lodash.debounce": "^4.0.8",
+ "normalize-path": "^2.1.1",
+ "path-is-absolute": "^1.0.0",
+ "readdirp": "^2.0.0",
+ "upath": "^1.0.5"
+ },
+ "dependencies": {
+ "glob-parent": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+ "dev": true,
+ "requires": {
+ "is-glob": "^3.1.0",
+ "path-dirname": "^1.0.0"
+ },
+ "dependencies": {
+ "is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.0"
+ }
+ }
+ }
+ }
+ }
+ },
+ "chownr": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz",
+ "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=",
+ "dev": true
+ },
+ "chrome-trace-event": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz",
+ "integrity": "sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A==",
+ "dev": true,
+ "requires": {
+ "tslib": "^1.9.0"
+ }
+ },
+ "cipher-base": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
+ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "circular-json": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.5.5.tgz",
+ "integrity": "sha512-13YaR6kiz0kBNmIVM87Io8Hp7bWOo4r61vkEANy8iH9R9bc6avud/1FT0SBpqR1RpIQADOh/Q+yHZDA1iL6ysA==",
+ "dev": true
+ },
+ "class-utils": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
+ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
+ "dev": true,
+ "requires": {
+ "arr-union": "^3.1.0",
+ "define-property": "^0.2.5",
+ "isobject": "^3.0.0",
+ "static-extend": "^0.1.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ }
+ }
+ },
+ "clean-webpack-plugin": {
+ "version": "0.1.19",
+ "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-0.1.19.tgz",
+ "integrity": "sha512-M1Li5yLHECcN2MahoreuODul5LkjohJGFxLPTjl3j1ttKrF5rgjZET1SJduuqxLAuT1gAPOdkhg03qcaaU1KeA==",
+ "dev": true,
+ "requires": {
+ "rimraf": "^2.6.1"
+ }
+ },
+ "cli": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz",
+ "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=",
+ "dev": true,
+ "requires": {
+ "exit": "0.1.2",
+ "glob": "^7.1.1"
+ }
+ },
+ "cli-cursor": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
+ "dev": true,
+ "requires": {
+ "restore-cursor": "^2.0.0"
+ }
+ },
+ "cli-width": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
+ "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
+ "dev": true
+ },
+ "cliui": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
+ "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "center-align": "^0.1.1",
+ "right-align": "^0.1.1",
+ "wordwrap": "0.0.2"
+ },
+ "dependencies": {
+ "wordwrap": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
+ "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "clone-deep": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz",
+ "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==",
+ "dev": true,
+ "requires": {
+ "for-own": "^1.0.0",
+ "is-plain-object": "^2.0.4",
+ "kind-of": "^6.0.0",
+ "shallow-clone": "^1.0.0"
+ }
+ },
+ "co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
+ "dev": true
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
+ "dev": true
+ },
+ "collection-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
+ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
+ "dev": true,
+ "requires": {
+ "map-visit": "^1.0.0",
+ "object-visit": "^1.0.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.2",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz",
+ "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.1"
+ }
+ },
+ "color-name": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz",
+ "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=",
+ "dev": true
+ },
+ "colors": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.2.tgz",
+ "integrity": "sha512-rhP0JSBGYvpcNQj4s5AdShMeE5ahMop96cTeDl/v9qQQm2fYClE2QXZRi8wLzc+GmXSxdIqqbOIAhyObEXDbfQ==",
+ "dev": true
+ },
+ "combine-lists": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/combine-lists/-/combine-lists-1.0.1.tgz",
+ "integrity": "sha1-RYwH4J4NkA/Ci3Cj/sLazR0st/Y=",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.5.0"
+ }
+ },
+ "combined-stream": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
+ "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
+ "dev": true,
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "commander": {
+ "version": "2.15.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
+ "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==",
+ "dev": true
+ },
+ "commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
+ "dev": true
+ },
+ "compare-versions": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.3.1.tgz",
+ "integrity": "sha512-GkIcfJ9sDt4+gS+RWH3X+kR7ezuKdu3fg2oA9nRA8HZoqZwAKv3ml3TyfB9OyV2iFXxCw7q5XfV6SyPbSCT2pw==",
+ "dev": true
+ },
+ "component-bind": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",
+ "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=",
+ "dev": true
+ },
+ "component-emitter": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
+ "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
+ "dev": true
+ },
+ "component-inherit": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz",
+ "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=",
+ "dev": true
+ },
+ "compressible": {
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.14.tgz",
+ "integrity": "sha1-MmxfUH+7BV9UEWeCuWmoG2einac=",
+ "dev": true,
+ "requires": {
+ "mime-db": ">= 1.34.0 < 2"
+ }
+ },
+ "compression": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.3.tgz",
+ "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==",
+ "dev": true,
+ "requires": {
+ "accepts": "~1.3.5",
+ "bytes": "3.0.0",
+ "compressible": "~2.0.14",
+ "debug": "2.6.9",
+ "on-headers": "~1.0.1",
+ "safe-buffer": "5.1.2",
+ "vary": "~1.1.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
+ },
+ "concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "dev": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
+ "connect": {
+ "version": "3.6.6",
+ "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz",
+ "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "finalhandler": "1.1.0",
+ "parseurl": "~1.3.2",
+ "utils-merge": "1.0.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ },
+ "connect-history-api-fallback": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz",
+ "integrity": "sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=",
+ "dev": true
+ },
+ "console-browserify": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
+ "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
+ "dev": true,
+ "requires": {
+ "date-now": "^0.1.4"
+ }
+ },
+ "console-control-strings": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
+ "dev": true
+ },
+ "constants-browserify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
+ "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
+ "dev": true
+ },
+ "content-disposition": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
+ "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=",
+ "dev": true
+ },
+ "content-type": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
+ "dev": true
+ },
+ "convert-source-map": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz",
+ "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=",
+ "dev": true
+ },
+ "cookie": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
+ "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=",
+ "dev": true
+ },
+ "cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
+ "dev": true
+ },
+ "copy-concurrently": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
+ "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==",
+ "dev": true,
+ "requires": {
+ "aproba": "^1.1.1",
+ "fs-write-stream-atomic": "^1.0.8",
+ "iferr": "^0.1.5",
+ "mkdirp": "^0.5.1",
+ "rimraf": "^2.5.4",
+ "run-queue": "^1.0.0"
+ }
+ },
+ "copy-descriptor": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
+ "dev": true
+ },
+ "copy-webpack-plugin": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.5.2.tgz",
+ "integrity": "sha512-zmC33E8FFSq3AbflTvqvPvBo621H36Afsxlui91d+QyZxPIuXghfnTsa1CuqiAaCPgJoSUWfTFbKJnadZpKEbQ==",
+ "dev": true,
+ "requires": {
+ "cacache": "^10.0.4",
+ "find-cache-dir": "^1.0.0",
+ "globby": "^7.1.1",
+ "is-glob": "^4.0.0",
+ "loader-utils": "^1.1.0",
+ "minimatch": "^3.0.4",
+ "p-limit": "^1.0.0",
+ "serialize-javascript": "^1.4.0"
+ },
+ "dependencies": {
+ "globby": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz",
+ "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=",
+ "dev": true,
+ "requires": {
+ "array-union": "^1.0.1",
+ "dir-glob": "^2.0.0",
+ "glob": "^7.1.2",
+ "ignore": "^3.3.5",
+ "pify": "^3.0.0",
+ "slash": "^1.0.0"
+ }
+ },
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ }
+ }
+ },
+ "core-js": {
+ "version": "2.5.7",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz",
+ "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==",
+ "dev": true
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+ "dev": true
+ },
+ "cosmiconfig": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-4.0.0.tgz",
+ "integrity": "sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==",
+ "dev": true,
+ "requires": {
+ "is-directory": "^0.3.1",
+ "js-yaml": "^3.9.0",
+ "parse-json": "^4.0.0",
+ "require-from-string": "^2.0.1"
+ },
+ "dependencies": {
+ "parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "dev": true,
+ "requires": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ }
+ }
+ }
+ },
+ "create-ecdh": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz",
+ "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.1.0",
+ "elliptic": "^6.0.0"
+ }
+ },
+ "create-hash": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
+ "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
+ "dev": true,
+ "requires": {
+ "cipher-base": "^1.0.1",
+ "inherits": "^2.0.1",
+ "md5.js": "^1.3.4",
+ "ripemd160": "^2.0.1",
+ "sha.js": "^2.4.0"
+ }
+ },
+ "create-hmac": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
+ "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
+ "dev": true,
+ "requires": {
+ "cipher-base": "^1.0.3",
+ "create-hash": "^1.1.0",
+ "inherits": "^2.0.1",
+ "ripemd160": "^2.0.0",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ }
+ },
+ "cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^4.0.1",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ },
+ "crypto-browserify": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
+ "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
+ "dev": true,
+ "requires": {
+ "browserify-cipher": "^1.0.0",
+ "browserify-sign": "^4.0.0",
+ "create-ecdh": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "create-hmac": "^1.1.0",
+ "diffie-hellman": "^5.0.0",
+ "inherits": "^2.0.1",
+ "pbkdf2": "^3.0.3",
+ "public-encrypt": "^4.0.0",
+ "randombytes": "^2.0.0",
+ "randomfill": "^1.0.3"
+ }
+ },
+ "css-loader": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-1.0.0.tgz",
+ "integrity": "sha512-tMXlTYf3mIMt3b0dDCOQFJiVvxbocJ5Ho577WiGPYPZcqVEO218L2iU22pDXzkTZCLDE+9AmGSUkWxeh/nZReA==",
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "^6.26.0",
+ "css-selector-tokenizer": "^0.7.0",
+ "icss-utils": "^2.1.0",
+ "loader-utils": "^1.0.2",
+ "lodash.camelcase": "^4.3.0",
+ "postcss": "^6.0.23",
+ "postcss-modules-extract-imports": "^1.2.0",
+ "postcss-modules-local-by-default": "^1.2.0",
+ "postcss-modules-scope": "^1.1.0",
+ "postcss-modules-values": "^1.3.0",
+ "postcss-value-parser": "^3.3.0",
+ "source-list-map": "^2.0.0"
+ }
+ },
+ "css-selector-tokenizer": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz",
+ "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=",
+ "dev": true,
+ "requires": {
+ "cssesc": "^0.1.0",
+ "fastparse": "^1.1.1",
+ "regexpu-core": "^1.0.0"
+ },
+ "dependencies": {
+ "regexpu-core": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz",
+ "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=",
+ "dev": true,
+ "requires": {
+ "regenerate": "^1.2.1",
+ "regjsgen": "^0.2.0",
+ "regjsparser": "^0.1.4"
+ }
+ }
+ }
+ },
+ "cssesc": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz",
+ "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=",
+ "dev": true
+ },
+ "currently-unhandled": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
+ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
+ "dev": true,
+ "requires": {
+ "array-find-index": "^1.0.1"
+ }
+ },
+ "custom-event": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz",
+ "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=",
+ "dev": true
+ },
+ "cycle": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz",
+ "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=",
+ "dev": true,
+ "optional": true
+ },
+ "cyclist": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz",
+ "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=",
+ "dev": true
+ },
+ "d": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
+ "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
+ "dev": true,
+ "requires": {
+ "es5-ext": "^0.10.9"
+ }
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "date-format": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/date-format/-/date-format-1.2.0.tgz",
+ "integrity": "sha1-YV6CjiM90aubua4JUODOzPpuytg=",
+ "dev": true
+ },
+ "date-now": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
+ "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=",
+ "dev": true
+ },
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "dev": true
+ },
+ "decode-uri-component": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
+ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
+ "dev": true
+ },
+ "deep-eql": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
+ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
+ "dev": true,
+ "requires": {
+ "type-detect": "^4.0.0"
+ }
+ },
+ "deep-equal": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
+ "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=",
+ "dev": true
+ },
+ "default-gateway": {
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-2.7.2.tgz",
+ "integrity": "sha512-lAc4i9QJR0YHSDFdzeBQKfZ1SRDG3hsJNEkrpcZa8QhBfidLAilT60BDEIVUUGqosFp425KOgB3uYqcnQrWafQ==",
+ "dev": true,
+ "requires": {
+ "execa": "^0.10.0",
+ "ip-regex": "^2.1.0"
+ },
+ "dependencies": {
+ "cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dev": true,
+ "requires": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ },
+ "execa": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz",
+ "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^6.0.0",
+ "get-stream": "^3.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ }
+ }
+ }
+ },
+ "default-require-extensions": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz",
+ "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=",
+ "dev": true,
+ "requires": {
+ "strip-bom": "^3.0.0"
+ }
+ },
+ "define-properties": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz",
+ "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=",
+ "dev": true,
+ "requires": {
+ "foreach": "^2.0.5",
+ "object-keys": "^1.0.8"
+ }
+ },
+ "define-property": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.2",
+ "isobject": "^3.0.1"
+ },
+ "dependencies": {
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "del": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz",
+ "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=",
+ "dev": true,
+ "requires": {
+ "globby": "^6.1.0",
+ "is-path-cwd": "^1.0.0",
+ "is-path-in-cwd": "^1.0.0",
+ "p-map": "^1.1.1",
+ "pify": "^3.0.0",
+ "rimraf": "^2.2.8"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ }
+ }
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
+ "dev": true
+ },
+ "delegates": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
+ "dev": true
+ },
+ "depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
+ "dev": true
+ },
+ "des.js": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz",
+ "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "destroy": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
+ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
+ "dev": true
+ },
+ "detect-indent": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
+ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
+ "dev": true,
+ "requires": {
+ "repeating": "^2.0.0"
+ }
+ },
+ "detect-node": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz",
+ "integrity": "sha1-ogM8CcyOFY03dI+951B4Mr1s4Sc=",
+ "dev": true
+ },
+ "di": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz",
+ "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=",
+ "dev": true
+ },
+ "diff": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
+ "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
+ "dev": true
+ },
+ "diffie-hellman": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
+ "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.1.0",
+ "miller-rabin": "^4.0.0",
+ "randombytes": "^2.0.0"
+ }
+ },
+ "dir-glob": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz",
+ "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==",
+ "dev": true,
+ "requires": {
+ "arrify": "^1.0.1",
+ "path-type": "^3.0.0"
+ },
+ "dependencies": {
+ "path-type": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
+ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+ "dev": true,
+ "requires": {
+ "pify": "^3.0.0"
+ }
+ },
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ }
+ }
+ },
+ "dns-equal": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz",
+ "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=",
+ "dev": true
+ },
+ "dns-packet": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz",
+ "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==",
+ "dev": true,
+ "requires": {
+ "ip": "^1.1.0",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "dns-txt": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz",
+ "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=",
+ "dev": true,
+ "requires": {
+ "buffer-indexof": "^1.0.0"
+ }
+ },
+ "dom-serialize": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz",
+ "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=",
+ "dev": true,
+ "requires": {
+ "custom-event": "~1.0.0",
+ "ent": "~2.2.0",
+ "extend": "^3.0.0",
+ "void-elements": "^2.0.0"
+ }
+ },
+ "dom-serializer": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
+ "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
+ "dev": true,
+ "requires": {
+ "domelementtype": "~1.1.1",
+ "entities": "~1.1.1"
+ },
+ "dependencies": {
+ "domelementtype": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
+ "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=",
+ "dev": true
+ }
+ }
+ },
+ "domain-browser": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
+ "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
+ "dev": true
+ },
+ "domelementtype": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz",
+ "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=",
+ "dev": true
+ },
+ "domutils": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
+ "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
+ "dev": true,
+ "requires": {
+ "dom-serializer": "0",
+ "domelementtype": "1"
+ }
+ },
+ "duplexify": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz",
+ "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0",
+ "stream-shift": "^1.0.0"
+ },
+ "dependencies": {
+ "end-of-stream": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
+ "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
+ "dev": true,
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
+ "ecc-jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
+ "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "jsbn": "~0.1.0"
+ }
+ },
+ "ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
+ "dev": true
+ },
+ "electron-to-chromium": {
+ "version": "1.3.52",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.52.tgz",
+ "integrity": "sha1-0tnxJwuko7lnuDHEDvcftNmrXOA=",
+ "dev": true
+ },
+ "elliptic": {
+ "version": "6.4.1",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz",
+ "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.4.0",
+ "brorand": "^1.0.1",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.0"
+ }
+ },
+ "emojis-list": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
+ "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
+ "dev": true
+ },
+ "encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
+ "dev": true
+ },
+ "end-of-stream": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
+ "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
+ "dev": true,
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "engine.io": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.0.tgz",
+ "integrity": "sha512-mRbgmAtQ4GAlKwuPnnAvXXwdPhEx+jkc0OBCLrXuD/CRvwNK3AxRSnqK4FSqmAMRRHryVJP8TopOvmEaA64fKw==",
+ "dev": true,
+ "requires": {
+ "accepts": "~1.3.4",
+ "base64id": "1.0.0",
+ "cookie": "0.3.1",
+ "debug": "~3.1.0",
+ "engine.io-parser": "~2.1.0",
+ "ws": "~3.3.1"
+ },
+ "dependencies": {
+ "ws": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
+ "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
+ "dev": true,
+ "requires": {
+ "async-limiter": "~1.0.0",
+ "safe-buffer": "~5.1.0",
+ "ultron": "~1.1.0"
+ }
+ }
+ }
+ },
+ "engine.io-client": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz",
+ "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==",
+ "dev": true,
+ "requires": {
+ "component-emitter": "1.2.1",
+ "component-inherit": "0.0.3",
+ "debug": "~3.1.0",
+ "engine.io-parser": "~2.1.1",
+ "has-cors": "1.1.0",
+ "indexof": "0.0.1",
+ "parseqs": "0.0.5",
+ "parseuri": "0.0.5",
+ "ws": "~3.3.1",
+ "xmlhttprequest-ssl": "~1.5.4",
+ "yeast": "0.1.2"
+ },
+ "dependencies": {
+ "ws": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
+ "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
+ "dev": true,
+ "requires": {
+ "async-limiter": "~1.0.0",
+ "safe-buffer": "~5.1.0",
+ "ultron": "~1.1.0"
+ }
+ }
+ }
+ },
+ "engine.io-parser": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.2.tgz",
+ "integrity": "sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==",
+ "dev": true,
+ "requires": {
+ "after": "0.8.2",
+ "arraybuffer.slice": "~0.0.7",
+ "base64-arraybuffer": "0.1.5",
+ "blob": "0.0.4",
+ "has-binary2": "~1.0.2"
+ }
+ },
+ "enhanced-resolve": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz",
+ "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "memory-fs": "^0.4.0",
+ "tapable": "^1.0.0"
+ }
+ },
+ "ent": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz",
+ "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=",
+ "dev": true
+ },
+ "entities": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
+ "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=",
+ "dev": true
+ },
+ "errno": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
+ "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==",
+ "dev": true,
+ "requires": {
+ "prr": "~1.0.1"
+ }
+ },
+ "error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dev": true,
+ "requires": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "es-abstract": {
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz",
+ "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "^1.1.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.1",
+ "is-callable": "^1.1.3",
+ "is-regex": "^1.0.4"
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz",
+ "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.1",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.1"
+ }
+ },
+ "es5-ext": {
+ "version": "0.10.45",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.45.tgz",
+ "integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==",
+ "dev": true,
+ "requires": {
+ "es6-iterator": "~2.0.3",
+ "es6-symbol": "~3.1.1",
+ "next-tick": "1"
+ }
+ },
+ "es6-iterator": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
+ "dev": true,
+ "requires": {
+ "d": "1",
+ "es5-ext": "^0.10.35",
+ "es6-symbol": "^3.1.1"
+ }
+ },
+ "es6-promise": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz",
+ "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==",
+ "dev": true
+ },
+ "es6-promisify": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
+ "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
+ "dev": true,
+ "requires": {
+ "es6-promise": "^4.0.3"
+ }
+ },
+ "es6-symbol": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
+ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
+ "dev": true,
+ "requires": {
+ "d": "1",
+ "es5-ext": "~0.10.14"
+ }
+ },
+ "escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ },
+ "eslint-scope": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz",
+ "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.1.0",
+ "estraverse": "^4.1.1"
+ }
+ },
+ "esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "dev": true
+ },
+ "esrecurse": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
+ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
+ "dev": true,
+ "requires": {
+ "estraverse": "^4.1.0"
+ }
+ },
+ "estraverse": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
+ "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
+ "dev": true
+ },
+ "esutils": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
+ "dev": true
+ },
+ "etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
+ "dev": true
+ },
+ "eventemitter3": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz",
+ "integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==",
+ "dev": true
+ },
+ "events": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
+ "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=",
+ "dev": true
+ },
+ "eventsource": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz",
+ "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=",
+ "dev": true,
+ "requires": {
+ "original": ">=0.0.5"
+ }
+ },
+ "evp_bytestokey": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
+ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
+ "dev": true,
+ "requires": {
+ "md5.js": "^1.3.4",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "execa": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
+ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^5.0.1",
+ "get-stream": "^3.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ }
+ },
+ "exit": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+ "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
+ "dev": true
+ },
+ "expand-braces": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz",
+ "integrity": "sha1-SIsdHSRRyz06axks/AMPRMWFX+o=",
+ "dev": true,
+ "requires": {
+ "array-slice": "^0.2.3",
+ "array-unique": "^0.2.1",
+ "braces": "^0.1.2"
+ },
+ "dependencies": {
+ "array-unique": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
+ "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
+ "dev": true
+ },
+ "braces": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-0.1.5.tgz",
+ "integrity": "sha1-wIVxEIUpHYt1/ddOqw+FlygHEeY=",
+ "dev": true,
+ "requires": {
+ "expand-range": "^0.1.0"
+ }
+ }
+ }
+ },
+ "expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "dev": true,
+ "requires": {
+ "debug": "^2.3.3",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "posix-character-classes": "^0.1.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "expand-range": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-0.1.1.tgz",
+ "integrity": "sha1-TLjtoJk8pW+k9B/ELzy7TMrf8EQ=",
+ "dev": true,
+ "requires": {
+ "is-number": "^0.1.1",
+ "repeat-string": "^0.2.2"
+ },
+ "dependencies": {
+ "is-number": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-0.1.1.tgz",
+ "integrity": "sha1-aaevEWlj1HIG7JvZtIoUIW8eOAY=",
+ "dev": true
+ },
+ "repeat-string": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-0.2.2.tgz",
+ "integrity": "sha1-x6jTI2BoNiBZp+RlH8aITosftK4=",
+ "dev": true
+ }
+ }
+ },
+ "express": {
+ "version": "4.16.3",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz",
+ "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=",
+ "dev": true,
+ "requires": {
+ "accepts": "~1.3.5",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.18.2",
+ "content-disposition": "0.5.2",
+ "content-type": "~1.0.4",
+ "cookie": "0.3.1",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "1.1.1",
+ "fresh": "0.5.2",
+ "merge-descriptors": "1.0.1",
+ "methods": "~1.1.2",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.2",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "~2.0.3",
+ "qs": "6.5.1",
+ "range-parser": "~1.2.0",
+ "safe-buffer": "5.1.1",
+ "send": "0.16.2",
+ "serve-static": "1.13.2",
+ "setprototypeof": "1.1.0",
+ "statuses": "~1.4.0",
+ "type-is": "~1.6.16",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ },
+ "dependencies": {
+ "array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
+ "dev": true
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "finalhandler": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
+ "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.2",
+ "statuses": "~1.4.0",
+ "unpipe": "~1.0.0"
+ }
+ },
+ "qs": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
+ "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==",
+ "dev": true
+ },
+ "safe-buffer": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
+ "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
+ "dev": true
+ },
+ "statuses": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
+ "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==",
+ "dev": true
+ }
+ }
+ },
+ "extend": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
+ "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=",
+ "dev": true
+ },
+ "extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+ "dev": true,
+ "requires": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true,
+ "requires": {
+ "is-plain-object": "^2.0.4"
+ }
+ }
+ }
+ },
+ "external-editor": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.0.tgz",
+ "integrity": "sha512-mpkfj0FEdxrIhOC04zk85X7StNtr0yXnG7zCb+8ikO8OJi2jsHh5YGoknNTyXgsbHOf1WOOcVU3kPFWT2WgCkQ==",
+ "dev": true,
+ "requires": {
+ "chardet": "^0.5.0",
+ "iconv-lite": "^0.4.22",
+ "tmp": "^0.0.33"
+ }
+ },
+ "extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "dev": true,
+ "requires": {
+ "array-unique": "^0.3.2",
+ "define-property": "^1.0.0",
+ "expand-brackets": "^2.1.4",
+ "extend-shallow": "^2.0.1",
+ "fragment-cache": "^0.2.1",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "extract-zip": {
+ "version": "1.6.7",
+ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz",
+ "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=",
+ "dev": true,
+ "requires": {
+ "concat-stream": "1.6.2",
+ "debug": "2.6.9",
+ "mkdirp": "0.5.1",
+ "yauzl": "2.4.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ },
+ "extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
+ "dev": true
+ },
+ "eyes": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz",
+ "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=",
+ "dev": true,
+ "optional": true
+ },
+ "fast-deep-equal": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
+ "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
+ "dev": true
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
+ "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
+ "dev": true
+ },
+ "fastparse": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz",
+ "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=",
+ "dev": true
+ },
+ "faye-websocket": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz",
+ "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=",
+ "dev": true,
+ "requires": {
+ "websocket-driver": ">=0.5.1"
+ }
+ },
+ "fd-slicer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
+ "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=",
+ "dev": true,
+ "requires": {
+ "pend": "~1.2.0"
+ }
+ },
+ "figures": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
+ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "^1.0.5"
+ }
+ },
+ "fileset": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz",
+ "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=",
+ "dev": true,
+ "requires": {
+ "glob": "^7.0.3",
+ "minimatch": "^3.0.3"
+ }
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "finalhandler": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz",
+ "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.1",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.2",
+ "statuses": "~1.3.1",
+ "unpipe": "~1.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ },
+ "find-cache-dir": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz",
+ "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=",
+ "dev": true,
+ "requires": {
+ "commondir": "^1.0.1",
+ "make-dir": "^1.0.0",
+ "pkg-dir": "^2.0.0"
+ }
+ },
+ "find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "dev": true,
+ "requires": {
+ "path-exists": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "flush-write-stream": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz",
+ "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.4"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
+ "follow-redirects": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.1.tgz",
+ "integrity": "sha512-v9GI1hpaqq1ZZR6pBD1+kI7O24PhDvNGNodjS3MdcEqyrahCp8zbtpv+2B/krUnSmUH80lbAS7MrdeK5IylgKg==",
+ "dev": true,
+ "requires": {
+ "debug": "^3.1.0"
+ }
+ },
+ "for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
+ "dev": true
+ },
+ "for-own": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
+ "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
+ "dev": true,
+ "requires": {
+ "for-in": "^1.0.1"
+ }
+ },
+ "foreach": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
+ "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=",
+ "dev": true
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
+ "dev": true
+ },
+ "form-data": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
+ "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
+ "dev": true,
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "1.0.6",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "forwarded": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
+ "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
+ "dev": true
+ },
+ "fragment-cache": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
+ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+ "dev": true,
+ "requires": {
+ "map-cache": "^0.2.2"
+ }
+ },
+ "fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
+ "dev": true
+ },
+ "from2": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
+ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
+ "fs-access": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz",
+ "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=",
+ "dev": true,
+ "requires": {
+ "null-check": "^1.0.0"
+ }
+ },
+ "fs-extra": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz",
+ "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^2.1.0",
+ "klaw": "^1.0.0"
+ },
+ "dependencies": {
+ "graceful-fs": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "fs-write-stream-atomic": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
+ "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "iferr": "^0.1.5",
+ "imurmurhash": "^0.1.4",
+ "readable-stream": "1 || 2"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "fsevents": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz",
+ "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "nan": "^2.9.2",
+ "node-pre-gyp": "^0.10.0"
+ },
+ "dependencies": {
+ "abbrev": {
+ "version": "1.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "aproba": {
+ "version": "1.2.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "are-we-there-yet": {
+ "version": "1.1.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "chownr": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "console-control-strings": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "debug": {
+ "version": "2.6.9",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "deep-extend": {
+ "version": "0.5.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "delegates": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "detect-libc": {
+ "version": "1.0.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "fs-minipass": {
+ "version": "1.2.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "minipass": "^2.2.1"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "gauge": {
+ "version": "2.7.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
+ }
+ },
+ "glob": {
+ "version": "7.1.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "has-unicode": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "iconv-lite": {
+ "version": "0.4.21",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "safer-buffer": "^2.1.0"
+ }
+ },
+ "ignore-walk": {
+ "version": "3.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "minimatch": "^3.0.4"
+ }
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "bundled": true,
+ "dev": true
+ },
+ "ini": {
+ "version": "1.3.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "bundled": true,
+ "dev": true
+ },
+ "minipass": {
+ "version": "2.2.4",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.1.1",
+ "yallist": "^3.0.0"
+ }
+ },
+ "minizlib": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "minipass": "^2.2.1"
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "needle": {
+ "version": "2.2.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "debug": "^2.1.2",
+ "iconv-lite": "^0.4.4",
+ "sax": "^1.2.4"
+ }
+ },
+ "node-pre-gyp": {
+ "version": "0.10.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "detect-libc": "^1.0.2",
+ "mkdirp": "^0.5.1",
+ "needle": "^2.2.0",
+ "nopt": "^4.0.1",
+ "npm-packlist": "^1.1.6",
+ "npmlog": "^4.0.2",
+ "rc": "^1.1.7",
+ "rimraf": "^2.6.1",
+ "semver": "^5.3.0",
+ "tar": "^4"
+ }
+ },
+ "nopt": {
+ "version": "4.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "abbrev": "1",
+ "osenv": "^0.1.4"
+ }
+ },
+ "npm-bundled": {
+ "version": "1.0.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "npm-packlist": {
+ "version": "1.1.10",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ignore-walk": "^3.0.1",
+ "npm-bundled": "^1.0.1"
+ }
+ },
+ "npmlog": {
+ "version": "4.1.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.7.3",
+ "set-blocking": "~2.0.0"
+ }
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "osenv": {
+ "version": "0.1.5",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
+ }
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "process-nextick-args": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "rc": {
+ "version": "1.2.7",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "deep-extend": "^0.5.1",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "rimraf": {
+ "version": "2.6.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "glob": "^7.0.5"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "sax": {
+ "version": "1.2.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "semver": {
+ "version": "5.5.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "tar": {
+ "version": "4.4.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "chownr": "^1.0.1",
+ "fs-minipass": "^1.2.5",
+ "minipass": "^2.2.4",
+ "minizlib": "^1.1.0",
+ "mkdirp": "^0.5.0",
+ "safe-buffer": "^5.1.1",
+ "yallist": "^3.0.2"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "wide-align": {
+ "version": "1.1.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "string-width": "^1.0.2"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "yallist": {
+ "version": "3.0.2",
+ "bundled": true,
+ "dev": true
+ }
+ }
+ },
+ "fstream": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
+ "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "inherits": "~2.0.0",
+ "mkdirp": ">=0.5 0",
+ "rimraf": "2"
+ }
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true
+ },
+ "gauge": {
+ "version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
+ "dev": true,
+ "requires": {
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
+ }
+ },
+ "gaze": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
+ "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
+ "dev": true,
+ "requires": {
+ "globule": "^1.0.0"
+ }
+ },
+ "get-caller-file": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
+ "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
+ "dev": true
+ },
+ "get-func-name": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
+ "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=",
+ "dev": true
+ },
+ "get-stdin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
+ "dev": true
+ },
+ "get-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
+ "dev": true
+ },
+ "get-value": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
+ "dev": true
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "glob": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "global-modules-path": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/global-modules-path/-/global-modules-path-2.3.0.tgz",
+ "integrity": "sha512-HchvMJNYh9dGSCy8pOQ2O8u/hoXaL+0XhnrwH0RyLiSXMMTl9W3N6KUU73+JFOg5PGjtzl6VZzUQsnrpm7Szag==",
+ "dev": true
+ },
+ "globals": {
+ "version": "9.18.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
+ "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
+ "dev": true
+ },
+ "globby": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
+ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
+ "dev": true,
+ "requires": {
+ "array-union": "^1.0.1",
+ "glob": "^7.0.3",
+ "object-assign": "^4.0.1",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "globule": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz",
+ "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==",
+ "dev": true,
+ "requires": {
+ "glob": "~7.1.1",
+ "lodash": "~4.17.10",
+ "minimatch": "~3.0.2"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "dev": true
+ },
+ "growl": {
+ "version": "1.10.5",
+ "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
+ "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
+ "dev": true
+ },
+ "handle-thing": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz",
+ "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=",
+ "dev": true
+ },
+ "handlebars": {
+ "version": "4.0.11",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz",
+ "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=",
+ "dev": true,
+ "requires": {
+ "async": "^1.4.0",
+ "optimist": "^0.6.1",
+ "source-map": "^0.4.4",
+ "uglify-js": "^2.6"
+ },
+ "dependencies": {
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
+ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+ "dev": true,
+ "requires": {
+ "amdefine": ">=0.0.4"
+ }
+ }
+ }
+ },
+ "har-schema": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
+ "dev": true
+ },
+ "har-validator": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
+ "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
+ "dev": true,
+ "requires": {
+ "ajv": "^5.1.0",
+ "har-schema": "^2.0.0"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "5.5.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
+ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
+ "dev": true,
+ "requires": {
+ "co": "^4.6.0",
+ "fast-deep-equal": "^1.0.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.3.0"
+ }
+ }
+ }
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "has-binary2": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz",
+ "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==",
+ "dev": true,
+ "requires": {
+ "isarray": "2.0.1"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
+ "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=",
+ "dev": true
+ }
+ }
+ },
+ "has-cors": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz",
+ "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "has-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
+ "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
+ "dev": true
+ },
+ "has-unicode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
+ "dev": true
+ },
+ "has-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
+ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
+ "dev": true,
+ "requires": {
+ "get-value": "^2.0.6",
+ "has-values": "^1.0.0",
+ "isobject": "^3.0.0"
+ }
+ },
+ "has-values": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
+ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
+ "dev": true,
+ "requires": {
+ "is-number": "^3.0.0",
+ "kind-of": "^4.0.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "hash-base": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz",
+ "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "hash.js": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz",
+ "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.1"
+ }
+ },
+ "hasha": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz",
+ "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-stream": "^1.0.1",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "he": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
+ "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=",
+ "dev": true
+ },
+ "hmac-drbg": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+ "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
+ "dev": true,
+ "requires": {
+ "hash.js": "^1.0.3",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "home-or-tmp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz",
+ "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=",
+ "dev": true,
+ "requires": {
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.1"
+ }
+ },
+ "hosted-git-info": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz",
+ "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==",
+ "dev": true
+ },
+ "hpack.js": {
+ "version": "2.1.6",
+ "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz",
+ "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "obuf": "^1.0.0",
+ "readable-stream": "^2.0.1",
+ "wbuf": "^1.1.0"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
+ "html-entities": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz",
+ "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=",
+ "dev": true
+ },
+ "http-deceiver": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
+ "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=",
+ "dev": true
+ },
+ "http-errors": {
+ "version": "1.6.3",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
+ "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
+ "dev": true,
+ "requires": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.1.0",
+ "statuses": ">= 1.4.0 < 2"
+ },
+ "dependencies": {
+ "statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
+ "dev": true
+ }
+ }
+ },
+ "http-parser-js": {
+ "version": "0.4.13",
+ "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.13.tgz",
+ "integrity": "sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=",
+ "dev": true
+ },
+ "http-proxy": {
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz",
+ "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==",
+ "dev": true,
+ "requires": {
+ "eventemitter3": "^3.0.0",
+ "follow-redirects": "^1.0.0",
+ "requires-port": "^1.0.0"
+ }
+ },
+ "http-proxy-middleware": {
+ "version": "0.18.0",
+ "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz",
+ "integrity": "sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q==",
+ "dev": true,
+ "requires": {
+ "http-proxy": "^1.16.2",
+ "is-glob": "^4.0.0",
+ "lodash": "^4.17.5",
+ "micromatch": "^3.1.9"
+ }
+ },
+ "http-signature": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
+ }
+ },
+ "https-browserify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
+ "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=",
+ "dev": true
+ },
+ "https-proxy-agent": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz",
+ "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==",
+ "dev": true,
+ "requires": {
+ "agent-base": "^4.1.0",
+ "debug": "^3.1.0"
+ }
+ },
+ "iconv-lite": {
+ "version": "0.4.23",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
+ "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
+ "dev": true,
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "icss-replace-symbols": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz",
+ "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=",
+ "dev": true
+ },
+ "icss-utils": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz",
+ "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=",
+ "dev": true,
+ "requires": {
+ "postcss": "^6.0.1"
+ }
+ },
+ "ieee754": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz",
+ "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==",
+ "dev": true
+ },
+ "iferr": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz",
+ "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=",
+ "dev": true
+ },
+ "ignore": {
+ "version": "3.3.10",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz",
+ "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==",
+ "dev": true
+ },
+ "import-cwd": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz",
+ "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=",
+ "dev": true,
+ "requires": {
+ "import-from": "^2.1.0"
+ }
+ },
+ "import-from": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz",
+ "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=",
+ "dev": true,
+ "requires": {
+ "resolve-from": "^3.0.0"
+ }
+ },
+ "import-local": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz",
+ "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==",
+ "dev": true,
+ "requires": {
+ "pkg-dir": "^2.0.0",
+ "resolve-cwd": "^2.0.0"
+ }
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "dev": true
+ },
+ "in-publish": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz",
+ "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=",
+ "dev": true
+ },
+ "indent-string": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
+ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
+ "dev": true,
+ "requires": {
+ "repeating": "^2.0.0"
+ }
+ },
+ "indexof": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
+ "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=",
+ "dev": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
+ },
+ "inquirer": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.0.0.tgz",
+ "integrity": "sha512-tISQWRwtcAgrz+SHPhTH7d3e73k31gsOy6i1csonLc0u1dVK/wYvuOnFeiWqC5OXFIYbmrIFInef31wbT8MEJg==",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "^3.0.0",
+ "chalk": "^2.0.0",
+ "cli-cursor": "^2.1.0",
+ "cli-width": "^2.0.0",
+ "external-editor": "^3.0.0",
+ "figures": "^2.0.0",
+ "lodash": "^4.3.0",
+ "mute-stream": "0.0.7",
+ "run-async": "^2.2.0",
+ "rxjs": "^6.1.0",
+ "string-width": "^2.1.0",
+ "strip-ansi": "^4.0.0",
+ "through": "^2.3.6"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
+ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
+ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "internal-ip": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-3.0.1.tgz",
+ "integrity": "sha512-NXXgESC2nNVtU+pqmC9e6R8B1GpKxzsAQhffvh5AL79qKnodd+L7tnEQmTiUAVngqLalPbSqRA7XGIEL5nCd0Q==",
+ "dev": true,
+ "requires": {
+ "default-gateway": "^2.6.0",
+ "ipaddr.js": "^1.5.2"
+ }
+ },
+ "interpret": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
+ "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=",
+ "dev": true
+ },
+ "invariant": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
+ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+ "dev": true,
+ "requires": {
+ "loose-envify": "^1.0.0"
+ }
+ },
+ "invert-kv": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
+ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
+ "dev": true
+ },
+ "ip": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
+ "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=",
+ "dev": true
+ },
+ "ip-regex": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
+ "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=",
+ "dev": true
+ },
+ "ipaddr.js": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz",
+ "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=",
+ "dev": true
+ },
+ "irregular-plurals": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-1.4.0.tgz",
+ "integrity": "sha1-LKmwM2UREYVUEvFr5dd8YqRYp2Y=",
+ "dev": true
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+ "dev": true
+ },
+ "is-binary-path": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+ "dev": true,
+ "requires": {
+ "binary-extensions": "^1.0.0"
+ }
+ },
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+ "dev": true
+ },
+ "is-builtin-module": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
+ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
+ "dev": true,
+ "requires": {
+ "builtin-modules": "^1.0.0"
+ }
+ },
+ "is-callable": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
+ "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==",
+ "dev": true
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-date-object": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
+ "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
+ "dev": true
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true
+ }
+ }
+ },
+ "is-directory": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
+ "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
+ "dev": true
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+ "dev": true
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true
+ },
+ "is-finite": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
+ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "is-glob": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
+ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-path-cwd": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
+ "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=",
+ "dev": true
+ },
+ "is-path-in-cwd": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz",
+ "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==",
+ "dev": true,
+ "requires": {
+ "is-path-inside": "^1.0.0"
+ }
+ },
+ "is-path-inside": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
+ "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
+ "dev": true,
+ "requires": {
+ "path-is-inside": "^1.0.1"
+ }
+ },
+ "is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.1"
+ }
+ },
+ "is-promise": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
+ "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
+ "dev": true
+ },
+ "is-regex": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
+ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.1"
+ }
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+ "dev": true
+ },
+ "is-symbol": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz",
+ "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=",
+ "dev": true
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
+ "dev": true
+ },
+ "is-utf8": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
+ "dev": true
+ },
+ "is-windows": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
+ "dev": true
+ },
+ "is-wsl": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
+ "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=",
+ "dev": true
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true
+ },
+ "isbinaryfile": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz",
+ "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==",
+ "dev": true,
+ "requires": {
+ "buffer-alloc": "^1.2.0"
+ }
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
+ "dev": true
+ },
+ "istanbul-api": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.3.6.tgz",
+ "integrity": "sha512-luJDnB1uJ5Qsg/WwusGfNXayQ4598yDgW5S0nUS85T576m1LVJzSqLrCDULkT6sTQXVKHa54093gNuCKumMCjQ==",
+ "dev": true,
+ "requires": {
+ "async": "^2.1.4",
+ "compare-versions": "^3.1.0",
+ "fileset": "^2.0.2",
+ "istanbul-lib-coverage": "^1.2.0",
+ "istanbul-lib-hook": "^1.2.0",
+ "istanbul-lib-instrument": "^2.1.0",
+ "istanbul-lib-report": "^1.1.4",
+ "istanbul-lib-source-maps": "^1.2.5",
+ "istanbul-reports": "^1.4.1",
+ "js-yaml": "^3.7.0",
+ "mkdirp": "^0.5.1",
+ "once": "^1.4.0"
+ },
+ "dependencies": {
+ "istanbul-lib-instrument": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-2.3.2.tgz",
+ "integrity": "sha512-l7TD/VnBsIB2OJvSyxaLW/ab1+92dxZNH9wLH7uHPPioy3JZ8tnx2UXUdKmdkgmP2EFPzg64CToUP6dAS3U32Q==",
+ "dev": true,
+ "requires": {
+ "@babel/generator": "7.0.0-beta.51",
+ "@babel/parser": "7.0.0-beta.51",
+ "@babel/template": "7.0.0-beta.51",
+ "@babel/traverse": "7.0.0-beta.51",
+ "@babel/types": "7.0.0-beta.51",
+ "istanbul-lib-coverage": "^2.0.1",
+ "semver": "^5.5.0"
+ },
+ "dependencies": {
+ "istanbul-lib-coverage": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz",
+ "integrity": "sha512-nPvSZsVlbG9aLhZYaC3Oi1gT/tpyo3Yt5fNyf6NmcKIayz4VV/txxJFFKAK/gU4dcNn8ehsanBbVHVl0+amOLA==",
+ "dev": true
+ }
+ }
+ }
+ }
+ },
+ "istanbul-instrumenter-loader": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-3.0.1.tgz",
+ "integrity": "sha512-a5SPObZgS0jB/ixaKSMdn6n/gXSrK2S6q/UfRJBT3e6gQmVjwZROTODQsYW5ZNwOu78hG62Y3fWlebaVOL0C+w==",
+ "dev": true,
+ "requires": {
+ "convert-source-map": "^1.5.0",
+ "istanbul-lib-instrument": "^1.7.3",
+ "loader-utils": "^1.1.0",
+ "schema-utils": "^0.3.0"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "5.5.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
+ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
+ "dev": true,
+ "requires": {
+ "co": "^4.6.0",
+ "fast-deep-equal": "^1.0.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.3.0"
+ }
+ },
+ "schema-utils": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz",
+ "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=",
+ "dev": true,
+ "requires": {
+ "ajv": "^5.0.0"
+ }
+ }
+ }
+ },
+ "istanbul-lib-coverage": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz",
+ "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==",
+ "dev": true
+ },
+ "istanbul-lib-hook": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.2.1.tgz",
+ "integrity": "sha512-eLAMkPG9FU0v5L02lIkcj/2/Zlz9OuluaXikdr5iStk8FDbSwAixTK9TkYxbF0eNnzAJTwM2fkV2A1tpsIp4Jg==",
+ "dev": true,
+ "requires": {
+ "append-transform": "^1.0.0"
+ }
+ },
+ "istanbul-lib-instrument": {
+ "version": "1.10.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz",
+ "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==",
+ "dev": true,
+ "requires": {
+ "babel-generator": "^6.18.0",
+ "babel-template": "^6.16.0",
+ "babel-traverse": "^6.18.0",
+ "babel-types": "^6.18.0",
+ "babylon": "^6.18.0",
+ "istanbul-lib-coverage": "^1.2.0",
+ "semver": "^5.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
+ "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==",
+ "dev": true
+ }
+ }
+ },
+ "istanbul-lib-report": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.4.tgz",
+ "integrity": "sha512-Azqvq5tT0U09nrncK3q82e/Zjkxa4tkFZv7E6VcqP0QCPn6oNljDPfrZEC/umNXds2t7b8sRJfs6Kmpzt8m2kA==",
+ "dev": true,
+ "requires": {
+ "istanbul-lib-coverage": "^1.2.0",
+ "mkdirp": "^0.5.1",
+ "path-parse": "^1.0.5",
+ "supports-color": "^3.1.2"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ }
+ }
+ },
+ "istanbul-lib-source-maps": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.5.tgz",
+ "integrity": "sha512-8O2T/3VhrQHn0XcJbP1/GN7kXMiRAlPi+fj3uEHrjBD8Oz7Py0prSC25C09NuAZS6bgW1NNKAvCSHZXB0irSGA==",
+ "dev": true,
+ "requires": {
+ "debug": "^3.1.0",
+ "istanbul-lib-coverage": "^1.2.0",
+ "mkdirp": "^0.5.1",
+ "rimraf": "^2.6.1",
+ "source-map": "^0.5.3"
+ }
+ },
+ "istanbul-reports": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.5.0.tgz",
+ "integrity": "sha512-HeZG0WHretI9FXBni5wZ9DOgNziqDCEwetxnme5k1Vv5e81uTqcsy3fMH99gXGDGKr1ea87TyGseDMa2h4HEUA==",
+ "dev": true,
+ "requires": {
+ "handlebars": "^4.0.11"
+ }
+ },
+ "js-base64": {
+ "version": "2.4.9",
+ "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz",
+ "integrity": "sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==",
+ "dev": true
+ },
+ "js-tokens": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
+ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz",
+ "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==",
+ "dev": true,
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
+ "dev": true,
+ "optional": true
+ },
+ "jsesc": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
+ "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=",
+ "dev": true
+ },
+ "jshint": {
+ "version": "2.9.6",
+ "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.9.6.tgz",
+ "integrity": "sha512-KO9SIAKTlJQOM4lE64GQUtGBRpTOuvbrRrSZw3AhUxMNG266nX9hK2cKA4SBhXOj0irJGyNyGSLT62HGOVDEOA==",
+ "dev": true,
+ "requires": {
+ "cli": "~1.0.0",
+ "console-browserify": "1.1.x",
+ "exit": "0.1.x",
+ "htmlparser2": "3.8.x",
+ "lodash": "~4.17.10",
+ "minimatch": "~3.0.2",
+ "phantom": "~4.0.1",
+ "phantomjs-prebuilt": "~2.1.7",
+ "shelljs": "0.3.x",
+ "strip-json-comments": "1.0.x",
+ "unicode-5.2.0": "^0.7.5"
+ },
+ "dependencies": {
+ "domhandler": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz",
+ "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=",
+ "dev": true,
+ "requires": {
+ "domelementtype": "1"
+ }
+ },
+ "entities": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz",
+ "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=",
+ "dev": true
+ },
+ "htmlparser2": {
+ "version": "3.8.3",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz",
+ "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=",
+ "dev": true,
+ "requires": {
+ "domelementtype": "1",
+ "domhandler": "2.3",
+ "domutils": "1.5",
+ "entities": "1.0",
+ "readable-stream": "1.1"
+ }
+ },
+ "strip-json-comments": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz",
+ "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=",
+ "dev": true
+ }
+ }
+ },
+ "jshint-stylish": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/jshint-stylish/-/jshint-stylish-2.2.1.tgz",
+ "integrity": "sha1-JCCCosA1rgP9gQROBXDMQgjPbmE=",
+ "dev": true,
+ "requires": {
+ "beeper": "^1.1.0",
+ "chalk": "^1.0.0",
+ "log-symbols": "^1.0.0",
+ "plur": "^2.1.0",
+ "string-length": "^1.0.0",
+ "text-table": "^0.2.0"
+ }
+ },
+ "json-parse-better-errors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
+ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
+ "dev": true
+ },
+ "json-schema": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
+ "dev": true
+ },
+ "json-schema-traverse": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
+ "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
+ "dev": true
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
+ "dev": true
+ },
+ "json3": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz",
+ "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=",
+ "dev": true
+ },
+ "json5": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
+ "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
+ "dev": true
+ },
+ "jsonfile": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
+ "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ },
+ "dependencies": {
+ "graceful-fs": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "jsprim": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+ "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.2.3",
+ "verror": "1.10.0"
+ }
+ },
+ "karma": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/karma/-/karma-3.0.0.tgz",
+ "integrity": "sha512-ZTjyuDXVXhXsvJ1E4CnZzbCjSxD6sEdzEsFYogLuZM0yqvg/mgz+O+R1jb0J7uAQeuzdY8kJgx6hSNXLwFuHIQ==",
+ "dev": true,
+ "requires": {
+ "bluebird": "^3.3.0",
+ "body-parser": "^1.16.1",
+ "chokidar": "^2.0.3",
+ "colors": "^1.1.0",
+ "combine-lists": "^1.0.0",
+ "connect": "^3.6.0",
+ "core-js": "^2.2.0",
+ "di": "^0.0.1",
+ "dom-serialize": "^2.2.0",
+ "expand-braces": "^0.1.1",
+ "glob": "^7.1.1",
+ "graceful-fs": "^4.1.2",
+ "http-proxy": "^1.13.0",
+ "isbinaryfile": "^3.0.0",
+ "lodash": "^4.17.4",
+ "log4js": "^3.0.0",
+ "mime": "^2.3.1",
+ "minimatch": "^3.0.2",
+ "optimist": "^0.6.1",
+ "qjobs": "^1.1.4",
+ "range-parser": "^1.2.0",
+ "rimraf": "^2.6.0",
+ "safe-buffer": "^5.0.1",
+ "socket.io": "2.1.1",
+ "source-map": "^0.6.1",
+ "tmp": "0.0.33",
+ "useragent": "2.2.1"
+ },
+ "dependencies": {
+ "mime": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz",
+ "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "karma-babel-preprocessor": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/karma-babel-preprocessor/-/karma-babel-preprocessor-7.0.0.tgz",
+ "integrity": "sha512-k8YUot8ZAAYhAeUxOsOGUEXW7AlB6SkoIVGfavEBCAdGHzWuraOBoR2wCxxdePUCvcItIxSUyQnOj6DuZdEJYA==",
+ "dev": true
+ },
+ "karma-chrome-launcher": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz",
+ "integrity": "sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w==",
+ "dev": true,
+ "requires": {
+ "fs-access": "^1.0.0",
+ "which": "^1.2.1"
+ }
+ },
+ "karma-coverage-istanbul-reporter": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-2.0.2.tgz",
+ "integrity": "sha512-IIIrfsfYJKkAyyjRrBx8CZRl2UXi2OSrxKRAA95mkpOMF3Zw5FpjE+v79pWuwu1Keu0pdjcfElmmOuAEjFQshA==",
+ "dev": true,
+ "requires": {
+ "istanbul-api": "^1.3.1",
+ "minimatch": "^3.0.4"
+ }
+ },
+ "karma-mocha": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/karma-mocha/-/karma-mocha-1.3.0.tgz",
+ "integrity": "sha1-7qrH/8DiAetjxGdEDStpx883eL8=",
+ "dev": true,
+ "requires": {
+ "minimist": "1.2.0"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "karma-mocha-reporter": {
+ "version": "2.2.5",
+ "resolved": "https://registry.npmjs.org/karma-mocha-reporter/-/karma-mocha-reporter-2.2.5.tgz",
+ "integrity": "sha1-FRIAlejtgZGG5HoLAS8810GJVWA=",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.1.0",
+ "log-symbols": "^2.1.0",
+ "strip-ansi": "^4.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
+ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "log-symbols": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
+ "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.0.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
+ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "karma-webpack": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/karma-webpack/-/karma-webpack-3.0.0.tgz",
+ "integrity": "sha512-Ja1o9LLoqWaJyUNhTKaXjWiEH9y7a9H3mzP8pYB30SBsgoF5KBS/65NeHFd+QPuT9ITrym8xFt8BZeGbcOfujA==",
+ "dev": true,
+ "requires": {
+ "async": "^2.0.0",
+ "babel-runtime": "^6.0.0",
+ "loader-utils": "^1.0.0",
+ "lodash": "^4.0.0",
+ "source-map": "^0.5.6",
+ "webpack-dev-middleware": "^2.0.6"
+ },
+ "dependencies": {
+ "async": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
+ "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.10"
+ }
+ },
+ "mime": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz",
+ "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==",
+ "dev": true
+ },
+ "url-join": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/url-join/-/url-join-2.0.5.tgz",
+ "integrity": "sha1-WvIvGMBSoACkjXuCxenC4v7tpyg=",
+ "dev": true
+ },
+ "webpack-dev-middleware": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-2.0.6.tgz",
+ "integrity": "sha512-tj5LLD9r4tDuRIDa5Mu9lnY2qBBehAITv6A9irqXhw/HQquZgTx3BCd57zYbU2gMDnncA49ufK2qVQSbaKJwOw==",
+ "dev": true,
+ "requires": {
+ "loud-rejection": "^1.6.0",
+ "memory-fs": "~0.4.1",
+ "mime": "^2.1.0",
+ "path-is-absolute": "^1.0.0",
+ "range-parser": "^1.0.3",
+ "url-join": "^2.0.2",
+ "webpack-log": "^1.0.1"
+ }
+ }
+ }
+ },
+ "kew": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz",
+ "integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=",
+ "dev": true,
+ "optional": true
+ },
+ "killable": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.0.tgz",
+ "integrity": "sha1-2ouEvUfeU5WHj5XWTQLyRJ/gXms=",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "dev": true
+ },
+ "klaw": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
+ "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "graceful-fs": "^4.1.9"
+ },
+ "dependencies": {
+ "graceful-fs": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "lazy-cache": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
+ "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
+ "dev": true,
+ "optional": true
+ },
+ "lcid": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
+ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
+ "dev": true,
+ "requires": {
+ "invert-kv": "^1.0.0"
+ }
+ },
+ "load-json-file": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^2.2.0",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0",
+ "strip-bom": "^2.0.0"
+ },
+ "dependencies": {
+ "strip-bom": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+ "dev": true,
+ "requires": {
+ "is-utf8": "^0.2.0"
+ }
+ }
+ }
+ },
+ "loader-runner": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz",
+ "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=",
+ "dev": true
+ },
+ "loader-utils": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
+ "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
+ "dev": true,
+ "requires": {
+ "big.js": "^3.1.3",
+ "emojis-list": "^2.0.0",
+ "json5": "^0.5.0"
+ }
+ },
+ "locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "dev": true,
+ "requires": {
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
+ },
+ "dependencies": {
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ }
+ }
+ },
+ "lodash": {
+ "version": "4.17.10",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz",
+ "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==",
+ "dev": true
+ },
+ "lodash.assign": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz",
+ "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=",
+ "dev": true
+ },
+ "lodash.camelcase": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
+ "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=",
+ "dev": true
+ },
+ "lodash.clonedeep": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
+ "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
+ "dev": true
+ },
+ "lodash.debounce": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
+ "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=",
+ "dev": true
+ },
+ "lodash.maxby": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.maxby/-/lodash.maxby-4.6.0.tgz",
+ "integrity": "sha1-CCJABo88eiJ6oAqDgOTzjPB4bj0=",
+ "dev": true
+ },
+ "lodash.mergewith": {
+ "version": "4.6.1",
+ "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz",
+ "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==",
+ "dev": true
+ },
+ "lodash.tail": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz",
+ "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=",
+ "dev": true
+ },
+ "log-symbols": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz",
+ "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.0.0"
+ }
+ },
+ "log4js": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/log4js/-/log4js-3.0.5.tgz",
+ "integrity": "sha512-IX5c3G/7fuTtdr0JjOT2OIR12aTESVhsH6cEsijloYwKgcPRlO6DgOU72v0UFhWcoV1HN6+M3dwT89qVPLXm0w==",
+ "dev": true,
+ "requires": {
+ "circular-json": "^0.5.5",
+ "date-format": "^1.2.0",
+ "debug": "^3.1.0",
+ "rfdc": "^1.1.2",
+ "streamroller": "0.7.0"
+ }
+ },
+ "loglevel": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz",
+ "integrity": "sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=",
+ "dev": true
+ },
+ "loglevelnext": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/loglevelnext/-/loglevelnext-1.0.5.tgz",
+ "integrity": "sha512-V/73qkPuJmx4BcBF19xPBr+0ZRVBhc4POxvZTZdMeXpJ4NItXSJ/MSwuFT0kQJlCbXvdlZoQQ/418bS1y9Jh6A==",
+ "dev": true,
+ "requires": {
+ "es6-symbol": "^3.1.1",
+ "object.assign": "^4.1.0"
+ }
+ },
+ "long": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/long/-/long-3.2.0.tgz",
+ "integrity": "sha1-2CG3E4yhy1gcFymQ7xTbIAtcR0s=",
+ "dev": true
+ },
+ "longest": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
+ "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
+ "dev": true
+ },
+ "loose-envify": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "dev": true,
+ "requires": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ }
+ },
+ "loud-rejection": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
+ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
+ "dev": true,
+ "requires": {
+ "currently-unhandled": "^0.4.1",
+ "signal-exit": "^3.0.0"
+ }
+ },
+ "lru-cache": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz",
+ "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==",
+ "dev": true,
+ "requires": {
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
+ }
+ },
+ "make-dir": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
+ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
+ "dev": true,
+ "requires": {
+ "pify": "^3.0.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ }
+ }
+ },
+ "mamacro": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz",
+ "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==",
+ "dev": true
+ },
+ "map-cache": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
+ "dev": true
+ },
+ "map-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
+ "dev": true
+ },
+ "map-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
+ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
+ "dev": true,
+ "requires": {
+ "object-visit": "^1.0.0"
+ }
+ },
+ "md5.js": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz",
+ "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=",
+ "dev": true,
+ "requires": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1"
+ }
+ },
+ "media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
+ "dev": true
+ },
+ "mem": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
+ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^1.0.0"
+ }
+ },
+ "memory-fs": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
+ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
+ "dev": true,
+ "requires": {
+ "errno": "^0.1.3",
+ "readable-stream": "^2.0.1"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
+ "meow": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
+ "dev": true,
+ "requires": {
+ "camelcase-keys": "^2.0.0",
+ "decamelize": "^1.1.2",
+ "loud-rejection": "^1.0.0",
+ "map-obj": "^1.0.1",
+ "minimist": "^1.1.3",
+ "normalize-package-data": "^2.3.4",
+ "object-assign": "^4.0.1",
+ "read-pkg-up": "^1.0.1",
+ "redent": "^1.0.0",
+ "trim-newlines": "^1.0.0"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "merge-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=",
+ "dev": true
+ },
+ "methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "dev": true,
+ "requires": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ }
+ },
+ "miller-rabin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
+ "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.0.0",
+ "brorand": "^1.0.1"
+ }
+ },
+ "mime": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
+ "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==",
+ "dev": true
+ },
+ "mime-db": {
+ "version": "1.35.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz",
+ "integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg==",
+ "dev": true
+ },
+ "mime-types": {
+ "version": "2.1.19",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz",
+ "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==",
+ "dev": true,
+ "requires": {
+ "mime-db": "~1.35.0"
+ }
+ },
+ "mimic-fn": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+ "dev": true
+ },
+ "mini-css-extract-plugin": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.2.tgz",
+ "integrity": "sha512-ots7URQH4wccfJq9Ssrzu2+qupbncAce4TmTzunI9CIwlQMp2XI+WNUw6xWF6MMAGAm1cbUVINrSjATaVMyKXg==",
+ "dev": true,
+ "requires": {
+ "loader-utils": "^1.1.0",
+ "schema-utils": "^1.0.0",
+ "webpack-sources": "^1.1.0"
+ },
+ "dependencies": {
+ "schema-utils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
+ }
+ }
+ }
+ },
+ "minimalistic-assert": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
+ "dev": true
+ },
+ "minimalistic-crypto-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+ "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+ "dev": true
+ },
+ "mississippi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz",
+ "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==",
+ "dev": true,
+ "requires": {
+ "concat-stream": "^1.5.0",
+ "duplexify": "^3.4.2",
+ "end-of-stream": "^1.1.0",
+ "flush-write-stream": "^1.0.0",
+ "from2": "^2.1.0",
+ "parallel-transform": "^1.1.0",
+ "pump": "^2.0.1",
+ "pumpify": "^1.3.3",
+ "stream-each": "^1.1.0",
+ "through2": "^2.0.0"
+ }
+ },
+ "mixin-deep": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz",
+ "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==",
+ "dev": true,
+ "requires": {
+ "for-in": "^1.0.2",
+ "is-extendable": "^1.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true,
+ "requires": {
+ "is-plain-object": "^2.0.4"
+ }
+ }
+ }
+ },
+ "mixin-object": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz",
+ "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=",
+ "dev": true,
+ "requires": {
+ "for-in": "^0.1.3",
+ "is-extendable": "^0.1.1"
+ },
+ "dependencies": {
+ "for-in": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz",
+ "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=",
+ "dev": true
+ }
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "mocha": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz",
+ "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==",
+ "dev": true,
+ "requires": {
+ "browser-stdout": "1.3.1",
+ "commander": "2.15.1",
+ "debug": "3.1.0",
+ "diff": "3.5.0",
+ "escape-string-regexp": "1.0.5",
+ "glob": "7.1.2",
+ "growl": "1.10.5",
+ "he": "1.1.1",
+ "minimatch": "3.0.4",
+ "mkdirp": "0.5.1",
+ "supports-color": "5.4.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
+ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "move-concurrently": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
+ "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=",
+ "dev": true,
+ "requires": {
+ "aproba": "^1.1.1",
+ "copy-concurrently": "^1.0.0",
+ "fs-write-stream-atomic": "^1.0.8",
+ "mkdirp": "^0.5.1",
+ "rimraf": "^2.5.4",
+ "run-queue": "^1.0.3"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "multicast-dns": {
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz",
+ "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==",
+ "dev": true,
+ "requires": {
+ "dns-packet": "^1.3.1",
+ "thunky": "^1.0.2"
+ }
+ },
+ "multicast-dns-service-types": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz",
+ "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=",
+ "dev": true
+ },
+ "mute-stream": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
+ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
+ "dev": true
+ },
+ "nan": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz",
+ "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==",
+ "dev": true
+ },
+ "nanomatch": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
+ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
+ "dev": true,
+ "requires": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "fragment-cache": "^0.2.1",
+ "is-windows": "^1.0.2",
+ "kind-of": "^6.0.2",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ }
+ },
+ "negotiator": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
+ "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=",
+ "dev": true
+ },
+ "neo-async": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.1.tgz",
+ "integrity": "sha512-3KL3fvuRkZ7s4IFOMfztb7zJp3QaVWnBeGoJlgB38XnCRPj/0tLzzLG5IB8NYOHbJ8g8UGrgZv44GLDk6CxTxA==",
+ "dev": true
+ },
+ "next-tick": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
+ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=",
+ "dev": true
+ },
+ "nice-try": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz",
+ "integrity": "sha512-2NpiFHqC87y/zFke0fC0spBXL3bBsoh/p5H1EFhshxjCR5+0g2d6BiXbUFz9v1sAcxsk2htp2eQnNIci2dIYcA==",
+ "dev": true
+ },
+ "node-forge": {
+ "version": "0.7.5",
+ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz",
+ "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==",
+ "dev": true
+ },
+ "node-gyp": {
+ "version": "3.8.0",
+ "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz",
+ "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==",
+ "dev": true,
+ "requires": {
+ "fstream": "^1.0.0",
+ "glob": "^7.0.3",
+ "graceful-fs": "^4.1.2",
+ "mkdirp": "^0.5.0",
+ "nopt": "2 || 3",
+ "npmlog": "0 || 1 || 2 || 3 || 4",
+ "osenv": "0",
+ "request": "^2.87.0",
+ "rimraf": "2",
+ "semver": "~5.3.0",
+ "tar": "^2.0.0",
+ "which": "1"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
+ "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
+ "dev": true
+ }
+ }
+ },
+ "node-libs-browser": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz",
+ "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==",
+ "dev": true,
+ "requires": {
+ "assert": "^1.1.1",
+ "browserify-zlib": "^0.2.0",
+ "buffer": "^4.3.0",
+ "console-browserify": "^1.1.0",
+ "constants-browserify": "^1.0.0",
+ "crypto-browserify": "^3.11.0",
+ "domain-browser": "^1.1.1",
+ "events": "^1.0.0",
+ "https-browserify": "^1.0.0",
+ "os-browserify": "^0.3.0",
+ "path-browserify": "0.0.0",
+ "process": "^0.11.10",
+ "punycode": "^1.2.4",
+ "querystring-es3": "^0.2.0",
+ "readable-stream": "^2.3.3",
+ "stream-browserify": "^2.0.1",
+ "stream-http": "^2.7.2",
+ "string_decoder": "^1.0.0",
+ "timers-browserify": "^2.0.4",
+ "tty-browserify": "0.0.0",
+ "url": "^0.11.0",
+ "util": "^0.10.3",
+ "vm-browserify": "0.0.4"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
+ "node-sass": {
+ "version": "4.9.3",
+ "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.3.tgz",
+ "integrity": "sha512-XzXyGjO+84wxyH7fV6IwBOTrEBe2f0a6SBze9QWWYR/cL74AcQUks2AsqcCZenl/Fp/JVbuEaLpgrLtocwBUww==",
+ "dev": true,
+ "requires": {
+ "async-foreach": "^0.1.3",
+ "chalk": "^1.1.1",
+ "cross-spawn": "^3.0.0",
+ "gaze": "^1.0.0",
+ "get-stdin": "^4.0.1",
+ "glob": "^7.0.3",
+ "in-publish": "^2.0.0",
+ "lodash.assign": "^4.2.0",
+ "lodash.clonedeep": "^4.3.2",
+ "lodash.mergewith": "^4.6.0",
+ "meow": "^3.7.0",
+ "mkdirp": "^0.5.1",
+ "nan": "^2.10.0",
+ "node-gyp": "^3.8.0",
+ "npmlog": "^4.0.0",
+ "request": "2.87.0",
+ "sass-graph": "^2.2.4",
+ "stdout-stream": "^1.4.0",
+ "true-case-path": "^1.0.2"
+ },
+ "dependencies": {
+ "cross-spawn": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
+ "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^4.0.1",
+ "which": "^1.2.9"
+ }
+ }
+ }
+ },
+ "nopt": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
+ "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
+ "dev": true,
+ "requires": {
+ "abbrev": "1"
+ }
+ },
+ "normalize-package-data": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
+ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "^2.1.4",
+ "is-builtin-module": "^1.0.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "dev": true,
+ "requires": {
+ "remove-trailing-separator": "^1.0.1"
+ }
+ },
+ "npm-run-path": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+ "dev": true,
+ "requires": {
+ "path-key": "^2.0.0"
+ }
+ },
+ "npmlog": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
+ "dev": true,
+ "requires": {
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.7.3",
+ "set-blocking": "~2.0.0"
+ }
+ },
+ "null-check": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz",
+ "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=",
+ "dev": true
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+ "dev": true
+ },
+ "oauth-sign": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
+ "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=",
+ "dev": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ },
+ "object-component": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz",
+ "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=",
+ "dev": true
+ },
+ "object-copy": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
+ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
+ "dev": true,
+ "requires": {
+ "copy-descriptor": "^0.1.0",
+ "define-property": "^0.2.5",
+ "kind-of": "^3.0.3"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "object-keys": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz",
+ "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==",
+ "dev": true
+ },
+ "object-visit": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
+ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.0"
+ }
+ },
+ "object.assign": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
+ "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.2",
+ "function-bind": "^1.1.1",
+ "has-symbols": "^1.0.0",
+ "object-keys": "^1.0.11"
+ }
+ },
+ "object.getownpropertydescriptors": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
+ "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.2",
+ "es-abstract": "^1.5.1"
+ }
+ },
+ "object.pick": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
+ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.1"
+ }
+ },
+ "obuf": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz",
+ "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==",
+ "dev": true
+ },
+ "on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+ "dev": true,
+ "requires": {
+ "ee-first": "1.1.1"
+ }
+ },
+ "on-headers": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz",
+ "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=",
+ "dev": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "onetime": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^1.0.0"
+ }
+ },
+ "opn": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz",
+ "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==",
+ "dev": true,
+ "requires": {
+ "is-wsl": "^1.1.0"
+ }
+ },
+ "optimist": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
+ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
+ "dev": true,
+ "requires": {
+ "minimist": "~0.0.1",
+ "wordwrap": "~0.0.2"
+ },
+ "dependencies": {
+ "wordwrap": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
+ "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
+ "dev": true
+ }
+ }
+ },
+ "original": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz",
+ "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==",
+ "dev": true,
+ "requires": {
+ "url-parse": "^1.4.3"
+ }
+ },
+ "os-browserify": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
+ "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=",
+ "dev": true
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+ "dev": true
+ },
+ "os-locale": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
+ "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
+ "dev": true,
+ "requires": {
+ "lcid": "^1.0.0"
+ }
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+ "dev": true
+ },
+ "osenv": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
+ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
+ "dev": true,
+ "requires": {
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
+ }
+ },
+ "p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+ "dev": true
+ },
+ "p-limit": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+ "dev": true,
+ "requires": {
+ "p-try": "^1.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "dev": true,
+ "requires": {
+ "p-limit": "^1.1.0"
+ }
+ },
+ "p-map": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz",
+ "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==",
+ "dev": true
+ },
+ "p-try": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+ "dev": true
+ },
+ "pako": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz",
+ "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==",
+ "dev": true
+ },
+ "parallel-transform": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz",
+ "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=",
+ "dev": true,
+ "requires": {
+ "cyclist": "~0.2.2",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.1.5"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
+ "parse-asn1": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz",
+ "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==",
+ "dev": true,
+ "requires": {
+ "asn1.js": "^4.0.0",
+ "browserify-aes": "^1.0.0",
+ "create-hash": "^1.1.0",
+ "evp_bytestokey": "^1.0.0",
+ "pbkdf2": "^3.0.3"
+ }
+ },
+ "parse-json": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "dev": true,
+ "requires": {
+ "error-ex": "^1.2.0"
+ }
+ },
+ "parseqs": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz",
+ "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=",
+ "dev": true,
+ "requires": {
+ "better-assert": "~1.0.0"
+ }
+ },
+ "parseuri": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz",
+ "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=",
+ "dev": true,
+ "requires": {
+ "better-assert": "~1.0.0"
+ }
+ },
+ "parseurl": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
+ "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=",
+ "dev": true
+ },
+ "pascalcase": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
+ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
+ "dev": true
+ },
+ "path-browserify": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz",
+ "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=",
+ "dev": true
+ },
+ "path-dirname": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
+ "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true
+ },
+ "path-is-inside": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
+ "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
+ "dev": true
+ },
+ "path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+ "dev": true
+ },
+ "path-parse": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+ "dev": true
+ },
+ "path-to-regexp": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
+ "dev": true
+ },
+ "path-type": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "pathval": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz",
+ "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=",
+ "dev": true
+ },
+ "pbkdf2": {
+ "version": "3.0.16",
+ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz",
+ "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==",
+ "dev": true,
+ "requires": {
+ "create-hash": "^1.1.2",
+ "create-hmac": "^1.1.4",
+ "ripemd160": "^2.0.1",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ }
+ },
+ "pend": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
+ "dev": true
+ },
+ "performance-now": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
+ "dev": true
+ },
+ "phantom": {
+ "version": "4.0.12",
+ "resolved": "https://registry.npmjs.org/phantom/-/phantom-4.0.12.tgz",
+ "integrity": "sha512-Tz82XhtPmwCk1FFPmecy7yRGZG2btpzY2KI9fcoPT7zT9det0CcMyfBFPp1S8DqzsnQnm8ZYEfdy528mwVtksA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "phantomjs-prebuilt": "^2.1.16",
+ "split": "^1.0.1",
+ "winston": "^2.4.0"
+ }
+ },
+ "phantomjs-prebuilt": {
+ "version": "2.1.16",
+ "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz",
+ "integrity": "sha1-79ISpKOWbTZHaE6ouniFSb4q7+8=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "es6-promise": "^4.0.3",
+ "extract-zip": "^1.6.5",
+ "fs-extra": "^1.0.0",
+ "hasha": "^2.2.0",
+ "kew": "^0.7.0",
+ "progress": "^1.1.8",
+ "request": "^2.81.0",
+ "request-progress": "^2.0.1",
+ "which": "^1.2.10"
+ }
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+ "dev": true
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "dev": true,
+ "requires": {
+ "pinkie": "^2.0.0"
+ }
+ },
+ "pkg-dir": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
+ "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
+ "dev": true,
+ "requires": {
+ "find-up": "^2.1.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "dev": true,
+ "requires": {
+ "locate-path": "^2.0.0"
+ }
+ }
+ }
+ },
+ "plur": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/plur/-/plur-2.1.2.tgz",
+ "integrity": "sha1-dIJFLBoPUI4+NE6uwxLJHCncZVo=",
+ "dev": true,
+ "requires": {
+ "irregular-plurals": "^1.0.0"
+ }
+ },
+ "portfinder": {
+ "version": "1.0.17",
+ "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.17.tgz",
+ "integrity": "sha512-syFcRIRzVI1BoEFOCaAiizwDolh1S1YXSodsVhncbhjzjZQulhczNRbqnUl9N31Q4dKGOXsNDqxC2BWBgSMqeQ==",
+ "dev": true,
+ "requires": {
+ "async": "^1.5.2",
+ "debug": "^2.2.0",
+ "mkdirp": "0.5.x"
+ },
+ "dependencies": {
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
+ "dev": true
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ },
+ "posix-character-classes": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
+ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
+ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
+ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "postcss-load-config": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.0.0.tgz",
+ "integrity": "sha512-V5JBLzw406BB8UIfsAWSK2KSwIJ5yoEIVFb4gVkXci0QdKgA24jLmHZ/ghe/GgX0lJ0/D1uUK1ejhzEY94MChQ==",
+ "dev": true,
+ "requires": {
+ "cosmiconfig": "^4.0.0",
+ "import-cwd": "^2.0.0"
+ }
+ },
+ "postcss-loader": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz",
+ "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==",
+ "dev": true,
+ "requires": {
+ "loader-utils": "^1.1.0",
+ "postcss": "^7.0.0",
+ "postcss-load-config": "^2.0.0",
+ "schema-utils": "^1.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
+ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "postcss": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.2.tgz",
+ "integrity": "sha512-fmaUY5370keLUTx+CnwRxtGiuFTcNBLQBqr1oE3WZ/euIYmGAo0OAgOhVJ3ByDnVmOR3PK+0V9VebzfjRIUcqw==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "schema-utils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "postcss-modules-extract-imports": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz",
+ "integrity": "sha1-ZhQOzs447wa/DT41XWm/WdFB6oU=",
+ "dev": true,
+ "requires": {
+ "postcss": "^6.0.1"
+ }
+ },
+ "postcss-modules-local-by-default": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz",
+ "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=",
+ "dev": true,
+ "requires": {
+ "css-selector-tokenizer": "^0.7.0",
+ "postcss": "^6.0.1"
+ }
+ },
+ "postcss-modules-scope": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz",
+ "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=",
+ "dev": true,
+ "requires": {
+ "css-selector-tokenizer": "^0.7.0",
+ "postcss": "^6.0.1"
+ }
+ },
+ "postcss-modules-values": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz",
+ "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=",
+ "dev": true,
+ "requires": {
+ "icss-replace-symbols": "^1.1.0",
+ "postcss": "^6.0.1"
+ }
+ },
+ "postcss-value-parser": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz",
+ "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=",
+ "dev": true
+ },
+ "private": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
+ "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==",
+ "dev": true
+ },
+ "process": {
+ "version": "0.11.10",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+ "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
+ "dev": true
+ },
+ "process-nextick-args": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
+ "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
+ "dev": true
+ },
+ "progress": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
+ "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=",
+ "dev": true,
+ "optional": true
+ },
+ "promise-inflight": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
+ "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
+ "dev": true
+ },
+ "proxy-addr": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz",
+ "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==",
+ "dev": true,
+ "requires": {
+ "forwarded": "~0.1.2",
+ "ipaddr.js": "1.8.0"
+ }
+ },
+ "proxy-from-env": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz",
+ "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=",
+ "dev": true
+ },
+ "prr": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
+ "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
+ "dev": true
+ },
+ "pseudomap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
+ "dev": true
+ },
+ "public-encrypt": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.2.tgz",
+ "integrity": "sha512-4kJ5Esocg8X3h8YgJsKAuoesBgB7mqH3eowiDzMUPKiRDDE7E/BqqZD1hnTByIaAFiwAw246YEltSq7tdrOH0Q==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.1.0",
+ "browserify-rsa": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "parse-asn1": "^5.0.0",
+ "randombytes": "^2.0.1"
+ }
+ },
+ "pump": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
+ "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ },
+ "dependencies": {
+ "end-of-stream": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
+ "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
+ "dev": true,
+ "requires": {
+ "once": "^1.4.0"
+ }
+ }
+ }
+ },
+ "pumpify": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
+ "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
+ "dev": true,
+ "requires": {
+ "duplexify": "^3.6.0",
+ "inherits": "^2.0.3",
+ "pump": "^2.0.0"
+ }
+ },
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
+ "dev": true
+ },
+ "puppeteer": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-1.7.0.tgz",
+ "integrity": "sha512-f+1DxKHPqce6CXUBz2eVO2WcATeVeQSOPG9GYaGObEZDCiCEUwG+gogjMsrvn7he2wHTqNVb5p6RUrwmr8XFBA==",
+ "dev": true,
+ "requires": {
+ "debug": "^3.1.0",
+ "extract-zip": "^1.6.6",
+ "https-proxy-agent": "^2.2.1",
+ "mime": "^2.0.3",
+ "progress": "^2.0.0",
+ "proxy-from-env": "^1.0.0",
+ "rimraf": "^2.6.1",
+ "ws": "^5.1.1"
+ },
+ "dependencies": {
+ "mime": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz",
+ "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==",
+ "dev": true
+ },
+ "progress": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz",
+ "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=",
+ "dev": true
+ }
+ }
+ },
+ "qjobs": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz",
+ "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==",
+ "dev": true
+ },
+ "qs": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
+ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
+ "dev": true
+ },
+ "querystring": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
+ "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
+ "dev": true
+ },
+ "querystring-es3": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
+ "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
+ "dev": true
+ },
+ "querystringify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.0.0.tgz",
+ "integrity": "sha512-eTPo5t/4bgaMNZxyjWx6N2a6AuE0mq51KWvpc7nU/MAqixcI6v6KrGUKES0HaomdnolQBBXU/++X6/QQ9KL4tw==",
+ "dev": true
+ },
+ "randombytes": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz",
+ "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "randomfill": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
+ "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
+ "dev": true,
+ "requires": {
+ "randombytes": "^2.0.5",
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "range-parser": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
+ "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=",
+ "dev": true
+ },
+ "raw-body": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz",
+ "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=",
+ "dev": true,
+ "requires": {
+ "bytes": "3.0.0",
+ "http-errors": "1.6.2",
+ "iconv-lite": "0.4.19",
+ "unpipe": "1.0.0"
+ },
+ "dependencies": {
+ "depd": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz",
+ "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=",
+ "dev": true
+ },
+ "http-errors": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz",
+ "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=",
+ "dev": true,
+ "requires": {
+ "depd": "1.1.1",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.0.3",
+ "statuses": ">= 1.3.1 < 2"
+ }
+ },
+ "iconv-lite": {
+ "version": "0.4.19",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
+ "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==",
+ "dev": true
+ },
+ "setprototypeof": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz",
+ "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=",
+ "dev": true
+ }
+ }
+ },
+ "read-pkg": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "^1.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^1.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+ "dev": true,
+ "requires": {
+ "find-up": "^1.0.0",
+ "read-pkg": "^1.0.0"
+ }
+ },
+ "readable-stream": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "readdirp": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz",
+ "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "minimatch": "^3.0.2",
+ "readable-stream": "^2.0.2",
+ "set-immediate-shim": "^1.0.1"
+ },
+ "dependencies": {
+ "graceful-fs": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "dev": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
+ "redent": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
+ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
+ "dev": true,
+ "requires": {
+ "indent-string": "^2.1.0",
+ "strip-indent": "^1.0.1"
+ }
+ },
+ "regenerate": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz",
+ "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==",
+ "dev": true
+ },
+ "regenerator-runtime": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
+ "dev": true
+ },
+ "regenerator-transform": {
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz",
+ "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.18.0",
+ "babel-types": "^6.19.0",
+ "private": "^0.1.6"
+ }
+ },
+ "regex-not": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
+ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^3.0.2",
+ "safe-regex": "^1.1.0"
+ }
+ },
+ "regexpu-core": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz",
+ "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=",
+ "dev": true,
+ "requires": {
+ "regenerate": "^1.2.1",
+ "regjsgen": "^0.2.0",
+ "regjsparser": "^0.1.4"
+ }
+ },
+ "regjsgen": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
+ "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=",
+ "dev": true
+ },
+ "regjsparser": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
+ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
+ "dev": true,
+ "requires": {
+ "jsesc": "~0.5.0"
+ },
+ "dependencies": {
+ "jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+ "dev": true
+ }
+ }
+ },
+ "remove-trailing-separator": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
+ "dev": true
+ },
+ "repeat-element": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
+ "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=",
+ "dev": true
+ },
+ "repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
+ "dev": true
+ },
+ "repeating": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+ "dev": true,
+ "requires": {
+ "is-finite": "^1.0.0"
+ }
+ },
+ "request": {
+ "version": "2.87.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz",
+ "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==",
+ "dev": true,
+ "requires": {
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.6.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.5",
+ "extend": "~3.0.1",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.1",
+ "har-validator": "~5.0.3",
+ "http-signature": "~1.2.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.17",
+ "oauth-sign": "~0.8.2",
+ "performance-now": "^2.1.0",
+ "qs": "~6.5.1",
+ "safe-buffer": "^5.1.1",
+ "tough-cookie": "~2.3.3",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^3.1.0"
+ }
+ },
+ "request-progress": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz",
+ "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "throttleit": "^1.0.0"
+ }
+ },
+ "require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
+ "dev": true
+ },
+ "require-from-string": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+ "dev": true
+ },
+ "require-main-filename": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
+ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
+ "dev": true
+ },
+ "requires-port": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
+ "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
+ "dev": true
+ },
+ "resolve-cwd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz",
+ "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=",
+ "dev": true,
+ "requires": {
+ "resolve-from": "^3.0.0"
+ },
+ "dependencies": {
+ "resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
+ "dev": true
+ }
+ }
+ },
+ "resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
+ "dev": true
+ },
+ "resolve-url": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
+ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
+ "dev": true
+ },
+ "restore-cursor": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
+ "dev": true,
+ "requires": {
+ "onetime": "^2.0.0",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "ret": {
+ "version": "0.1.15",
+ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
+ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
+ "dev": true
+ },
+ "rfdc": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.2.tgz",
+ "integrity": "sha512-92ktAgvZhBzYTIK0Mja9uen5q5J3NRVMoDkJL2VMwq6SXjVCgqvQeVP2XAaUY6HT+XpQYeLSjb3UoitBryKmdA==",
+ "dev": true
+ },
+ "right-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
+ "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "align-text": "^0.1.1"
+ }
+ },
+ "rimraf": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
+ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.0.5"
+ }
+ },
+ "ripemd160": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
+ "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
+ "dev": true,
+ "requires": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1"
+ }
+ },
+ "run-async": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
+ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
+ "dev": true,
+ "requires": {
+ "is-promise": "^2.1.0"
+ }
+ },
+ "run-queue": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz",
+ "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=",
+ "dev": true,
+ "requires": {
+ "aproba": "^1.1.1"
+ }
+ },
+ "rxjs": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.2.2.tgz",
+ "integrity": "sha512-0MI8+mkKAXZUF9vMrEoPnaoHkfzBPP4IGwUYRJhIRJF6/w3uByO1e91bEHn8zd43RdkTMKiooYKmwz7RH6zfOQ==",
+ "dev": true,
+ "requires": {
+ "tslib": "^1.9.0"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true
+ },
+ "safe-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
+ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
+ "dev": true,
+ "requires": {
+ "ret": "~0.1.10"
+ }
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "dev": true
+ },
+ "sass-graph": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz",
+ "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=",
+ "dev": true,
+ "requires": {
+ "glob": "^7.0.0",
+ "lodash": "^4.0.0",
+ "scss-tokenizer": "^0.2.3",
+ "yargs": "^7.0.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
+ "dev": true
+ },
+ "cliui": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
+ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
+ "dev": true,
+ "requires": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wrap-ansi": "^2.0.0"
+ }
+ },
+ "yargs": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
+ "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
+ "dev": true,
+ "requires": {
+ "camelcase": "^3.0.0",
+ "cliui": "^3.2.0",
+ "decamelize": "^1.1.1",
+ "get-caller-file": "^1.0.1",
+ "os-locale": "^1.4.0",
+ "read-pkg-up": "^1.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^1.0.1",
+ "set-blocking": "^2.0.0",
+ "string-width": "^1.0.2",
+ "which-module": "^1.0.0",
+ "y18n": "^3.2.1",
+ "yargs-parser": "^5.0.0"
+ }
+ }
+ }
+ },
+ "sass-loader": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.1.0.tgz",
+ "integrity": "sha512-+G+BKGglmZM2GUSfT9TLuEp6tzehHPjAMoRRItOojWIqIGPloVCMhNIQuG639eJ+y033PaGTSjLaTHts8Kw79w==",
+ "dev": true,
+ "requires": {
+ "clone-deep": "^2.0.1",
+ "loader-utils": "^1.0.1",
+ "lodash.tail": "^4.1.1",
+ "neo-async": "^2.5.0",
+ "pify": "^3.0.0",
+ "semver": "^5.5.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ },
+ "semver": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
+ "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==",
+ "dev": true
+ }
+ }
+ },
+ "schema-utils": {
+ "version": "0.4.5",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.5.tgz",
+ "integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.1.0",
+ "ajv-keywords": "^3.1.0"
+ }
+ },
+ "scss-tokenizer": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz",
+ "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=",
+ "dev": true,
+ "requires": {
+ "js-base64": "^2.1.8",
+ "source-map": "^0.4.2"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
+ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+ "dev": true,
+ "requires": {
+ "amdefine": ">=0.0.4"
+ }
+ }
+ }
+ },
+ "select-hose": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
+ "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=",
+ "dev": true
+ },
+ "selfsigned": {
+ "version": "1.10.3",
+ "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.3.tgz",
+ "integrity": "sha512-vmZenZ+8Al3NLHkWnhBQ0x6BkML1eCP2xEi3JE+f3D9wW9fipD9NNJHYtE9XJM4TsPaHGZJIamrSI6MTg1dU2Q==",
+ "dev": true,
+ "requires": {
+ "node-forge": "0.7.5"
+ }
+ },
+ "semver": {
+ "version": "5.5.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz",
+ "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==",
+ "dev": true
+ },
+ "send": {
+ "version": "0.16.2",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
+ "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "destroy": "~1.0.4",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "~1.6.2",
+ "mime": "1.4.1",
+ "ms": "2.0.0",
+ "on-finished": "~2.3.0",
+ "range-parser": "~1.2.0",
+ "statuses": "~1.4.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "statuses": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
+ "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==",
+ "dev": true
+ }
+ }
+ },
+ "serialize-javascript": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.5.0.tgz",
+ "integrity": "sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ==",
+ "dev": true
+ },
+ "serve-index": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
+ "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=",
+ "dev": true,
+ "requires": {
+ "accepts": "~1.3.4",
+ "batch": "0.6.1",
+ "debug": "2.6.9",
+ "escape-html": "~1.0.3",
+ "http-errors": "~1.6.2",
+ "mime-types": "~2.1.17",
+ "parseurl": "~1.3.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ },
+ "serve-static": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz",
+ "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==",
+ "dev": true,
+ "requires": {
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.2",
+ "send": "0.16.2"
+ }
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
+ "dev": true
+ },
+ "set-immediate-shim": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
+ "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=",
+ "dev": true
+ },
+ "set-value": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz",
+ "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-extendable": "^0.1.1",
+ "is-plain-object": "^2.0.3",
+ "split-string": "^3.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "setimmediate": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+ "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
+ "dev": true
+ },
+ "setprototypeof": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
+ "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
+ "dev": true
+ },
+ "sha.js": {
+ "version": "2.4.11",
+ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
+ "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "shallow-clone": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz",
+ "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.1",
+ "kind-of": "^5.0.0",
+ "mixin-object": "^2.0.1"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true
+ }
+ }
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+ "dev": true
+ },
+ "shelljs": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz",
+ "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=",
+ "dev": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
+ "dev": true
+ },
+ "slash": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
+ "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
+ "dev": true
+ },
+ "snapdragon": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
+ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
+ "dev": true,
+ "requires": {
+ "base": "^0.11.1",
+ "debug": "^2.2.0",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "map-cache": "^0.2.2",
+ "source-map": "^0.5.6",
+ "source-map-resolve": "^0.5.0",
+ "use": "^3.1.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "snapdragon-node": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
+ "dev": true,
+ "requires": {
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.0",
+ "snapdragon-util": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "snapdragon-util": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.2.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "socket.io": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz",
+ "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==",
+ "dev": true,
+ "requires": {
+ "debug": "~3.1.0",
+ "engine.io": "~3.2.0",
+ "has-binary2": "~1.0.2",
+ "socket.io-adapter": "~1.1.0",
+ "socket.io-client": "2.1.1",
+ "socket.io-parser": "~3.2.0"
+ }
+ },
+ "socket.io-adapter": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz",
+ "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=",
+ "dev": true
+ },
+ "socket.io-client": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz",
+ "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==",
+ "dev": true,
+ "requires": {
+ "backo2": "1.0.2",
+ "base64-arraybuffer": "0.1.5",
+ "component-bind": "1.0.0",
+ "component-emitter": "1.2.1",
+ "debug": "~3.1.0",
+ "engine.io-client": "~3.2.0",
+ "has-binary2": "~1.0.2",
+ "has-cors": "1.1.0",
+ "indexof": "0.0.1",
+ "object-component": "0.0.3",
+ "parseqs": "0.0.5",
+ "parseuri": "0.0.5",
+ "socket.io-parser": "~3.2.0",
+ "to-array": "0.1.4"
+ }
+ },
+ "socket.io-parser": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz",
+ "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==",
+ "dev": true,
+ "requires": {
+ "component-emitter": "1.2.1",
+ "debug": "~3.1.0",
+ "isarray": "2.0.1"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
+ "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=",
+ "dev": true
+ }
+ }
+ },
+ "sockjs": {
+ "version": "0.3.19",
+ "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz",
+ "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==",
+ "dev": true,
+ "requires": {
+ "faye-websocket": "^0.10.0",
+ "uuid": "^3.0.1"
+ }
+ },
+ "sockjs-client": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.5.tgz",
+ "integrity": "sha1-G7fA9yIsQPQq3xT0RCy9Eml3GoM=",
+ "dev": true,
+ "requires": {
+ "debug": "^2.6.6",
+ "eventsource": "0.1.6",
+ "faye-websocket": "~0.11.0",
+ "inherits": "^2.0.1",
+ "json3": "^3.3.2",
+ "url-parse": "^1.1.8"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "faye-websocket": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz",
+ "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=",
+ "dev": true,
+ "requires": {
+ "websocket-driver": ">=0.5.1"
+ }
+ }
+ }
+ },
+ "source-list-map": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz",
+ "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "source-map-resolve": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
+ "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
+ "dev": true,
+ "requires": {
+ "atob": "^2.1.1",
+ "decode-uri-component": "^0.2.0",
+ "resolve-url": "^0.2.1",
+ "source-map-url": "^0.4.0",
+ "urix": "^0.1.0"
+ }
+ },
+ "source-map-support": {
+ "version": "0.4.18",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
+ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
+ "dev": true,
+ "requires": {
+ "source-map": "^0.5.6"
+ }
+ },
+ "source-map-url": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
+ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
+ "dev": true
+ },
+ "spdx-correct": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz",
+ "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==",
+ "dev": true,
+ "requires": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-exceptions": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz",
+ "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==",
+ "dev": true
+ },
+ "spdx-expression-parse": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
+ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
+ "dev": true,
+ "requires": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-license-ids": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz",
+ "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==",
+ "dev": true
+ },
+ "spdy": {
+ "version": "3.4.7",
+ "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz",
+ "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=",
+ "dev": true,
+ "requires": {
+ "debug": "^2.6.8",
+ "handle-thing": "^1.2.5",
+ "http-deceiver": "^1.2.7",
+ "safe-buffer": "^5.0.1",
+ "select-hose": "^2.0.0",
+ "spdy-transport": "^2.0.18"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ },
+ "spdy-transport": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.1.0.tgz",
+ "integrity": "sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==",
+ "dev": true,
+ "requires": {
+ "debug": "^2.6.8",
+ "detect-node": "^2.0.3",
+ "hpack.js": "^2.1.6",
+ "obuf": "^1.1.1",
+ "readable-stream": "^2.2.9",
+ "safe-buffer": "^5.0.1",
+ "wbuf": "^1.7.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
+ "split": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
+ "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "through": "2"
+ }
+ },
+ "split-string": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
+ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^3.0.0"
+ }
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "dev": true
+ },
+ "sshpk": {
+ "version": "1.14.2",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz",
+ "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=",
+ "dev": true,
+ "requires": {
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.0.2",
+ "tweetnacl": "~0.14.0"
+ }
+ },
+ "ssri": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz",
+ "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "stack-trace": {
+ "version": "0.0.10",
+ "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
+ "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=",
+ "dev": true,
+ "optional": true
+ },
+ "static-extend": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
+ "dev": true,
+ "requires": {
+ "define-property": "^0.2.5",
+ "object-copy": "^0.1.0"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ }
+ }
+ },
+ "statuses": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
+ "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=",
+ "dev": true
+ },
+ "stdout-stream": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz",
+ "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==",
+ "dev": true,
+ "requires": {
+ "readable-stream": "^2.0.1"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
+ "stream-browserify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz",
+ "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=",
+ "dev": true,
+ "requires": {
+ "inherits": "~2.0.1",
+ "readable-stream": "^2.0.2"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
+ "stream-each": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz",
+ "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "stream-shift": "^1.0.0"
+ }
+ },
+ "stream-http": {
+ "version": "2.8.3",
+ "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz",
+ "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==",
+ "dev": true,
+ "requires": {
+ "builtin-status-codes": "^3.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.3.6",
+ "to-arraybuffer": "^1.0.0",
+ "xtend": "^4.0.0"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
+ "stream-shift": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz",
+ "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
+ "dev": true
+ },
+ "streamroller": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-0.7.0.tgz",
+ "integrity": "sha512-WREzfy0r0zUqp3lGO096wRuUp7ho1X6uo/7DJfTlEi0Iv/4gT7YHqXDjKC2ioVGBZtE8QzsQD9nx1nIuoZ57jQ==",
+ "dev": true,
+ "requires": {
+ "date-format": "^1.2.0",
+ "debug": "^3.1.0",
+ "mkdirp": "^0.5.1",
+ "readable-stream": "^2.3.0"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
+ "string-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz",
+ "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=",
+ "dev": true,
+ "requires": {
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
+ },
+ "strip-eof": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
+ "dev": true
+ },
+ "strip-indent": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
+ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
+ "dev": true,
+ "requires": {
+ "get-stdin": "^4.0.1"
+ }
+ },
+ "style-loader": {
+ "version": "0.23.0",
+ "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.0.tgz",
+ "integrity": "sha512-uCcN7XWHkqwGVt7skpInW6IGO1tG6ReyFQ1Cseh0VcN6VdcFQi62aG/2F3Y9ueA8x4IVlfaSUxpmQXQD9QrEuQ==",
+ "dev": true,
+ "requires": {
+ "loader-utils": "^1.1.0",
+ "schema-utils": "^0.4.5"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ },
+ "tapable": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.0.0.tgz",
+ "integrity": "sha512-dQRhbNQkRnaqauC7WqSJ21EEksgT0fYZX2lqXzGkpo8JNig9zGZTYoMGvyI2nWmXlE2VSVXVDu7wLVGu/mQEsg==",
+ "dev": true
+ },
+ "tar": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
+ "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
+ "dev": true,
+ "requires": {
+ "block-stream": "*",
+ "fstream": "^1.0.2",
+ "inherits": "2"
+ }
+ },
+ "text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
+ "dev": true
+ },
+ "throttleit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz",
+ "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=",
+ "dev": true,
+ "optional": true
+ },
+ "through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
+ "dev": true
+ },
+ "through2": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
+ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
+ "dev": true,
+ "requires": {
+ "readable-stream": "^2.1.5",
+ "xtend": "~4.0.1"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
+ "thunky": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.2.tgz",
+ "integrity": "sha1-qGLgGOP7HqLsP85dVWBc9X8kc3E=",
+ "dev": true
+ },
+ "timers-browserify": {
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz",
+ "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==",
+ "dev": true,
+ "requires": {
+ "setimmediate": "^1.0.4"
+ }
+ },
+ "tmp": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "dev": true,
+ "requires": {
+ "os-tmpdir": "~1.0.2"
+ }
+ },
+ "to-array": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz",
+ "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=",
+ "dev": true
+ },
+ "to-arraybuffer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
+ "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=",
+ "dev": true
+ },
+ "to-fast-properties": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
+ "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
+ "dev": true
+ },
+ "to-object-path": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
+ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "to-regex": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
+ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
+ "dev": true,
+ "requires": {
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "regex-not": "^1.0.2",
+ "safe-regex": "^1.1.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+ "dev": true,
+ "requires": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ }
+ },
+ "tough-cookie": {
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",
+ "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==",
+ "dev": true,
+ "requires": {
+ "punycode": "^1.4.1"
+ }
+ },
+ "trim-newlines": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
+ "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
+ "dev": true
+ },
+ "trim-right": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
+ "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
+ "dev": true
+ },
+ "true-case-path": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz",
+ "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.2"
+ }
+ },
+ "tslib": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
+ "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==",
+ "dev": true
+ },
+ "tty-browserify": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
+ "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=",
+ "dev": true
+ },
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+ "dev": true,
+ "optional": true
+ },
+ "type-detect": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
+ "dev": true
+ },
+ "type-is": {
+ "version": "1.6.16",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz",
+ "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==",
+ "dev": true,
+ "requires": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.18"
+ }
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+ "dev": true
+ },
+ "uglify-js": {
+ "version": "2.8.29",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
+ "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "source-map": "~0.5.1",
+ "uglify-to-browserify": "~1.0.0",
+ "yargs": "~3.10.0"
+ }
+ },
+ "uglify-to-browserify": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
+ "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
+ "dev": true,
+ "optional": true
+ },
+ "uglifyjs-webpack-plugin": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz",
+ "integrity": "sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==",
+ "dev": true,
+ "requires": {
+ "cacache": "^10.0.4",
+ "find-cache-dir": "^1.0.0",
+ "schema-utils": "^0.4.5",
+ "serialize-javascript": "^1.4.0",
+ "source-map": "^0.6.1",
+ "uglify-es": "^3.3.4",
+ "webpack-sources": "^1.1.0",
+ "worker-farm": "^1.5.2"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.13.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz",
+ "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ },
+ "uglify-es": {
+ "version": "3.3.9",
+ "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz",
+ "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==",
+ "dev": true,
+ "requires": {
+ "commander": "~2.13.0",
+ "source-map": "~0.6.1"
+ }
+ }
+ }
+ },
+ "ultron": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
+ "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==",
+ "dev": true
+ },
+ "unicode-5.2.0": {
+ "version": "0.7.5",
+ "resolved": "https://registry.npmjs.org/unicode-5.2.0/-/unicode-5.2.0-0.7.5.tgz",
+ "integrity": "sha512-KVGLW1Bri30x00yv4HNM8kBxoqFXr0Sbo55735nvrlsx4PYBZol3UtoWgO492fSwmsetzPEZzy73rbU8OGXJcA==",
+ "dev": true
+ },
+ "union-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
+ "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=",
+ "dev": true,
+ "requires": {
+ "arr-union": "^3.1.0",
+ "get-value": "^2.0.6",
+ "is-extendable": "^0.1.1",
+ "set-value": "^0.4.3"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "set-value": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
+ "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-extendable": "^0.1.1",
+ "is-plain-object": "^2.0.1",
+ "to-object-path": "^0.3.0"
+ }
+ }
+ }
+ },
+ "unique-filename": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz",
+ "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=",
+ "dev": true,
+ "requires": {
+ "unique-slug": "^2.0.0"
+ }
+ },
+ "unique-slug": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz",
+ "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=",
+ "dev": true,
+ "requires": {
+ "imurmurhash": "^0.1.4"
+ }
+ },
+ "unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
+ "dev": true
+ },
+ "unset-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
+ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
+ "dev": true,
+ "requires": {
+ "has-value": "^0.3.1",
+ "isobject": "^3.0.0"
+ },
+ "dependencies": {
+ "has-value": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
+ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
+ "dev": true,
+ "requires": {
+ "get-value": "^2.0.3",
+ "has-values": "^0.1.4",
+ "isobject": "^2.0.0"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "dev": true,
+ "requires": {
+ "isarray": "1.0.0"
+ }
+ }
+ }
+ },
+ "has-values": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
+ "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
+ "dev": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ }
+ }
+ },
+ "upath": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz",
+ "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==",
+ "dev": true
+ },
+ "uri-js": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
+ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
+ "dev": true,
+ "requires": {
+ "punycode": "^2.1.0"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+ "dev": true
+ }
+ }
+ },
+ "urix": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
+ "dev": true
+ },
+ "url": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
+ "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
+ "dev": true,
+ "requires": {
+ "punycode": "1.3.2",
+ "querystring": "0.2.0"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
+ "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
+ "dev": true
+ }
+ }
+ },
+ "url-join": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz",
+ "integrity": "sha1-TTNA6AfTdzvamZH4MFrNzCpmXSo=",
+ "dev": true
+ },
+ "url-parse": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.3.tgz",
+ "integrity": "sha512-rh+KuAW36YKo0vClhQzLLveoj8FwPJNu65xLb7Mrt+eZht0IPT0IXgSv8gcMegZ6NvjJUALf6Mf25POlMwD1Fw==",
+ "dev": true,
+ "requires": {
+ "querystringify": "^2.0.0",
+ "requires-port": "^1.0.0"
+ }
+ },
+ "url-search-params": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/url-search-params/-/url-search-params-1.0.2.tgz",
+ "integrity": "sha512-aj1JzgAxZINK78SKXBm7uTKK5245RFAyUbyC+9WNdakEdDXGYGETthkyOyQJMUaTgycJYh25a+tDwg3lpCkgQA=="
+ },
+ "use": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
+ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
+ "dev": true
+ },
+ "useragent": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.2.1.tgz",
+ "integrity": "sha1-z1k+9PLRdYdei7ZY6pLhik/QbY4=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "2.2.x",
+ "tmp": "0.0.x"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.2.4.tgz",
+ "integrity": "sha1-bGWGGb7PFAMdDQtZSxYELOTcBj0=",
+ "dev": true
+ }
+ }
+ },
+ "util": {
+ "version": "0.10.4",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
+ "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+ "dev": true
+ },
+ "util.promisify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz",
+ "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.2",
+ "object.getownpropertydescriptors": "^2.0.3"
+ }
+ },
+ "utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
+ "dev": true
+ },
+ "uuid": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
+ "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
+ "dev": true
+ },
+ "v8-compile-cache": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.0.tgz",
+ "integrity": "sha512-qNdTUMaCjPs4eEnM3W9H94R3sU70YCuT+/ST7nUf+id1bVOrdjrpUaeZLqPBPRph3hsgn4a4BvwpxhHZx+oSDg==",
+ "dev": true
+ },
+ "validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "dev": true,
+ "requires": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
+ "dev": true
+ },
+ "verror": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "^1.2.0"
+ }
+ },
+ "vm-browserify": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz",
+ "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=",
+ "dev": true,
+ "requires": {
+ "indexof": "0.0.1"
+ }
+ },
+ "void-elements": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz",
+ "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=",
+ "dev": true
+ },
+ "watchpack": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz",
+ "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==",
+ "dev": true,
+ "requires": {
+ "chokidar": "^2.0.2",
+ "graceful-fs": "^4.1.2",
+ "neo-async": "^2.5.0"
+ }
+ },
+ "wbuf": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz",
+ "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==",
+ "dev": true,
+ "requires": {
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "webpack": {
+ "version": "4.17.1",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.17.1.tgz",
+ "integrity": "sha512-vdPYogljzWPhFKDj3Gcp01Vqgu7K3IQlybc3XIdKSQHelK1C3eIQuysEUR7MxKJmdandZlQB/9BG2Jb1leJHaw==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.5.13",
+ "@webassemblyjs/helper-module-context": "1.5.13",
+ "@webassemblyjs/wasm-edit": "1.5.13",
+ "@webassemblyjs/wasm-opt": "1.5.13",
+ "@webassemblyjs/wasm-parser": "1.5.13",
+ "acorn": "^5.6.2",
+ "acorn-dynamic-import": "^3.0.0",
+ "ajv": "^6.1.0",
+ "ajv-keywords": "^3.1.0",
+ "chrome-trace-event": "^1.0.0",
+ "enhanced-resolve": "^4.1.0",
+ "eslint-scope": "^4.0.0",
+ "json-parse-better-errors": "^1.0.2",
+ "loader-runner": "^2.3.0",
+ "loader-utils": "^1.1.0",
+ "memory-fs": "~0.4.1",
+ "micromatch": "^3.1.8",
+ "mkdirp": "~0.5.0",
+ "neo-async": "^2.5.0",
+ "node-libs-browser": "^2.0.0",
+ "schema-utils": "^0.4.4",
+ "tapable": "^1.0.0",
+ "uglifyjs-webpack-plugin": "^1.2.4",
+ "watchpack": "^1.5.0",
+ "webpack-sources": "^1.0.1"
+ }
+ },
+ "webpack-cli": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.1.0.tgz",
+ "integrity": "sha512-p5NeKDtYwjZozUWq6kGNs9w+Gtw/CPvyuXjXn2HMdz8Tie+krjEg8oAtonvIyITZdvpF7XG9xDHwscLr2c+ugQ==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "cross-spawn": "^6.0.5",
+ "enhanced-resolve": "^4.0.0",
+ "global-modules-path": "^2.1.0",
+ "import-local": "^1.0.0",
+ "inquirer": "^6.0.0",
+ "interpret": "^1.1.0",
+ "loader-utils": "^1.1.0",
+ "supports-color": "^5.4.0",
+ "v8-compile-cache": "^2.0.0",
+ "yargs": "^12.0.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "camelcase": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
+ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "cliui": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
+ "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
+ "dev": true,
+ "requires": {
+ "string-width": "^2.1.1",
+ "strip-ansi": "^4.0.0",
+ "wrap-ansi": "^2.0.0"
+ }
+ },
+ "cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dev": true,
+ "requires": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ },
+ "decamelize": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz",
+ "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==",
+ "dev": true,
+ "requires": {
+ "xregexp": "4.0.0"
+ }
+ },
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "os-locale": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
+ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
+ "dev": true,
+ "requires": {
+ "execa": "^0.7.0",
+ "lcid": "^1.0.0",
+ "mem": "^1.1.0"
+ }
+ },
+ "p-limit": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz",
+ "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "p-try": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz",
+ "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ },
+ "semver": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
+ "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
+ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "which-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+ "dev": true
+ },
+ "xregexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz",
+ "integrity": "sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==",
+ "dev": true
+ },
+ "yargs": {
+ "version": "12.0.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.1.tgz",
+ "integrity": "sha512-B0vRAp1hRX4jgIOWFtjfNjd9OA9RWYZ6tqGA9/I/IrTMsxmKvtWy+ersM+jzpQqbC3YfLzeABPdeTgcJ9eu1qQ==",
+ "dev": true,
+ "requires": {
+ "cliui": "^4.0.0",
+ "decamelize": "^2.0.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^1.0.1",
+ "os-locale": "^2.0.0",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^1.0.1",
+ "set-blocking": "^2.0.0",
+ "string-width": "^2.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^3.2.1 || ^4.0.0",
+ "yargs-parser": "^10.1.0"
+ }
+ },
+ "yargs-parser": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz",
+ "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^4.1.0"
+ }
+ }
+ }
+ },
+ "webpack-dev-middleware": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.2.0.tgz",
+ "integrity": "sha512-YJLMF/96TpKXaEQwaLEo+Z4NDK8aV133ROF6xp9pe3gQoS7sxfpXh4Rv9eC+8vCvWfmDjRQaMSlRPbO+9G6jgA==",
+ "dev": true,
+ "requires": {
+ "loud-rejection": "^1.6.0",
+ "memory-fs": "~0.4.1",
+ "mime": "^2.3.1",
+ "path-is-absolute": "^1.0.0",
+ "range-parser": "^1.0.3",
+ "url-join": "^4.0.0",
+ "webpack-log": "^2.0.0"
+ },
+ "dependencies": {
+ "mime": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz",
+ "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==",
+ "dev": true
+ },
+ "webpack-log": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz",
+ "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==",
+ "dev": true,
+ "requires": {
+ "ansi-colors": "^3.0.0",
+ "uuid": "^3.3.2"
+ }
+ }
+ }
+ },
+ "webpack-dev-server": {
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.1.7.tgz",
+ "integrity": "sha512-KagFrNHf3QKndS61cXqzkQ4gpdXo0d1LZTTplAJzNK1Ev2ZyJiu+BzerW/2dixYYfpnGzp0AcvCXpmYXIOkFOA==",
+ "dev": true,
+ "requires": {
+ "ansi-html": "0.0.7",
+ "bonjour": "^3.5.0",
+ "chokidar": "^2.0.0",
+ "compression": "^1.5.2",
+ "connect-history-api-fallback": "^1.3.0",
+ "debug": "^3.1.0",
+ "del": "^3.0.0",
+ "express": "^4.16.2",
+ "html-entities": "^1.2.0",
+ "http-proxy-middleware": "~0.18.0",
+ "import-local": "^1.0.0",
+ "internal-ip": "^3.0.1",
+ "ip": "^1.1.5",
+ "killable": "^1.0.0",
+ "loglevel": "^1.4.1",
+ "opn": "^5.1.0",
+ "portfinder": "^1.0.9",
+ "schema-utils": "^1.0.0",
+ "selfsigned": "^1.9.1",
+ "serve-index": "^1.7.2",
+ "sockjs": "0.3.19",
+ "sockjs-client": "1.1.5",
+ "spdy": "^3.4.1",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^5.1.0",
+ "webpack-dev-middleware": "3.2.0",
+ "webpack-log": "^2.0.0",
+ "yargs": "12.0.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "camelcase": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+ "dev": true
+ },
+ "cliui": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
+ "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
+ "dev": true,
+ "requires": {
+ "string-width": "^2.1.1",
+ "strip-ansi": "^4.0.0",
+ "wrap-ansi": "^2.0.0"
+ },
+ "dependencies": {
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ }
+ }
+ },
+ "decamelize": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz",
+ "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==",
+ "dev": true,
+ "requires": {
+ "xregexp": "4.0.0"
+ }
+ },
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "os-locale": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
+ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
+ "dev": true,
+ "requires": {
+ "execa": "^0.7.0",
+ "lcid": "^1.0.0",
+ "mem": "^1.1.0"
+ }
+ },
+ "p-limit": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz",
+ "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "p-try": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz",
+ "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ },
+ "schema-utils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
+ }
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ },
+ "dependencies": {
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ }
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "webpack-log": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz",
+ "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==",
+ "dev": true,
+ "requires": {
+ "ansi-colors": "^3.0.0",
+ "uuid": "^3.3.2"
+ }
+ },
+ "which-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+ "dev": true
+ },
+ "xregexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz",
+ "integrity": "sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==",
+ "dev": true
+ },
+ "yargs": {
+ "version": "12.0.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.1.tgz",
+ "integrity": "sha512-B0vRAp1hRX4jgIOWFtjfNjd9OA9RWYZ6tqGA9/I/IrTMsxmKvtWy+ersM+jzpQqbC3YfLzeABPdeTgcJ9eu1qQ==",
+ "dev": true,
+ "requires": {
+ "cliui": "^4.0.0",
+ "decamelize": "^2.0.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^1.0.1",
+ "os-locale": "^2.0.0",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^1.0.1",
+ "set-blocking": "^2.0.0",
+ "string-width": "^2.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^3.2.1 || ^4.0.0",
+ "yargs-parser": "^10.1.0"
+ }
+ },
+ "yargs-parser": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz",
+ "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^4.1.0"
+ }
+ }
+ }
+ },
+ "webpack-log": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-1.2.0.tgz",
+ "integrity": "sha512-U9AnICnu50HXtiqiDxuli5gLB5PGBo7VvcHx36jRZHwK4vzOYLbImqT4lwWwoMHdQWwEKw736fCHEekokTEKHA==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.1.0",
+ "log-symbols": "^2.1.0",
+ "loglevelnext": "^1.0.1",
+ "uuid": "^3.1.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
+ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "log-symbols": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
+ "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.0.1"
+ }
+ },
+ "supports-color": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
+ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "webpack-sources": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.2.0.tgz",
+ "integrity": "sha512-9BZwxR85dNsjWz3blyxdOhTgtnQvv3OEs5xofI0wPYTwu5kaWxS08UuD1oI7WLBLpRO+ylf0ofnXLXWmGb2WMw==",
+ "dev": true,
+ "requires": {
+ "source-list-map": "^2.0.0",
+ "source-map": "~0.6.1"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "websocket-driver": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz",
+ "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=",
+ "dev": true,
+ "requires": {
+ "http-parser-js": ">=0.4.0",
+ "websocket-extensions": ">=0.1.1"
+ }
+ },
+ "websocket-extensions": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz",
+ "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==",
+ "dev": true
+ },
+ "whatwg-fetch": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz",
+ "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng=="
+ },
+ "which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "which-module": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
+ "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=",
+ "dev": true
+ },
+ "wide-align": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+ "dev": true,
+ "requires": {
+ "string-width": "^1.0.2 || 2"
+ }
+ },
+ "window-size": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
+ "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
+ "dev": true,
+ "optional": true
+ },
+ "winston": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.3.tgz",
+ "integrity": "sha512-GYKuysPz2pxYAVJD2NPsDLP5Z79SDEzPm9/j4tCjkF/n89iBNGBMJcR+dMUqxgPNgoSs6fVygPi+Vl2oxIpBuw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "async": "~1.0.0",
+ "colors": "1.0.x",
+ "cycle": "1.0.x",
+ "eyes": "0.1.x",
+ "isstream": "0.1.x",
+ "stack-trace": "0.0.x"
+ },
+ "dependencies": {
+ "async": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz",
+ "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=",
+ "dev": true,
+ "optional": true
+ },
+ "colors": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
+ "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "worker-farm": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz",
+ "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==",
+ "dev": true,
+ "requires": {
+ "errno": "~0.1.7"
+ }
+ },
+ "wrap-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+ "dev": true,
+ "requires": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "ws": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz",
+ "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==",
+ "dev": true,
+ "requires": {
+ "async-limiter": "~1.0.0"
+ }
+ },
+ "xmlhttprequest-ssl": {
+ "version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz",
+ "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=",
+ "dev": true
+ },
+ "xtend": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
+ "dev": true
+ },
+ "y18n": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
+ "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
+ "dev": true
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+ "dev": true
+ },
+ "yargs": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
+ "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "camelcase": "^1.0.2",
+ "cliui": "^2.1.0",
+ "decamelize": "^1.0.0",
+ "window-size": "0.1.0"
+ }
+ },
+ "yargs-parser": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
+ "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
+ "dev": true,
+ "requires": {
+ "camelcase": "^3.0.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
+ "dev": true
+ }
+ }
+ },
+ "yauzl": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz",
+ "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=",
+ "dev": true,
+ "requires": {
+ "fd-slicer": "~1.0.1"
+ }
+ },
+ "yeast": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz",
+ "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=",
+ "dev": true
+ }
+ }
+}
diff --git a/package.json b/package.json
index 18a3ada3..98978a65 100644
--- a/package.json
+++ b/package.json
@@ -1,106 +1,67 @@
{
- "name": "diva.js",
- "version": "5.2.0",
- "description": "Diva.js is a JavaScript document image viewer designed to present multi-page documents at high resolutions.",
+ "name": "diva",
+ "version": "6.0.0",
+ "description": "Diva.js",
"main": "build/js/diva.js",
- "directories": {
- "test": "tests"
- },
- "jspm": {
- "files": [
- "build"
- ],
- "ignore": [
- "gulpfile.js"
- ]
- },
"scripts": {
- "lint": "gulp develop:jshint",
- "test": "gulp develop:test",
- "trigger-tests": "karma run",
- "coverage": "DIVA_ENV=coverage karma start --single-run"
+ "test": "npm run build:production && karma start",
+ "lint": "jshint --reporter=node_modules/jshint-stylish source/js test",
+ "develop": "webpack-dev-server",
+ "build:develop": "webpack --progress",
+ "build:production": "NODE_ENV=production webpack --progress"
},
"repository": {
"type": "git",
- "url": "https://github.com/DDMAL/diva.js.git"
+ "url": "git+https://github.com/DDMAL/diva.js.git"
+ },
+ "author": "",
+ "license": "ISC",
+ "bugs": {
+ "url": "https://github.com/DDMAL/diva.js/issues"
},
- "keywords": [
- "images",
- "viewer",
- "iiif",
- "iip",
- "documents",
- "libraries",
- "archives"
- ],
+ "homepage": "https://github.com/DDMAL/diva.js#readme",
"dependencies": {
"array.prototype.fill": "^1.0.2",
- "debug": "^2.2.0",
- "jquery": "~2.1.1",
- "lodash.maxby": "^4.3.0"
+ "url-search-params": "^1.0.2",
+ "whatwg-fetch": "^2.0.4"
},
"devDependencies": {
- "archiver": "^1.3.0",
- "autoprefixer": "^6.6.0",
- "bluebird": "^3.3.4",
- "chalk": "^1.1.3",
- "connect": "^3.3.5",
- "connect-livereload": "^0.6.0",
- "del": "^2.2.2",
- "gulp": "^3.9.1",
- "gulp-jshint": "^2.0.4",
- "gulp-less": "^3.0.3",
- "gulp-livereload": "^3.8.0",
- "gulp-load-plugins": "^1.0.0-rc.1",
- "gulp-postcss": "^6.1.1",
- "gulp-rename": "^1.2.2",
- "gulp-sourcemaps": "^1.9.1",
- "imports-loader": "^0.6.5",
- "istanbul-instrumenter-loader": "^0.2.0",
- "jquery-simulate": "github:jquery/jquery-simulate#v1.0.1",
- "jshint": "^2.9.4",
- "jshint-stylish": "^2.0.0",
- "json-loader": "^0.5.4",
- "karma": "^1.3.0",
- "karma-coverage": "^1.1.1",
- "karma-mocha-reporter": "^2.0.0",
- "karma-phantomjs-launcher": "^1.0.0",
- "karma-qunit": "^1.2.1",
- "karma-sourcemap-loader": "^0.3.7",
- "karma-webpack": "^1.8.1",
- "less": "^2.7.1",
- "merge-stream": "^1.0.0",
- "phantomjs-prebuilt": "^2.1.14",
- "postcss": "^5.2.7",
- "postcss-reporter": "^3.0.0",
- "qunit-assert-close": "^2.0.0",
- "qunitjs": "^2.1.0",
- "rimraf": "^2.5.2",
- "run-sequence": "^1.2.1",
- "serve-index": "^1.7.0",
- "serve-static": "^1.9.3",
- "tar-fs": "^1.13.0",
- "webpack": "^1.14.0",
- "yargs": "^6.5.0"
- },
- "author": "Andrew Hankinson",
- "contributors": [
- {
- "name": "Evan Magoni"
- },
- {
- "name": "Wendy Liu"
- },
- {
- "name": "Andrew Horwitz"
- },
- {
- "name": "Laurent Pugin"
- }
- ],
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/DDMAL/diva.js/issues"
+ "babel-core": "^6.21.0",
+ "babel-loader": "^8.0.0",
+ "babel-preset-env": "^1.7.0",
+ "babel-register": "^6.18.0",
+ "chai": "^4.1.2",
+ "clean-webpack-plugin": "^0.1.19",
+ "connect": "^3.5.0",
+ "copy-webpack-plugin": "^4.5.2",
+ "css-loader": "^1.0.0",
+ "debug": "^3.1.0",
+ "del": "^3.0.0",
+ "es6-promise": "^4.2.4",
+ "istanbul-instrumenter-loader": "^3.0.1",
+ "jshint": "^2.9.6",
+ "jshint-stylish": "^2.2.1",
+ "karma": "^3.0.0",
+ "karma-babel-preprocessor": "^7.0.0",
+ "karma-chrome-launcher": "^2.2.0",
+ "karma-coverage-istanbul-reporter": "^2.0.2",
+ "karma-mocha": "^1.3.0",
+ "karma-mocha-reporter": "^2.2.5",
+ "karma-webpack": "^3.0.0",
+ "lodash.maxby": "^4.6.0",
+ "mini-css-extract-plugin": "^0.4.2",
+ "mocha": "^5.2.0",
+ "node-sass": "^4.9.3",
+ "postcss-loader": "^3.0.0",
+ "puppeteer": "^1.7.0",
+ "sass-loader": "^7.1.0",
+ "style-loader": "^0.23.0",
+ "webpack": "^4.17.1",
+ "webpack-cli": "^3.1.0",
+ "webpack-dev-server": "^3.1.7"
},
- "homepage": "https://github.com/DDMAL/diva.js"
+ "divaOptions": {
+ "mainEntry": "diva.js",
+ "mainVarName": "Diva"
+ }
}
diff --git a/readme.md b/readme.md
deleted file mode 100644
index 39857d9c..00000000
--- a/readme.md
+++ /dev/null
@@ -1,124 +0,0 @@
->}
* @constructor
*/
-function CompositeImage(levels)
+export default class CompositeImage
{
- this._levels = levels; // Assume levels sorted high-res first
- var urlsToTiles = this._urlsToTiles = {};
-
- levels.forEach(function (level)
+ constructor(levels)
{
- level.tiles.forEach(function (tile)
+ this._levels = levels; // Assume levels sorted high-res first
+ const urlsToTiles = this._urlsToTiles = {};
+
+ levels.forEach(level =>
{
- urlsToTiles[tile.url] = {
- zoomLevel: level.zoomLevel,
- row: tile.row,
- col: tile.col
- };
+ level.tiles.forEach(tile =>
+ {
+ urlsToTiles[tile.url] = {
+ zoomLevel: level.zoomLevel,
+ row: tile.row,
+ col: tile.col
+ };
+ });
});
- });
- this.clear();
-}
-
-CompositeImage.prototype.clear = function ()
-{
- var loadedByLevel = this._loadedByLevel = {};
+ this.clear();
+ }
- this._levels.forEach(function (level)
+ clear ()
{
- loadedByLevel[level.zoomLevel] = new TileCoverageMap(level.rows, level.cols);
- });
-};
+ const loadedByLevel = this._loadedByLevel = {};
-CompositeImage.prototype.getTiles = function (baseZoomLevel)
-{
- var toRenderByLevel = [];
- var highestZoomLevel = this._levels[0].zoomLevel;
- var covered = new TileCoverageMap(this._levels[0].rows, this._levels[0].cols);
-
- var bestLevelIndex;
-
- // Default to the lowest zoom level
- if (baseZoomLevel === null)
- {
- bestLevelIndex = 0;
- }
- else
- {
- var ceilLevel = Math.ceil(baseZoomLevel);
- bestLevelIndex = findIndex(this._levels, function (level)
- {
- return level.zoomLevel <= ceilLevel;
+ this._levels.forEach(level => {
+ loadedByLevel[level.zoomLevel] = new TileCoverageMap(level.rows, level.cols);
});
}
+ getTiles (baseZoomLevel)
+ {
+ const toRenderByLevel = [];
+ const highestZoomLevel = this._levels[0].zoomLevel;
+ const covered = new TileCoverageMap(this._levels[0].rows, this._levels[0].cols);
- // The best level, followed by higher-res levels in ascending order of resolution,
- // followed by lower-res levels in descending order of resolution
- var levelsByPreference = this._levels.slice(0, bestLevelIndex + 1).reverse()
- .concat(this._levels.slice(bestLevelIndex + 1));
+ let bestLevelIndex;
+
+ // Default to the lowest zoom level
+ if (baseZoomLevel === null)
+ {
+ bestLevelIndex = 0;
+ }
+ else
+ {
+ const ceilLevel = Math.ceil(baseZoomLevel);
+ bestLevelIndex = findIndex(this._levels, level => level.zoomLevel <= ceilLevel);
+ // bestLevelIndex = this._levels.findIndex((level) => level.zoomLevel <= ceilLevel);
+ }
- levelsByPreference.forEach(function (level)
- {
- var loaded = this._loadedByLevel[level.zoomLevel];
- var additionalTiles = level.tiles.filter(function (tile)
+ // The best level, followed by higher-res levels in ascending order of resolution,
+ // followed by lower-res levels in descending order of resolution
+ const levelsByPreference = this._levels.slice(0, bestLevelIndex + 1).reverse()
+ .concat(this._levels.slice(bestLevelIndex + 1));
+
+ levelsByPreference.forEach( (level) =>
{
- return loaded.isLoaded(tile.row, tile.col);
- });
+ const loaded = this._loadedByLevel[level.zoomLevel];
- // Filter out entirely covered tiles
+ let additionalTiles = level.tiles.filter(tile => loaded.isLoaded(tile.row, tile.col));
- // FIXME: Is it better to draw all of a partially covered tile,
- // with some of it ultimately covered, or to pick out the region
- // which needs to be drawn?
- // See https://github.com/DDMAL/diva.js/issues/358
+ // Filter out entirely covered tiles
- var scaleRatio = Math.pow(2, highestZoomLevel - level.zoomLevel);
+ // FIXME: Is it better to draw all of a partially covered tile,
+ // with some of it ultimately covered, or to pick out the region
+ // which needs to be drawn?
+ // See https://github.com/DDMAL/diva.js/issues/358
+ const scaleRatio = Math.pow(2, highestZoomLevel - level.zoomLevel);
- additionalTiles = additionalTiles.filter(function (tile)
- {
- var isNeeded = false;
+ additionalTiles = additionalTiles.filter(tile => {
+ let isNeeded = false;
- var highResRow = tile.row * scaleRatio;
- var highResCol = tile.col * scaleRatio;
+ const highResRow = tile.row * scaleRatio;
+ const highResCol = tile.col * scaleRatio;
- for (var i=0; i < scaleRatio; i++)
- {
- for (var j=0; j < scaleRatio; j++)
+ for (let i=0; i < scaleRatio; i++)
{
- if (!covered.isLoaded(highResRow + i, highResCol + j))
+ for (let j=0; j < scaleRatio; j++)
{
- isNeeded = true;
- covered.set(highResRow + i, highResCol + j, true);
+ if (!covered.isLoaded(highResRow + i, highResCol + j))
+ {
+ isNeeded = true;
+ covered.set(highResRow + i, highResCol + j, true);
+ }
}
}
- }
-
- return isNeeded;
- });
- toRenderByLevel.push(additionalTiles);
- }, this);
+ return isNeeded;
+ });
- // Less-preferred tiles should come first
- toRenderByLevel.reverse();
+ toRenderByLevel.push(additionalTiles);
+ }, this);
- var tiles = [];
+ // Less-preferred tiles should come first
+ toRenderByLevel.reverse();
- toRenderByLevel.forEach(function (byLevel)
- {
- tiles.push.apply(tiles, byLevel);
- });
+ const tiles = [];
- return tiles;
-};
+ toRenderByLevel.forEach(byLevel => {
+ tiles.push.apply(tiles, byLevel);
+ });
-/**
- * Update the composite image to take into account all the URLs
- * loaded in an image cache.
- *
- * @param cache {ImageCache}
- */
-CompositeImage.prototype.updateFromCache = function (cache)
-{
- this.clear();
+ return tiles;
+ }
- this._levels.forEach(function (level)
+ /**
+ * Update the composite image to take into account all the URLs
+ * loaded in an image cache.
+ *
+ * @param cache {ImageCache}
+ */
+ updateFromCache (cache)
{
- var loaded = this._loadedByLevel[level.zoomLevel];
+ this.clear();
- level.tiles.forEach(function (tile)
+ this._levels.forEach( (level) =>
{
- if (cache.has(tile.url))
- loaded.set(tile.row, tile.col, true);
- });
- }, this);
-};
-
-CompositeImage.prototype.updateWithLoadedUrls = function (urls)
-{
- urls.forEach(function (url)
- {
- var entry = this._urlsToTiles[url];
- this._loadedByLevel[entry.zoomLevel].set(entry.row, entry.col, true);
- }, this);
-};
+ const loaded = this._loadedByLevel[level.zoomLevel];
-function TileCoverageMap(rows, cols)
-{
- this._rows = rows;
- this._cols = cols;
+ level.tiles.forEach(tile => {
+ if (cache.has(tile.url))
+ loaded.set(tile.row, tile.col, true);
+ });
+ }, this);
+ }
- this._map = fill(rows).map(function ()
+ updateWithLoadedUrls (urls)
{
- return fill(cols, false);
- });
-}
-
-TileCoverageMap.prototype.isLoaded = function (row, col)
-{
- // Return true for out of bounds tiles because they
- // don't need to load. (Unfortunately this will also
- // mask logical errors.)
- if (row >= this._rows || col >= this._cols)
- return true;
-
- return this._map[row][col];
-};
-
-TileCoverageMap.prototype.set = function (row, col, value)
-{
- this._map[row][col] = value;
-};
-
-function fill(count, value)
-{
- var arr = new Array(count);
-
- for (var i=0; i < count; i++)
- arr[i] = value;
-
- return arr;
+ urls.forEach( (url) =>
+ {
+ const entry = this._urlsToTiles[url];
+ this._loadedByLevel[entry.zoomLevel].set(entry.row, entry.col, true);
+ }, this);
+ }
}
-function findIndex(array, predicate)
+// function fill (count, value)
+// {
+// const arr = new Array(count);
+//
+// for (let i=0; i < count; i++)
+// arr[i] = value;
+//
+// return arr;
+// }
+
+function findIndex (array, predicate)
{
- var length = array.length;
- for (var i = 0; i < length; i++)
+ const length = array.length;
+ for (let i = 0; i < length; i++)
{
if (predicate(array[i], i))
return i;
diff --git a/source/js/diva-global.js b/source/js/diva-global.js
index ceaf5191..3b188833 100644
--- a/source/js/diva-global.js
+++ b/source/js/diva-global.js
@@ -1,15 +1,13 @@
-var $ = require('jquery');
+import { Events } from './utils/events';
+// import PluginRegistry from './plugin-registry';
-var Events = require('./utils/events');
-var PluginRegistry = require('./plugin-registry');
+const diva = {
+ Events: Events,
-var diva = module.exports = {
- Events: new Events(),
-
- registerPlugin: function (plugin)
- {
- PluginRegistry.register(plugin);
- },
+ // registerPlugin: function (plugin)
+ // {
+ // PluginRegistry.register(plugin);
+ // },
/**
* Create a new Diva instance at the given element
@@ -18,16 +16,16 @@ var diva = module.exports = {
* @param options {Object}
* @returns {Diva}
*/
- create: function (element, options)
- {
- if (diva.find(element))
- throw new Error('Diva is already initialized on ' + reprElem(element));
-
- var $elem = $(element);
- $elem.diva(options);
-
- return $elem.data('diva');
- },
+ // create: function (element, options)
+ // {
+ // if (diva.find(element))
+ // throw new Error('Diva is already initialized on ' + reprElem(element));
+ //
+ // const $elem = $(element);
+ // $elem.diva(options);
+ //
+ // return $elem.data('diva');
+ // },
/**
* Return the Diva instance attached to the
@@ -36,16 +34,18 @@ var diva = module.exports = {
* @param element
* @returns {Diva|null}
*/
- find: function (element)
- {
- return $(element).data('diva') || null;
- }
+ // find: function (element)
+ // {
+ // return $(element).data('diva') || null;
+ // }
};
-function reprElem(elem)
-{
- var id = elem.id ? '#' + elem.id : elem.id;
- var classes = elem.className ? '.' + elem.className.split(/\s+/g).join('.') : '';
+export default diva;
- return (id ? id : elem.tagName.toLowerCase()) + classes;
-}
+// function reprElem(elem)
+// {
+// const id = elem.id ? '#' + elem.id : elem.id;
+// const classes = elem.className ? '.' + elem.className.split(/\s+/g).join('.') : '';
+//
+// return (id ? id : elem.tagName.toLowerCase()) + classes;
+// }
diff --git a/source/js/diva.js b/source/js/diva.js
index ddf4d0f2..cd13999f 100644
--- a/source/js/diva.js
+++ b/source/js/diva.js
@@ -1,54 +1,59 @@
-/*
-Copyright (C) 2011-2016 by Wendy Liu, Evan Magoni, Andrew Hankinson, Andrew Horwitz, Laurent Pugin
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-*/
-require('array.prototype.fill');
-
-var jQuery = require('jquery');
-
-var elt = require('./utils/elt');
-var HashParams = require('./utils/hash-params');
-
-var ActiveDivaController = require('./active-diva-controller');
-var diva = require('./diva-global');
-var ImageManifest = require('./image-manifest');
-var createToolbar = require('./toolbar');
-var ViewerCore = require('./viewer-core');
-
-// Start the active Diva tracker
-var activeDiva = new ActiveDivaController(); // jshint ignore: line
-
-module.exports = diva;
-
-// this pattern was taken from http://www.virgentech.com/blog/2009/10/building-object-oriented-jquery-plugin.html
-(function ($)
+import './utils/vanilla.kinetic';
+import './utils/dragscroll';
+import { elt } from "./utils/elt";
+import {
+ DivaParentElementNotFoundException,
+ NotAnIIIFManifestException,
+ ObjectDataNotSuppliedException
+} from "./exceptions";
+import diva from "./diva-global";
+import ViewerCore from "./viewer-core";
+import ImageManifest from "./image-manifest";
+import Toolbar from "./toolbar";
+import HashParams from "./utils/hash-params";
+
+
+/**
+ * The top-level class for Diva objects. This is instantiated by passing in an HTML element
+ * ID or HTML Element node and an object containing a list of options, of which the 'objectData'
+ * option is required and which must point to a IIIF Presentation API Manifest:
+ *
+ * var diva = new Diva('element-id', {
+ * objectData: "http://example.com/iiif-manifest.json"
+ * });
+ *
+ * This class also serves as the entry point for the Events system, in which applications can subscribe
+ * to notifications sent from Diva instances:
+ *
+ * Diva.Events.subscribe('VisiblePageDidChange', function () { console.log("Visible Page Changed"); });
+ *
+ *
+ *
+ **/
+class Diva
{
- var Diva = function (element, options)
+ constructor (element, options)
{
- // Global instance variables (set way down in `init`)
- var settings, viewerState, divaState;
- var self = this;
+ /*
+ * If a string is passed in, convert that to an element.
+ * */
+ if (!(element instanceof HTMLElement))
+ {
+ this.element = document.getElementById(element);
+
+ if (this.element === null)
+ {
+ throw new DivaParentElementNotFoundException();
+ }
+ }
+
+ if (!options.objectData)
+ {
+ throw new ObjectDataNotSuppliedException('You must supply either a URL or a literal object to the `objectData` key.');
+ }
- // These are elements that can be overridden upon instantiation
- // See https://github.com/DDMAL/diva.js/wiki/Settings for more details
- options = $.extend({
+ this.options = Object.assign({
+ acceptHeader: "application/json", // The header to send off to the server in content negotiation
adaptivePadding: 0.05, // The ratio of padding to the page dimension
arrowScrollAmount: 40, // The amount (in pixels) to scroll by when using arrow keys
blockMobileMove: false, // Prevent moving or scrolling the page on mobile devices
@@ -72,11 +77,9 @@ module.exports = diva;
fixedHeightGrid: true, // So each page in grid view has the same height (only widths differ)
goDirectlyTo: 0, // Default initial page to show (0-indexed)
hashParamSuffix: null, // Used when there are multiple document viewers on a page
- iipServerURL: '', // The URL to the IIPImage installation, including the `?FIF=` - *REQUIRED*, unless using IIIF
inFullscreen: false, // Set to true to load fullscreen mode initially
inBookLayout: false, // Set to true to view the document with facing pages in document mode
inGrid: false, // Set to true to load grid view initially
- imageDir: '', // Image directory, either absolute path or relative to IIP's FILESYSTEM_PREFIX - *REQUIRED*, unless using IIIF
maxPagesPerRow: 8, // Maximum number of pages per row in grid view
maxZoomLevel: -1, // Optional; defaults to the max zoom returned in the JSON response
minPagesPerRow: 2, // Minimum pages per row in grid view. Recommended default.
@@ -96,1080 +99,1439 @@ module.exports = diva;
zoomLevel: 2 // The initial zoom level (used to store the current zoom level)
}, options);
- // Returns the page index associated with the given filename; must called after setting settings.manifest
- var getPageIndex = function (filename)
- {
- return getPageIndexForManifest(settings.manifest, filename);
- };
-
- var NotAnIIIFManifestException = function (message)
- {
- return message;
- };
-
- var getPageIndexForManifest = function (manifest, filename)
- {
- var i,
- np = manifest.pages.length;
-
- for (i = 0; i < np; i++)
- {
- if (!manifest.pages[i])
- {
- return -1;
- }
-
- if (manifest.pages[i].f === filename)
- {
- return i;
- }
- }
-
- return -1;
- };
-
- // Check if a page index is valid
- var isPageValid = function (pageIndex)
- {
- return settings.manifest.isPageValid(pageIndex, settings.showNonPagedPages);
- };
-
- var reloadViewer = function (newOptions)
- {
- return divaState.viewerCore.reload(newOptions);
- };
-
- // Called when the change view icon is clicked
- var changeView = function (destinationView)
- {
- switch (destinationView)
- {
- case 'document':
- return reloadViewer({
- inGrid: false,
- inBookLayout: false
- });
-
- case 'book':
- return reloadViewer({
- inGrid: false,
- inBookLayout: true
- });
-
- case 'grid':
- return reloadViewer({
- inGrid: true
- });
-
- default:
- return false;
- }
- };
-
- //toggles between orientations
- var toggleOrientation = function ()
- {
- var verticallyOriented = !settings.verticallyOriented;
-
- //if in grid, switch out of grid
- reloadViewer({
- inGrid: false,
- verticallyOriented: verticallyOriented,
- goDirectlyTo: settings.currentPageIndex,
- verticalOffset: divaState.viewerCore.getYOffset(),
- horizontalOffset: divaState.viewerCore.getXOffset()
- });
-
- return verticallyOriented;
- };
-
- // Called when the fullscreen icon is clicked
- var toggleFullscreen = function ()
- {
- reloadViewer({
- inFullscreen: !settings.inFullscreen
- });
- };
-
- var getState = function ()
- {
- var view;
-
- if (settings.inGrid)
- {
- view = 'g';
- }
- else if (settings.inBookLayout)
- {
- view = 'b';
- }
- else
- {
- view = 'd';
- }
-
- var layout = divaState.viewerCore.getCurrentLayout();
- var pageOffset = layout.getPageToViewportCenterOffset(settings.currentPageIndex, viewerState.viewport);
-
- var state = {
- 'f': settings.inFullscreen,
- 'v': view,
- 'z': settings.zoomLevel,
- 'n': settings.pagesPerRow,
- 'i': settings.enableFilename ? settings.manifest.pages[settings.currentPageIndex].f : false,
- 'p': settings.enableFilename ? false : settings.currentPageIndex + 1,
- 'y': pageOffset ? pageOffset.y : false,
- 'x': pageOffset ? pageOffset.x : false
- };
-
- return state;
- };
-
- var getLoadOptionsForState = function (state, manifest)
- {
- manifest = manifest || settings.manifest;
-
- var options = ('v' in state) ? getViewState(state.v) : {};
-
- if ('f' in state)
- options.inFullscreen = state.f;
-
- if ('z' in state)
- options.zoomLevel = state.z;
-
- if ('n' in state)
- options.pagesPerRow = state.n;
-
- // Only change specify the page if state.i or state.p is valid
- var pageIndex = getPageIndexForManifest(manifest, state.i);
-
- if (!(pageIndex >= 0 && pageIndex < manifest.pages.length))
- {
- pageIndex = state.p - 1;
-
- // Possibly NaN
- if (!(pageIndex >= 0 && pageIndex < manifest.pages.length))
- pageIndex = null;
- }
-
- if (pageIndex !== null)
- {
- var horizontalOffset = parseInt(state.x, 10);
- var verticalOffset = parseInt(state.y, 10);
+ // In order to fill the height, use a wrapper div displayed using a flexbox layout
+ const wrapperElement = elt('div', {
+ class: `diva-wrapper${this.options.fillParentHeight ? " diva-wrapper-flexbox" : ""}`
+ });
- options.goDirectlyTo = pageIndex;
- options.horizontalOffset = horizontalOffset;
- options.verticalOffset = verticalOffset;
- }
+ this.element.appendChild(wrapperElement);
- return options;
- };
+ this.options.toolbarParentObject = this.options.toolbarParentObject || wrapperElement;
- var getURLHash = function ()
- {
- var hashParams = getState();
- var hashStringBuilder = [];
- var param;
+ const viewerCore = new ViewerCore(wrapperElement, this.options, this);
- for (param in hashParams)
- {
- if (hashParams[param] !== false)
- hashStringBuilder.push(param + settings.hashParamSuffix + '=' + encodeURIComponent(hashParams[param]));
- }
+ this.viewerState = viewerCore.getInternalState();
+ this.settings = viewerCore.getSettings();
+ this.toolbar = new Toolbar(this);
- return hashStringBuilder.join('&');
- };
+ wrapperElement.id = this.settings.ID + 'wrapper';
- // Returns the URL to the current state of the document viewer (so it should be an exact replica)
- var getCurrentURL = function ()
- {
- return location.protocol + '//' + location.host + location.pathname + location.search + '#' + getURLHash();
+ this.divaState = {
+ viewerCore: viewerCore,
+ toolbar: this.settings.enableToolbar ? this.toolbar : null
};
- var getViewState = function(view)
+ // only render the toolbar after the object has been loaded
+ let handle = diva.Events.subscribe('ObjectDidLoad', () =>
{
- switch (view)
- {
- case 'd':
- return {
- inGrid: false,
- inBookLayout: false
- };
-
- case 'b':
- return {
- inGrid: false,
- inBookLayout: true
- };
-
- case 'g':
- return {
- inGrid: true,
- inBookLayout: false
- };
-
- default:
- return null;
- }
- };
+ this.toolbar.render();
+ diva.Events.unsubscribe(handle);
+ });
+ this.hashState = this._getHashParamState();
- var showError = function(message)
- {
- divaState.viewerCore.showError(message);
- };
+ this._loadOrFetchObjectData();
+ }
- var ajaxError = function(jqxhr, status, error)
+ /**
+ * @private
+ **/
+ _loadOrFetchObjectData ()
+ {
+ if (typeof this.settings.objectData === 'object')
{
- // Show a basic error message within the document viewer pane
-
- var errorMessage = ['Invalid objectData setting. Error code: ' + jqxhr.status + ' ' + error];
-
- // Detect and handle CORS errors
- var dataHasAbsolutePath = settings.objectData.lastIndexOf('http', 0) === 0;
-
- if (dataHasAbsolutePath && error === '')
+ // Defer execution until initialization has completed
+ setTimeout(() =>
{
- var jsonHost = settings.objectData.replace(/https?:\/\//i, "").split(/[/?#]/)[0];
-
- if (location.hostname !== jsonHost)
- {
- errorMessage.push(
- elt('p', 'Attempted to access cross-origin data without CORS.'),
- elt('p',
- 'You may need to update your server configuration to support CORS. For help, see the ',
- elt('a', {
- href: 'https://github.com/DDMAL/diva.js/wiki/Installation#a-note-about-cross-site-requests',
- target: '_blank'
- }, 'cross-site request documentation.')
- )
- );
+ this._loadObjectData(this.settings.objectData, this.hashState);
+ }, 0);
+ }
+ else
+ {
+ const pendingManifestRequest = fetch(this.settings.objectData, {
+ headers: {
+ "Accept": this.settings.acceptHeader
}
- }
-
- showError(errorMessage);
- };
-
- var loadObjectData = function (responseData, hashState)
- {
- var manifest;
-
- // TODO improve IIIF detection method
- if (!responseData.hasOwnProperty('@context') && (responseData['@context'].indexOf('iiif') === -1 || responseData['@context'].indexOf('shared-canvas') === -1))
+ }).then( (response) =>
{
- throw new NotAnIIIFManifestException('This does not appear to be a IIIF Manifest.');
- }
-
- // trigger ManifestDidLoad event
- // FIXME: Why is this triggered before the manifest is parsed? See https://github.com/DDMAL/diva.js/issues/357
- diva.Events.publish('ManifestDidLoad', [responseData], self);
-
- manifest = ImageManifest.fromIIIF(responseData);
- var loadOptions = hashState ? getLoadOptionsForState(hashState, manifest) : {};
-
- divaState.viewerCore.setManifest(manifest, loadOptions);
- };
+ if (!response.ok)
+ {
+ this._ajaxError(response);
- /** Parse the hash parameters into the format used by getState and setState */
- var getHashParamState = function ()
- {
- var state = {};
+ let error = new Error(response.statusText);
+ error.response = response;
+ throw error;
+ }
+ return response.json();
- ['f', 'v', 'z', 'n', 'i', 'p', 'y', 'x'].forEach(function (param)
+ }).then( (data) =>
{
- var value = HashParams.get(param + settings.hashParamSuffix);
-
- // `false` is returned if the value is missing
- if (value !== false)
- state[param] = value;
+ this._loadObjectData(data, this.hashState);
});
- // Do some awkward special-casing, since this format is kind of weird.
+ // Store the pending request so that it can be cancelled in the event that Diva needs to be destroyed
+ this.divaState.viewerCore.setPendingManifestRequest(pendingManifestRequest);
+ }
+ }
- // For inFullscreen (f), true and false strings should be interpreted
- // as booleans.
- if (state.f === 'true')
- state.f = true;
- else if (state.f === 'false')
- state.f = false;
-
- // Convert numerical values to integers, if provided
- ['z', 'n', 'p', 'x', 'y'].forEach(function (param)
- {
- if (param in state)
- state[param] = parseInt(state[param], 10);
- });
+ /**
+ * @private
+ **/
+ _showError (message)
+ {
+ this.divaState.viewerCore.showError(message);
+ }
- return state;
- };
+ /**
+ * @private
+ * */
+ _ajaxError (response)
+ {
+ // Show a basic error message within the document viewer pane
+ const errorMessage = ['Invalid objectData setting. Error code: ' + response.status + ' ' + response.statusText];
- var checkLoaded = function()
- {
- if (!viewerState.loaded)
- {
- console.warn("The viewer is not completely initialized. This is likely because it is still downloading data. To fix this, only call this function if the isReady() method returns true.");
- return false;
- }
- return true;
- };
+ // Detect and handle CORS errors
+ const dataHasAbsolutePath = this.settings.objectData.lastIndexOf('http', 0) === 0;
- var init = function ()
+ if (dataHasAbsolutePath)
{
- // In order to fill the height, use a wrapper div displayed using a flexbox layout
- var wrapperElement = elt('div', {
- class: "diva-wrapper" + (options.fillParentHeight ? " diva-wrapper-flexbox" : "")
- });
- element.appendChild(wrapperElement);
- options.toolbarParentObject = options.toolbarParentObject || $(wrapperElement);
-
- var viewerCore = new ViewerCore(wrapperElement, options, self);
+ const jsonHost = this.settings.objectData.replace(/https?:\/\//i, "").split(/[/?#]/)[0];
- viewerState = viewerCore.getInternalState();
- settings = viewerCore.getSettings();
-
- // Add the ID to the wrapper element now that the ID has been generated by the viewer core
- wrapperElement.id = settings.ID + 'wrapper';
-
- divaState = {
- viewerCore: viewerCore,
- toolbar: settings.enableToolbar ? createToolbar(self) : null
- };
-
- var hashState = getHashParamState();
-
- if (typeof settings.objectData === 'object')
- {
- // Defer execution until initialization has completed
- setTimeout(function ()
- {
- loadObjectData(settings.objectData, hashState);
- }, 0);
- }
- else
+ if (window.location.hostname !== jsonHost)
{
- var pendingManifestRequest = $.ajax({
- url: settings.objectData,
- cache: true,
- dataType: 'json',
- error: ajaxError,
- success: function (responseData)
- {
- loadObjectData(responseData, hashState);
- }
- });
-
- // Store the pending request so that it can be cancelled in the event that Diva needs to be destroyed
- viewerCore.setPendingManifestRequest(pendingManifestRequest);
+ errorMessage.push(
+ elt('p', 'Attempted to access cross-origin data without CORS.'),
+ elt('p',
+ 'You may need to update your server configuration to support CORS. For help, see the ',
+ elt('a', {
+ href: 'https://github.com/DDMAL/diva.js/wiki/Installation#a-note-about-cross-site-requests',
+ target: '_blank'
+ }, 'cross-site request documentation.')
+ )
+ );
}
- };
+ }
- /* PUBLIC FUNCTIONS
- ===============================================
- */
+ this._showError(errorMessage);
+ }
- // Returns the title of the document, based on the directory name
- this.getItemTitle = function ()
- {
- return settings.manifest.itemTitle;
- };
-
- // Go to a particular page by its page number (with indexing starting at 1)
- //xAnchor may either be "left", "right", or default "center"; the (xAnchor) side of the page will be anchored to the (xAnchor) side of the diva-outer element
- //yAnchor may either be "top", "bottom", or default "center"; same process as xAnchor.
- // returns True if the page number passed is valid; false if it is not.
- this.gotoPageByNumber = function (pageNumber, xAnchor, yAnchor)
- {
- console.warn("This method is deprecated. Consider using gotoPageByIndex(pageIndex, xAnchor, yAnchor) instead.");
- var pageIndex = parseInt(pageNumber, 10) - 1;
- return this.gotoPageByIndex(pageIndex, xAnchor, yAnchor);
- };
+ /**
+ * @private
+ **/
+ _loadObjectData (responseData, hashState)
+ {
+ let manifest;
- // Go to a particular page (with indexing starting at 0)
- //xAnchor may either be "left", "right", or default "center"; the (xAnchor) side of the page will be anchored to the (xAnchor) side of the diva-outer element
- //yAnchor may either be "top", "bottom", or default "center"; same process as xAnchor.
- // returns True if the page index is valid; false if it is not.
- this.gotoPageByIndex = function (pageIndex, xAnchor, yAnchor)
+ // TODO improve IIIF detection method
+ if (!responseData.hasOwnProperty('@context') && (responseData['@context'].indexOf('iiif') === -1 || responseData['@context'].indexOf('shared-canvas') === -1))
{
- pageIndex = parseInt(pageIndex, 10);
-
- if (isPageValid(pageIndex))
- {
- var xOffset = divaState.viewerCore.getXOffset(pageIndex, xAnchor);
- var yOffset = divaState.viewerCore.getYOffset(pageIndex, yAnchor);
+ throw new NotAnIIIFManifestException('This does not appear to be a IIIF Manifest.');
+ }
- viewerState.renderer.goto(pageIndex, yOffset, xOffset);
- return true;
- }
-
- return false;
- };
+ // trigger ManifestDidLoad event
+ diva.Events.publish('ManifestDidLoad', [responseData], this);
+ manifest = ImageManifest.fromIIIF(responseData);
+ const loadOptions = hashState ? this._getLoadOptionsForState(hashState, manifest) : {};
- this.getNumberOfPages = function ()
- {
- if (!checkLoaded())
- return false;
+ this.divaState.viewerCore.setManifest(manifest, loadOptions);
+ }
- return settings.numPages;
- };
+ /**
+ * Parse the hash parameters into the format used by getState and setState
+ *
+ * @private
+ **/
+ _getHashParamState ()
+ {
+ const state = {};
- // Get page dimensions in the current view and zoom level
- this.getPageDimensions = function (pageIndex)
+ ['f', 'v', 'z', 'n', 'i', 'p', 'y', 'x'].forEach( (param) =>
{
- if (!checkLoaded())
- return null;
-
- return divaState.viewerCore.getCurrentLayout().getPageDimensions(pageIndex);
- };
+ const value = HashParams.get(param + this.settings.hashParamSuffix);
- // Returns the dimensions of a given page index at a given zoom level
- this.getPageDimensionsAtZoomLevel = function (pageIdx, zoomLevel)
- {
- if (!checkLoaded())
- return false;
+ // `false` is returned if the value is missing
+ if (value !== false)
+ state[param] = value;
+ });
- if (zoomLevel > settings.maxZoomLevel)
- zoomLevel = settings.maxZoomLevel;
+ // Do some awkward special-casing, since this format is kind of weird.
- var pg = settings.manifest.pages[parseInt(pageIdx, 10)];
- var pgAtZoom = pg.d[parseInt(zoomLevel, 10)];
- return {'width': pgAtZoom.w, 'height': pgAtZoom.h};
- };
+ // For inFullscreen (f), true and false strings should be interpreted
+ // as booleans.
+ if (state.f === 'true')
+ state.f = true;
+ else if (state.f === 'false')
+ state.f = false;
- // Returns the dimensions of a given page at the current zoom level
- // The current page index will be used if no pageIndex is specified
- // Also works in Grid view
- this.getPageDimensionsAtCurrentZoomLevel = function(pageIndex)
+ // Convert numerical values to integers, if provided
+ ['z', 'n', 'p', 'x', 'y'].forEach( (param) =>
{
- pageIndex = isPageValid(pageIndex) ? pageIndex : settings.currentPageIndex;
-
- if (!isPageValid(pageIndex))
- throw new Error('Invalid Page Index');
+ if (param in state)
+ state[param] = parseInt(state[param], 10);
+ });
- return divaState.viewerCore.getCurrentLayout().getPageDimensions(pageIndex);
- };
+ return state;
+ }
- // Returns the dimensions of the current page at the current zoom level
- // Also works in Grid view
- this.getCurrentPageDimensionsAtCurrentZoomLevel = function ()
- {
- return this.getPageDimensionsAtCurrentZoomLevel(settings.currentPageIndex);
- };
+ /**
+ * @private
+ **/
+ _getLoadOptionsForState (state, manifest)
+ {
+ manifest = manifest || this.settings.manifest;
- this.isReady = function ()
- {
- return viewerState.loaded;
- };
+ const options = ('v' in state) ? this._getViewState(state.v) : {};
- this.getCurrentPageIndex = function ()
- {
- return settings.currentPageIndex;
- };
+ if ('f' in state)
+ options.inFullscreen = state.f;
- this.getCurrentPageFilename = function ()
- {
- return settings.manifest.pages[settings.currentPageIndex].f;
- };
+ if ('z' in state)
+ options.zoomLevel = state.z;
- this.getCurrentCanvas = function (settings)
- {
- return settings.manifest.pages[settings.currentPageIndex].canvas;
- };
+ if ('n' in state)
+ options.pagesPerRow = state.n;
- this.getCurrentPageNumber = function ()
- {
- console.warn("This method is deprecated. Consider using getCurrentPageIndex() instead.");
- return settings.currentPageIndex + 1;
- };
+ // Only change specify the page if state.i or state.p is valid
+ let pageIndex = this._getPageIndexForManifest(manifest, state.i);
- // Returns an array of all filenames in the document
- this.getFilenames = function ()
+ if (!(pageIndex >= 0 && pageIndex < manifest.pages.length))
{
- var filenames = [];
-
- for (var i = 0; i < settings.numPages; i++)
- {
- filenames[i] = settings.manifest.pages[i].f;
- }
-
- return filenames;
- };
+ pageIndex = state.p - 1;
- // Returns the current zoom level
- this.getZoomLevel = function ()
- {
- return settings.zoomLevel;
- };
+ // Possibly NaN
+ if (!(pageIndex >= 0 && pageIndex < manifest.pages.length))
+ pageIndex = null;
+ }
- // gets the maximum zoom level for the entire document
- this.getMaxZoomLevel = function ()
+ if (pageIndex !== null)
{
- return settings.maxZoomLevel;
- };
+ const horizontalOffset = parseInt(state.x, 10);
+ const verticalOffset = parseInt(state.y, 10);
- // gets the max zoom level for a given page
- this.getMaxZoomLevelForPage = function (pageIdx)
- {
- if (!checkLoaded)
- return false;
+ options.goDirectlyTo = pageIndex;
+ options.horizontalOffset = horizontalOffset;
+ options.verticalOffset = verticalOffset;
+ }
- return settings.manifest.pages[pageIdx].m;
- };
+ return options;
+ }
- this.getMinZoomLevel = function ()
- {
- return settings.minZoomLevel;
- };
+ /**
+ * @private
+ * */
+ _getViewState (view)
+ {
+ switch (view)
+ {
+ case 'd':
+ return {
+ inGrid: false,
+ inBookLayout: false
+ };
+
+ case 'b':
+ return {
+ inGrid: false,
+ inBookLayout: true
+ };
+
+ case 'g':
+ return {
+ inGrid: true,
+ inBookLayout: false
+ };
+
+ default:
+ return {};
+ }
+ }
+
+ /**
+ * @private
+ * */
+ _getPageIndexForManifest (manifest, filename)
+ {
+ let i;
+ const np = manifest.pages.length;
- // Use the provided zoom level (will check for validity first)
- // Returns false if the zoom level is invalid, true otherwise
- this.setZoomLevel = function (zoomLevel)
+ for (i = 0; i < np; i++)
{
- if (settings.inGrid)
+ if (manifest.pages[i].f === filename)
{
- reloadViewer({
- inGrid: false
- });
+ return i;
}
+ }
- return divaState.viewerCore.zoom(zoomLevel);
- };
-
- this.getGridPagesPerRow = function ()
- {
- // TODO(wabain): Add test case
- return this.pagesPerRow;
- };
-
- this.setGridPagesPerRow = function (newValue)
- {
- // TODO(wabain): Add test case
- if (!divaState.viewerCore.isValidOption('pagesPerRow', newValue))
- return false;
-
- return reloadViewer({
- inGrid: true,
- pagesPerRow: newValue
- });
- };
-
- // Zoom in. Will return false if it's at the maximum zoom
- this.zoomIn = function ()
- {
- return this.setZoomLevel(settings.zoomLevel + 1);
- };
-
- // Zoom out. Will return false if it's at the minimum zoom
- this.zoomOut = function ()
- {
- return this.setZoomLevel(settings.zoomLevel - 1);
- };
-
- // Check if something (e.g. a highlight box on a particular page) is visible
- this.isRegionInViewport = function (pageIndex, leftOffset, topOffset, width, height)
- {
- var layout = divaState.viewerCore.getCurrentLayout();
-
- if (!layout)
- return false;
-
- var offset = layout.getPageOffset(pageIndex);
+ return -1;
+ }
- var top = offset.top + topOffset;
- var left = offset.left + leftOffset;
-
- return viewerState.viewport.intersectsRegion({
- top: top,
- bottom: top + height,
- left: left,
- right: left + width
- });
- };
+ /**
+ * @private
+ * */
+ _getState ()
+ {
+ let view;
- //Public wrapper for isPageVisible
- //Determines if a page is currently in the viewport
- this.isPageInViewport = function (pageIndex)
+ if (this.settings.inGrid)
{
- return viewerState.renderer.isPageVisible(pageIndex);
- };
-
- //Public wrapper for isPageLoaded
- //Determines if a page is currently in the DOM
- this.isPageLoaded = function (pageIndex)
+ view = 'g';
+ }
+ else if (this.settings.inBookLayout)
{
- console.warn("This method is deprecated. Consider using isPageInViewport(pageIndex) instead.");
- return this.isPageInViewport(pageIndex);
- };
-
- // Toggle fullscreen mode
- this.toggleFullscreenMode = function ()
+ view = 'b';
+ }
+ else
{
- toggleFullscreen();
- };
+ view = 'd';
+ }
- // Show/Hide non-paged pages
- this.toggleNonPagedPagesVisibility = function ()
- {
- reloadViewer({ showNonPagedPages: !settings.showNonPagedPages });
- };
+ const layout = this.divaState.viewerCore.getCurrentLayout();
+ const pageOffset = layout.getPageToViewportCenterOffset(this.settings.activePageIndex, this.viewerState.viewport);
- // Show non-paged pages
- this.showNonPagedPages = function ()
- {
- reloadViewer({ showNonPagedPages: true });
+ return {
+ 'f': this.settings.inFullscreen,
+ 'v': view,
+ 'z': this.settings.zoomLevel,
+ 'n': this.settings.pagesPerRow,
+ 'i': this.settings.enableFilename ? this.settings.manifest.pages[this.settings.activePageIndex].f : false,
+ 'p': this.settings.enableFilename ? false : this.settings.activePageIndex + 1,
+ 'y': pageOffset ? pageOffset.y : false,
+ 'x': pageOffset ? pageOffset.x : false
};
+ }
- // Hide non-paged pages
- this.hideNonPagedPages = function ()
- {
- reloadViewer({ showNonPagedPages: false });
- };
+ /**
+ * @private
+ **/
+ _getURLHash ()
+ {
+ const hashParams = this._getState();
+ const hashStringBuilder = [];
+ let param;
- // Close toolbar popups
- this.closePopups = function ()
+ for (param in hashParams)
{
- divaState.toolbar.closePopups();
- };
+ if (hashParams[param] !== false)
+ hashStringBuilder.push(param + this.settings.hashParamSuffix + '=' + encodeURIComponent(hashParams[param]));
+ }
- // Enter fullscreen mode if currently not in fullscreen mode
- // Returns false if in fullscreen mode initially, true otherwise
- // This function will work even if enableFullscreen is set to false
- this.enterFullscreenMode = function ()
- {
- if (!settings.inFullscreen)
- {
- toggleFullscreen();
- return true;
- }
+ return hashStringBuilder.join('&');
+ }
- return false;
- };
+ /**
+ * Returns the page index associated with the given filename; must called after setting settings.manifest
+ *
+ * @private
+ **/
+ _getPageIndex (filename)
+ {
+ return this._getPageIndexForManifest(this.settings.manifest, filename);
+ }
- // Leave fullscreen mode if currently in fullscreen mode
- // Returns true if in fullscreen mode intitially, false otherwise
- this.leaveFullscreenMode = function ()
+ /**
+ * @private
+ * */
+ _checkLoaded ()
+ {
+ if (!this.viewerState.loaded)
{
- if (settings.inFullscreen)
- {
- toggleFullscreen();
- return true;
- }
-
+ console.warn("The viewer is not completely initialized. This is likely because it is still downloading data. To fix this, only call this function if the isReady() method returns true.");
return false;
- };
+ }
+ return true;
+ }
+
+ /**
+ * Called when the fullscreen icon is clicked
+ *
+ * @private
+ **/
+ _toggleFullscreen ()
+ {
+ this._reloadViewer({
+ inFullscreen: !this.settings.inFullscreen
+ });
- this.isInFullscreen = function ()
- {
- return settings.inFullscreen;
- };
+ // handle toolbar opacity in fullscreen
+ let t;
+ let hover = false;
+ let tools = document.getElementById(this.settings.selector + 'tools');
+ const TIMEOUT = 2000;
- // Change views. Takes 'document', 'book', or 'grid' to specify which view to switch into
- this.changeView = function(destinationView)
+ if (this.settings.inFullscreen)
{
- return changeView(destinationView);
- };
+ tools.classList.add("diva-fullscreen-tools");
- // Enter grid view if currently not in grid view
- // Returns false if in grid view initially, true otherwise
- this.enterGridView = function ()
+ document.addEventListener('mousemove', toggleOpacity.bind(this));
+ document.getElementsByClassName('diva-viewport')[0].addEventListener('scroll', toggleOpacity.bind(this));
+ tools.addEventListener('mouseenter', function () {
+ hover = true;
+ });
+ tools.addEventListener('mouseleave', function () {
+ hover = false;
+ });
+ }
+ else
{
- if (!settings.inGrid)
- {
- changeView('grid');
- return true;
- }
+ tools.classList.remove("diva-fullscreen-tools");
+ }
- return false;
- };
-
- // Leave grid view if currently in grid view
- // Returns true if in grid view initially, false otherwise
- this.leaveGridView = function ()
+ function toggleOpacity ()
{
- if (settings.inGrid)
- {
- reloadViewer({ inGrid: false });
- return true;
+ tools.style.opacity = 1;
+ clearTimeout(t);
+ if (!hover && this.settings.inFullscreen) {
+ t = setTimeout(function ()
+ {
+ tools.style.opacity = 0;
+ }, TIMEOUT);
}
+ }
+ }
+
+ /**
+ * Toggles between orientations
+ *
+ * @private
+ * */
+ _togglePageLayoutOrientation ()
+ {
+ const verticallyOriented = !this.settings.verticallyOriented;
+
+ //if in grid, switch out of grid
+ this._reloadViewer({
+ inGrid: false,
+ verticallyOriented: verticallyOriented,
+ goDirectlyTo: this.settings.activePageIndex,
+ verticalOffset: this.divaState.viewerCore.getYOffset(),
+ horizontalOffset: this.divaState.viewerCore.getXOffset()
+ });
- return false;
- };
-
- // Jump to a page based on its filename
- // Returns true if successful and false if the filename is invalid
- this.gotoPageByName = function (filename, xAnchor, yAnchor)
- {
- var pageIndex = getPageIndex(filename);
- return this.gotoPageByIndex(pageIndex, xAnchor, yAnchor);
- };
+ return verticallyOriented;
+ }
- this.gotoPageByLabel = function (label, xAnchor, yAnchor)
+ /**
+ * Called when the change view icon is clicked
+ *
+ * @private
+ **/
+ _changeView (destinationView)
+ {
+ switch (destinationView)
{
- var pages = settings.manifest.pages;
- for (var i = 0, len = pages.length; i < len; i++)
- {
- if (pages[i].l.toLowerCase().indexOf(label.toLowerCase()) > -1)
- return this.gotoPageByIndex(i, xAnchor, yAnchor);
- }
-
- // If no label was found, try to parse a page number
- var pageIndex = parseInt(label, 10) - 1;
- return this.gotoPageByIndex(pageIndex, xAnchor, yAnchor);
- };
+ case 'document':
+ return this._reloadViewer({
+ inGrid: false,
+ inBookLayout: false
+ });
- // Get the page index (0-based) corresponding to a given filename
- // If the page index doesn't exist, this will return -1
- this.getPageIndex = function (filename)
- {
- return getPageIndex(filename);
- };
+ case 'book':
+ return this._reloadViewer({
+ inGrid: false,
+ inBookLayout: true
+ });
- // Get the current URL (exposes the private method)
- this.getCurrentURL = function ()
- {
- return getCurrentURL();
- };
+ case 'grid':
+ return this._reloadViewer({
+ inGrid: true
+ });
- // Check if a page index is within the range of the document
- this.isPageIndexValid = function (pageIndex)
- {
- return isPageValid(pageIndex);
- };
+ default:
+ return false;
+ }
+ }
+
+ /**
+ * @private
+ *
+ * @param {Number} pageIndex - 0-based page index.
+ * @param {Number} xAnchor - x coordinate to jump to on resulting page.
+ * @param {Number} yAnchor - y coordinate to jump to on resulting page.
+ * @returns {Boolean} - Whether the jump was successful.
+ **/
+ _gotoPageByIndex (pageIndex, xAnchor, yAnchor)
+ {
+ let pidx = parseInt(pageIndex, 10);
- // Get the hash part only of the current URL (without the leading #)
- this.getURLHash = function ()
+ if (this._isPageIndexValid(pidx))
{
- return getURLHash();
- };
+ const xOffset = this.divaState.viewerCore.getXOffset(pidx, xAnchor);
+ const yOffset = this.divaState.viewerCore.getYOffset(pidx, yAnchor);
- // Get an object representing the state of this diva instance (for setState)
- this.getState = function ()
- {
- return getState();
- };
+ this.viewerState.renderer.goto(pidx, yOffset, xOffset);
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Check if a page index is valid
+ *
+ * @private
+ * @param {Number} pageIndex - Numeric (0-based) page index
+ * @return {Boolean} whether the page index is valid or not.
+ */
+ _isPageIndexValid (pageIndex)
+ {
+ return this.settings.manifest.isPageValid(pageIndex, this.settings.showNonPagedPages);
+ }
+
+ /**
+ * Given a pageX and pageY value, returns either the page visible at that (x,y)
+ * position or -1 if no page is.
+ *
+ * @private
+ */
+ _getPageIndexForPageXYValues (pageX, pageY)
+ {
+ //get the four edges of the outer element
+ const outerOffset = this.viewerState.outerElement.getBoundingClientRect();
+ const outerTop = outerOffset.top;
+ const outerLeft = outerOffset.left;
+ const outerBottom = outerOffset.bottom;
+ const outerRight = outerOffset.right;
+
+ //if the clicked position was outside the diva-outer object, it was not on a visible portion of a page
+ if (pageX < outerLeft || pageX > outerRight)
+ return -1;
- // Align this diva instance with a state object (as returned by getState)
- this.setState = function (state)
- {
- reloadViewer(getLoadOptionsForState(state));
- };
+ if (pageY < outerTop || pageY > outerBottom)
+ return -1;
- // Get the instance selector for this instance, since it's auto-generated.
- this.getInstanceSelector = function ()
+ //navigate through all diva page objects
+ const pages = document.getElementsByClassName('diva-page');
+ let curPageIdx = pages.length;
+ while (curPageIdx--)
{
- return settings.selector;
- };
+ //get the offset for each page
+ const curPage = pages[curPageIdx];
+ const curOffset = curPage.getBoundingClientRect();
- // Get the instance ID -- essentially the selector without the leading '#'.
- this.getInstanceId = function ()
- {
- return settings.ID;
- };
+ //if this point is outside the horizontal boundaries of the page, continue
+ if (pageX < curOffset.left || pageX > curOffset.right)
+ continue;
- this.getSettings = function ()
- {
- return settings;
- };
+ //same with vertical boundaries
+ if (pageY < curOffset.top || pageY > curOffset.bottom)
+ continue;
- /*
- Translates a measurement from the zoom level on the largest size
- to one on the current zoom level. Takes a single number from the
- max zoom level and translates that to a number scaled to the current
- zoom level.
-
- For example, a point 1000 on an image that is on zoom level 2 of 5
- translates to a position of 111.111... (1000 / (5 - 2)^2).
-
- Works for a single pixel co-ordinate or a dimension (e.g., translates a box
- that is 1000 pixels wide on the original to one that is 111.111 pixels wide
- on the current zoom level).
- */
- this.translateFromMaxZoomLevel = function (position)
- {
- var zoomDifference = settings.maxZoomLevel - settings.zoomLevel;
- return position / Math.pow(2, zoomDifference);
- };
+ //if we made it through the above two, we found the page we're looking for
+ return curPage.getAttribute('data-index');
+ }
- /*
- Translates a measurement from the current zoom level to the position on the
- largest zoom level. Takes a single number and returns that number's value on the
- image at the max zoom level.
-
- Works for a single pixel co-ordinate or a dimension (e.g., translates a box
- that is 111.111 pixels wide on the current image to one that is 1000 pixels wide
- on the current zoom level).
- */
- this.translateToMaxZoomLevel = function (position)
- {
- var zoomDifference = settings.maxZoomLevel - settings.zoomLevel;
+ //if we made it through that entire while loop, we didn't click on a page
+ return -1;
+ }
- // if there is no difference, it's a number on the max zoom level and
- // we can just return the position.
- if (zoomDifference === 0)
- return position;
+ /**
+ * @private
+ **/
+ _reloadViewer (newOptions)
+ {
+ return this.divaState.viewerCore.reload(newOptions);
+ }
- return position * Math.pow(2, zoomDifference);
- };
+ /**
+ * @private
+ */
+ _getCurrentURL ()
+ {
+ return location.protocol + '//' + location.host + location.pathname + location.search + '#' + this._getURLHash();
+ }
+
+ /**
+ * ===============================================
+ * PUBLIC FUNCTIONS
+ * ===============================================
+ **/
+
+ /**
+ * Activate this instance of diva via the active Diva controller.
+ *
+ * @public
+ */
+ activate ()
+ {
+ this.viewerState.isActiveDiva = true;
+ }
+
+ /**
+ * Change the object (objectData) parameter currently being rendered by Diva.
+ *
+ * @public
+ * @params {object} objectData - An IIIF Manifest object OR a URL to a IIIF manifest.
+ */
+ changeObject (objectData)
+ {
+ this.viewerState.loaded = false;
+ this.divaState.viewerCore.clear();
- // Re-enables document dragging, scrolling (by keyboard if set), and zooming by double-clicking
- this.enableScrollable = function()
- {
- divaState.viewerCore.enableScrollable();
- };
+ if (this.viewerState.renderer)
+ this.viewerState.renderer.destroy();
- // Disables document dragging, scrolling (by keyboard if set), and zooming by double-clicking
- this.disableScrollable = function ()
- {
- divaState.viewerCore.disableScrollable();
- };
+ this.viewerState.options.objectData = objectData;
- //Changes between horizontal layout and vertical layout. Returns true if document is now vertically oriented, false otherwise.
- this.toggleOrientation = function ()
- {
- return toggleOrientation();
- };
+ this._loadOrFetchObjectData();
+ }
- //Returns distance between the northwest corners of diva-inner and page index
- this.getPageOffset = function(pageIndex, options)
+ /**
+ * Change views. Takes 'document', 'book', or 'grid' to specify which view to switch into
+ *
+ * @public
+ * @params {string} destinationView - the destination view to change to.
+ */
+ changeView (destinationView)
+ {
+ this._changeView(destinationView);
+ }
+
+ /**
+ * Deactivate this diva instance through the active Diva controller.
+ *
+ * @public
+ **/
+ deactivate ()
+ {
+ this.viewerState.isActiveDiva = false;
+ }
+
+ /**
+ * Destroys this instance, tells plugins to do the same
+ *
+ * @public
+ **/
+ destroy ()
+ {
+ this.divaState.viewerCore.destroy();
+ }
+
+ /**
+ * Disables document dragging, scrolling (by keyboard if set), and zooming by double-clicking
+ *
+ * @public
+ **/
+ disableScrollable ()
+ {
+ this.divaState.viewerCore.disableScrollable();
+ }
+
+ /**
+ * Re-enables document dragging, scrolling (by keyboard if set), and zooming by double-clicking
+ *
+ * @public
+ **/
+ enableScrollable ()
+ {
+ this.divaState.viewerCore.enableScrollable();
+ }
+
+ /**
+ * Disables document drag scrolling
+ *
+ * @public
+ */
+ disableDragScrollable ()
+ {
+ this.divaState.viewerCore.disableDragScrollable();
+ }
+
+ /**
+ * Enables document drag scrolling
+ *
+ * @public
+ */
+ enableDragScrollable ()
+ {
+ this.divaState.viewerCore.enableDragScrollable();
+ }
+
+ /**
+ * Enter fullscreen mode if currently not in fullscreen mode. If currently in fullscreen
+ * mode this will have no effect.
+ *
+ * This function will work even if enableFullscreen is set to false in the options.
+ *
+ * @public
+ * @returns {boolean} - Whether the switch to fullscreen was successful or not.
+ **/
+ enterFullscreenMode ()
+ {
+ if (!this.settings.inFullscreen)
{
- var region = divaState.viewerCore.getPageRegion(pageIndex, options);
-
- return {
- top: region.top,
- left: region.left
- };
- };
-
- //shortcut to getPageOffset for current page
- this.getCurrentPageOffset = function()
+ this._toggleFullscreen();
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Enter grid view if currently not in grid view. If currently in grid view mode
+ * this will have no effect.
+ *
+ * @public
+ * @returns {boolean} - Whether the switch to grid view was successful or not.
+ **/
+ enterGridView ()
+ {
+ if (!this.settings.inGrid)
{
- return this.getPageOffset(settings.currentPageIndex);
- };
-
- //Returns the page dimensions of given page at the current zoom level
- this.getPageDimensionsAtCurrentGridLevel = function(pageIndex)
+ this._changeView('grid');
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Returns an array of all page image URIs in the document.
+ *
+ * @public
+ * @returns {Array} - An array of all the URIs in the document.
+ * */
+ getAllPageURIs ()
+ {
+ return this.settings.manifest.pages.map( (pg) =>
{
- console.warn("This method is deprecated. Consider using getPageDimensionsAtCurrentZoomLevel(pageIndex) instead.");
- return this.getPageDimensionsAtCurrentZoomLevel(pageIndex);
- };
+ return pg.f;
+ });
+ }
+
+ /**
+ * Get the canvas identifier for the currently visible page.
+ *
+ * @public
+ * @returns {string} - The URI of the currently visible canvas.
+ **/
+ getCurrentCanvas ()
+ {
+ return this.settings.manifest.pages[this.settings.activePageIndex].canvas;
+ }
+
+ /**
+ * Returns the dimensions of the current page at the current zoom level. Also works in
+ * grid view.
+ *
+ * @public
+ * @returns {object} - An object containing the current page dimensions at the current zoom level.
+ **/
+ getCurrentPageDimensionsAtCurrentZoomLevel ()
+ {
+ return this.getPageDimensionsAtCurrentZoomLevel(this.settings.activePageIndex);
+ }
+
+ /**
+ * Returns the current filename (deprecated). Returns the URI for current page.
+ *
+ * @public
+ * @deprecated
+ * @returns {string} - The URI for the current page image.
+ **/
+ getCurrentPageFilename ()
+ {
+ console.warn('This method will be deprecated in the next version of Diva. Please use getCurrentPageURI instead.');
+ return this.settings.manifest.pages[this.settings.activePageIndex].f;
+ }
+
+ /**
+ * Returns an array of page indices that are visible in the viewport.
+ *
+ * @public
+ * @returns {array} - The 0-based indices array for the currently visible pages.
+ **/
+ getCurrentPageIndices ()
+ {
+ return this.settings.currentPageIndices;
+ }
+
+ /**
+ * Returns the 0-based index for the current page.
+ *
+ * @public
+ * @returns {number} - The 0-based index for the currently visible page.
+ **/
+ getActivePageIndex ()
+ {
+ return this.settings.activePageIndex;
+ }
+
+ /**
+ * Shortcut to getPageOffset for current page.
+ *
+ * @public
+ * @returns {} -
+ * */
+ getCurrentPageOffset ()
+ {
+ return this.getPageOffset(this.settings.activePageIndex);
+ }
+
+ /**
+ * Returns the current URI for the visible page.
+ *
+ * @public
+ * @returns {string} - The URI for the current page image.
+ **/
+ getCurrentPageURI ()
+ {
+ return this.settings.manifest.pages[this.settings.activePageIndex].f;
+ }
+
+ /**
+ * Return the current URL for the viewer, including the hash parameters reflecting
+ * the current state of the viewer.
+ *
+ * @public
+ * @returns {string} - The URL for the current view state.
+ * */
+ getCurrentURL ()
+ {
+ return this._getCurrentURL();
+ }
+
+ /**
+ * Returns an array of all filenames in the document. Deprecated.
+ *
+ * @public
+ * @deprecated
+ * @returns {Array} - An array of all the URIs in the document.
+ * */
+ getFilenames ()
+ {
+ console.warn('This will be removed in the next version of Diva. Use getAllPageURIs instead.');
- /*
- Given a pageX and pageY value (as could be retreived from a jQuery event object),
- returns either the page visible at that (x,y) position or -1 if no page is.
- */
- this.getPageIndexForPageXYValues = function(pageX, pageY)
+ return this.settings.manifest.pages.map( (pg) =>
{
- //get the four edges of the outer element
- var outerOffset = viewerState.outerElement.getBoundingClientRect();
- var outerTop = outerOffset.top;
- var outerLeft = outerOffset.left;
- var outerBottom = outerOffset.bottom;
- var outerRight = outerOffset.right;
-
- //if the clicked position was outside the diva-outer object, it was not on a visible portion of a page
- if (pageX < outerLeft || pageX > outerRight)
- return -1;
-
- if (pageY < outerTop || pageY > outerBottom)
- return -1;
-
- //navigate through all diva page objects
- var pages = document.getElementsByClassName('diva-page');
- var curPageIdx = pages.length;
- while (curPageIdx--)
- {
- //get the offset for each page
- var curPage = pages[curPageIdx];
- var curOffset = curPage.getBoundingClientRect();
-
- //if this point is outside the horizontal boundaries of the page, continue
- if (pageX < curOffset.left || pageX > curOffset.right)
- continue;
-
- //same with vertical boundaries
- if (pageY < curOffset.top || pageY > curOffset.bottom)
- continue;
-
- //if we made it through the above two, we found the page we're looking for
- return curPage.getAttribute('data-index');
- }
+ return pg.f;
+ });
+ }
+
+ /**
+ * Get the number of grid pages per row.
+ *
+ * @public
+ * @returns {number} - The number of grid pages per row.
+ **/
+ getGridPagesPerRow ()
+ {
+ // TODO(wabain): Add test case
+ return this.settings.pagesPerRow;
+ }
+
+ /**
+ * Get the instance ID number.
+ *
+ * @public
+ * @returns {number} - The instance ID.
+ * */
+ //
+ getInstanceId ()
+ {
+ return this.settings.ID;
+ }
+
+ /**
+ * Get the instance selector for this instance. This is the selector for the parent
+ * div.
+ *
+ * @public
+ * @returns {string} - The viewport selector.
+ * */
+ getInstanceSelector ()
+ {
+ return this.divaState.viewerCore.selector;
+ }
+
+ /**
+ * Returns the title of the document, based on the label in the IIIF manifest.
+ *
+ * @public
+ * @returns {string} - The current title of the object from the label key in the IIIF Manifest.
+ **/
+ getItemTitle ()
+ {
+ return this.settings.manifest.itemTitle;
+ }
+
+ /**
+ * Gets the maximum zoom level for the entire document.
+ *
+ * @public
+ * @returns {number} - The maximum zoom level for the document
+ * */
+ getMaxZoomLevel ()
+ {
+ return this.settings.maxZoomLevel;
+ }
+
+ /**
+ * Gets the max zoom level for a given page.
+ *
+ * @public
+ * @param {number} pageIdx - The 0-based index number for the page.
+ * @returns {number} - The maximum zoom level for that page.
+ * */
+ getMaxZoomLevelForPage (pageIdx)
+ {
+ if (!this._checkLoaded())
+ return false;
- //if we made it through that entire while loop, we didn't click on a page
- return -1;
- };
+ return this.settings.manifest.pages[pageIdx].m;
+ }
- /*
- * Given a set of clientX, clientY co-ordinates, returns an object
- *
- **/
- this.getPageCoordinatesHit = function(clientX, clientY)
- {
- if (viewerState.renderer)
- {
- return viewerState.renderer.getPageHit(clientX, clientY);
- }
+ /**
+ * Gets the minimum zoom level for the entire document.
+ *
+ * @public
+ * @returns {number} - The minimum zoom level for the document
+ * */
+ getMinZoomLevel ()
+ {
+ return this.settings.minZoomLevel;
+ }
+
+ /**
+ * Gets the number of pages in the document.
+ *
+ * @public
+ * @returns {number} - The number of pages in the document.
+ * */
+ getNumberOfPages ()
+ {
+ if (!this._checkLoaded())
+ return false;
+ return this.settings.numPages;
+ }
+
+ /**
+ * If a canvas has multiple images defined, returns the non-primary image.
+ *
+ * @public
+ * @params {number} pageIndex - The page index for which to return the other images.
+ * @returns {object} An object containing the other images.
+ **/
+ getOtherImages (pageIndex)
+ {
+ return this.settings.manifest.pages[pageIndex].otherImages;
+ }
+
+ /**
+ * Get page dimensions in the current view and zoom level
+ *
+ * @public
+ * @params {number} pageIndex - A valid 0-based page index
+ * @returns {object} - An object containing the dimensions of the page
+ * */
+ getPageDimensions (pageIndex)
+ {
+ if (!this._checkLoaded())
return null;
- };
-
- /**
- * Returns a URL for the image of the page at the given index. The
- * optional size parameter supports setting the image width or height
- * (default is full-sized).
- */
- this.getPageImageURL = function (pageIndex, size)
- {
- return settings.manifest.getPageImageURL(pageIndex, size);
- };
-
- //Pretty self-explanatory.
- this.isVerticallyOriented = function()
- {
- return settings.verticallyOriented;
- };
-
- this.changeObject = function(objectData)
- {
- viewerState.loaded = false;
- divaState.viewerCore.clear();
-
- if (viewerState.renderer)
- viewerState.renderer.destroy();
-
- viewerState.options.objectData = objectData;
-
- if (typeof objectData === 'object')
- {
- setTimeout(function ()
- {
- loadObjectData(objectData);
- });
-
- return;
- }
-
- viewerState.throbberTimeoutID = setTimeout(function ()
- {
- $(settings.selector + 'throbber').show();
- }, settings.throbberTimeout);
-
- $.ajax({
- url: settings.objectData,
- cache: true,
- dataType: 'json',
- error: ajaxError,
- success: function (responseData)
- {
- loadObjectData(responseData);
- }
- });
- };
-
- this.activate = function ()
- {
- viewerState.isActiveDiva = true;
- };
- this.deactivate = function ()
- {
- viewerState.isActiveDiva = false;
- };
-
- // Destroys this instance, tells plugins to do the same (for testing)
- this.destroy = function ()
- {
- divaState.viewerCore.destroy();
- };
+ return this.divaState.viewerCore.getCurrentLayout().getPageDimensions(pageIndex);
+ }
+
+ /**
+ * Returns the dimensions of a given page at the current zoom level.
+ * Also works in Grid view
+ *
+ * @public
+ * @param {number} pageIndex - The 0-based page index
+ * @returns {object} - An object containing the page dimensions at the current zoom level.
+ * */
+ getPageDimensionsAtCurrentZoomLevel (pageIndex)
+ {
+ let pidx = parseInt(pageIndex, 10);
+
+ if (!this._isPageIndexValid(pidx))
+ throw new Error('Invalid Page Index');
+
+ return this.divaState.viewerCore.getCurrentLayout().getPageDimensions(pidx);
+ }
+
+ /**
+ * Get page dimensions at a given zoom level
+ *
+ * @public
+ * @params {number} pageIdx - A valid 0-based page index
+ * @params {number} zoomLevel - A candidate zoom level.
+ * @returns {object} - An object containing the dimensions of the page at the given zoom level.
+ **/
+ getPageDimensionsAtZoomLevel (pageIdx, zoomLevel)
+ {
+ if (!this._checkLoaded())
+ return false;
- // "Secretly" expose the page overlay API for the highlight plugin
- this.__addPageOverlay = function (overlay)
- {
- divaState.viewerCore.addPageOverlay(overlay);
- };
+ if (zoomLevel > this.settings.maxZoomLevel)
+ zoomLevel = this.settings.maxZoomLevel;
+
+ const pg = this.settings.manifest.pages[parseInt(pageIdx, 10)];
+ const pgAtZoom = pg.d[parseInt(zoomLevel, 10)];
+
+ return {
+ width: pgAtZoom.w,
+ height: pgAtZoom.h
+ };
+ }
+
+ /**
+ * Returns a URL for the image of the page at the given index. The
+ * optional size parameter supports setting the image width or height
+ * (default is full-sized).
+ *
+ * @public
+ * @params {number} pageIndex - 0-based page index
+ * @params {?object} size - an object containing width and height information
+ * @returns {string} - The IIIF URL for a given page at an optional size
+ */
+ getPageImageURL (pageIndex, size)
+ {
+ return this.settings.manifest.getPageImageURL(pageIndex, size);
+ }
+
+ /**
+ * Given a set of co-ordinates (e.g., from a mouse click), return the 0-based page index
+ * for which it matches.
+ *
+ * @public
+ * @params {number} pageX - The x co-ordinate
+ * @params {number} pageY - The y co-ordinate
+ * @returns {number} - The page index matching the co-ordinates.
+ * */
+ getPageIndexForPageXYValues (pageX, pageY)
+ {
+ return this._getPageIndexForPageXYValues(pageX, pageY);
+ }
+
+ /**
+ * Returns distance between the northwest corners of diva-inner and page index.
+ *
+ * @public
+ * @params {number} pageIndex - The 0-based page index
+ * @params {?options} options - A set of options to pass in.
+ * @returns {object} - The offset between the upper left corner and the page.
+ *
+ * */
+ getPageOffset (pageIndex, options)
+ {
+ const region = this.divaState.viewerCore.getPageRegion(pageIndex, options);
- this.__removePageOverlay = function (overlay)
- {
- divaState.viewerCore.removePageOverlay(overlay);
+ return {
+ top: region.top,
+ left: region.left
};
+ }
- /**** Page Alias Functions ****/
- /*
- Main function. Will return the first of these three that
- resolves to boolean true:
- -Explicit alias as defined in pageAliases
- -Result of pageAliasFunction
- -originalPageIndex + 1 (to simulate the original mapping)
-
- Else the function will return false.
- */
- this.getAliasForPageIndex = function(originalPageIndex)
- {
- var pageIndex = parseInt(originalPageIndex, 10);
- return settings.pageAliases[pageIndex] || settings.pageAliasFunction(pageIndex) || pageIndex + 1;
- };
+ /**
+ * Get the instance settings.
+ *
+ * @public
+ * @returns {object} - The current instance settings.
+ * */
+ getSettings ()
+ {
+ return this.settings;
+ }
+
+ /**
+ * Get an object representing the complete state of the viewer.
+ *
+ * @public
+ * @returns {object} - The current instance state.
+ * */
+ getState ()
+ {
+ return this._getState();
+ }
+
+ /**
+ * Get the current zoom level.
+ *
+ * @public
+ * @returns {number} - The current zoom level.
+ * */
+ getZoomLevel ()
+ {
+ return this.settings.zoomLevel;
+ }
+
+ /**
+ * Go to a particular page (with indexing starting at 0).
+ * The (xAnchor) side of the page will be anchored to the (xAnchor) side of the diva-outer element
+ *
+ * @public
+ * @params {number} pageIndex - 0-based page index.
+ * @params {?string} xAnchor - may either be "left", "right", or default "center"
+ * @params {?string} yAnchor - may either be "top", "bottom", or default "center"; same process as xAnchor.
+ * @returns {boolean} - True if the page index is valid; false if it is not.
+ * */
+ gotoPageByIndex (pageIndex, xAnchor, yAnchor)
+ {
+ this._gotoPageByIndex(pageIndex, xAnchor, yAnchor);
+ }
+
+ /**
+ * Given a canvas label, attempt to go to that page. If no label was found.
+ * the label will be attempted to match against the page index.
+ *
+ * @public
+ * @params {string} label - The label to search on.
+ * @params {?string} xAnchor - may either be "left", "right", or default "center"
+ * @params {?string} yAnchor - may either be "top", "bottom", or default "center"
+ * @returns {boolean} - True if the page index is valid; false if it is not.
+ * */
+ gotoPageByLabel (label, xAnchor, yAnchor)
+ {
+ const pages = this.settings.manifest.pages;
+ let llc = label.toLowerCase();
+
+ for (let i = 0, len = pages.length; i < len; i++)
+ {
+ if (pages[i].l.toLowerCase().indexOf(llc) > -1)
+ return this._gotoPageByIndex(i, xAnchor, yAnchor);
+ }
+
+ const pageIndex = parseInt(label, 10) - 1;
+ return this._gotoPageByIndex(pageIndex, xAnchor, yAnchor);
+ }
+
+ /**
+ * Jump to a page based on its filename. Deprecated. Use gotoPageByURI instead.
+ *
+ * @public
+ * @params {string} filename - The filename of the image to jump to.
+ * @params {?string} xAnchor - may either be "left", "right", or default "center"
+ * @params {?string} yAnchor - may either be "top", "bottom", or default "center"
+ * @returns {boolean} true if successful and false if the filename is not found.
+ */
+ gotoPageByName (filename, xAnchor, yAnchor)
+ {
+ console.warn('This method will be removed in the next version of Diva.js. Use gotoPageByURI instead.');
+ const pageIndex = this._getPageIndex(filename);
+ return this._gotoPageByIndex(pageIndex, xAnchor, yAnchor);
+ }
+
+ /**
+ * Jump to a page based on its URI.
+ *
+ * @public
+ * @params {string} uri - The URI of the image to jump to.
+ * @params {?string} xAnchor - may either be "left", "right", or default "center"
+ * @params {?string} yAnchor - may either be "top", "bottom", or default "center"
+ * @returns {boolean} true if successful and false if the URI is not found.
+ */
+ gotoPageByURI (uri, xAnchor, yAnchor)
+ {
+ const pageIndex = this._getPageIndex(uri);
+ return this._gotoPageByIndex(pageIndex, xAnchor, yAnchor);
+ }
+
+ /**
+ * Whether the page has other images to display.
+ *
+ * @public
+ * @params {number} pageIndex - The 0-based page index
+ * @returns {boolean} Whether the page has other images to display.
+ **/
+ hasOtherImages (pageIndex)
+ {
+ return this.settings.manifest.pages[pageIndex].otherImages === true;
+ }
+
+ /**
+ * Hides the pages that are marked "non-paged" in the IIIF manifest.
+ *
+ * @public
+ **/
+ hideNonPagedPages ()
+ {
+ this._reloadViewer({ showNonPagedPages: false });
+ }
+
+ /**
+ * Is the viewer currently in full-screen mode?
+ *
+ * @public
+ * @returns {boolean} - Whether the viewer is in fullscreen mode.
+ **/
+ isInFullscreen ()
+ {
+ return this.settings.inFullscreen;
+ }
+
+ /**
+ * Check if a page index is within the range of the document
+ *
+ * @public
+ * @returns {boolean} - Whether the page index is valid.
+ **/
+ isPageIndexValid (pageIndex)
+ {
+ return this._isPageIndexValid(pageIndex);
+ }
+
+ /**
+ * Determines if a page is currently in the viewport
+ *
+ * @public
+ * @params {number} pageIndex - The 0-based page index
+ * @returns {boolean} - Whether the page is currently in the viewport.
+ **/
+ isPageInViewport (pageIndex)
+ {
+ return this.viewerState.renderer.isPageVisible(pageIndex);
+ }
+
+ /**
+ * Whether the Diva viewer has been fully initialized.
+ *
+ * @public
+ * @returns {boolean} - True if the viewer is initialized; false otherwise.
+ **/
+ isReady ()
+ {
+ return this.viewerState.loaded;
+ }
+
+ /**
+ * Check if something (e.g. a highlight box on a particular page) is visible
+ *
+ * @public
+ * @params {number} pageIndex - The 0-based page index
+ * @params {number} leftOffset - The distance of the region from the left of the viewport
+ * @params {number} topOffset - The distance of the region from the top of the viewport
+ * @params {number} width - The width of the region
+ * @params {number} height - The height of the region
+ * @returns {boolean} - Whether the region is in the viewport.
+ **/
+ isRegionInViewport (pageIndex, leftOffset, topOffset, width, height)
+ {
+ const layout = this.divaState.viewerCore.getCurrentLayout();
- /*
- Returns the first page index found for a given aliased number or false if not found.
- This may cause issues if a specific alias is found for multiple page indices; use getPageIndicesForAlias and reimplement functions as necessary if this is the case.
- */
- this.getPageIndexForAlias = function(aliasedNumber)
- {
- for(var idx = 0; idx < settings.numPages; idx++)
- {
- if(this.getAliasForPageIndex(idx) === aliasedNumber)
- {
- return idx;
- }
- }
+ if (!layout)
return false;
- };
- //Returns array of page indices for a given aliased number. Returns an empty array if none are found.
- this.getPageIndicesForAlias = function(aliasedNumber)
- {
- var indexArr = [];
- for(var idx = 0; idx < settings.numPages; idx++)
- {
- if(this.getAliasForPageIndex(idx) === aliasedNumber)
- {
- indexArr.push(idx);
- }
- }
- return indexArr;
- };
+ const offset = layout.getPageOffset(pageIndex);
+ const top = offset.top + topOffset;
+ const left = offset.left + leftOffset;
- //Maps the current page index to getAliasForPageIndex
- this.getCurrentAliasedPageIndex = function()
+ return this.viewerState.viewport.intersectsRegion({
+ top: top,
+ bottom: top + height,
+ left: left,
+ right: left + width
+ });
+ }
+
+ /**
+ * Whether the page layout is vertically or horizontally oriented.
+ *
+ * @public
+ * @returns {boolean} - True if vertical; false if horizontal.
+ **/
+ isVerticallyOriented ()
+ {
+ return this.settings.verticallyOriented;
+ }
+
+ /**
+ * Leave fullscreen mode if currently in fullscreen mode.
+ *
+ * @public
+ * @returns {boolean} - true if in fullscreen mode intitially, false otherwise
+ **/
+ leaveFullscreenMode ()
+ {
+ if (this.settings.inFullscreen)
{
- return this.getAliasForPageIndex(settings.currentPageIndex);
- };
-
- //Wrapper for gotoPageByIndex, keeping the aliased numbers in mind
- this.gotoPageByAliasedNumber = function(aliasedNumber, xAnchor, yAnchor)
+ this._toggleFullscreen();
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Leave grid view if currently in grid view.
+ *
+ * @public
+ * @returns {boolean} - true if in grid view initially, false otherwise
+ **/
+ leaveGridView ()
+ {
+ if (this.settings.inGrid)
{
- return this.gotoPageByIndex(this.getPageIndexForAlias(aliasedNumber), xAnchor, yAnchor);
- };
-
- // Call the init function when this object is created.
- init();
- };
+ this._reloadViewer({ inGrid: false });
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Set the number of grid pages per row.
+ *
+ * @public
+ * @params {number} pagesPerRow - The number of pages per row
+ * @returns {boolean} - True if the operation was successful.
+ **/
+ setGridPagesPerRow (pagesPerRow)
+ {
+ // TODO(wabain): Add test case
+ if (!this.divaState.viewerCore.isValidOption('pagesPerRow', pagesPerRow))
+ return false;
- $.fn.diva = function (options)
+ return this._reloadViewer({
+ inGrid: true,
+ pagesPerRow: pagesPerRow
+ });
+ }
+
+ /**
+ * Align this diva instance with a state object (as returned by getState)
+ *
+ * @public
+ * @params {object} state - A Diva state object.
+ * @returns {boolean} - True if the operation was successful.
+ **/
+ setState (state)
+ {
+ this._reloadViewer(this._getLoadOptionsForState(state));
+ }
+
+ /**
+ * Sets the zoom level.
+ *
+ * @public
+ * @returns {boolean} - True if the operation was successful.
+ **/
+ setZoomLevel (zoomLevel)
{
- return this.each(function ()
+ if (this.settings.inGrid)
{
- var divaParent = $(this);
+ this._reloadViewer({
+ inGrid: false
+ });
+ }
+
+ return this.divaState.viewerCore.zoom(zoomLevel);
+ }
+
+ /**
+ * Show non-paged pages.
+ *
+ * @public
+ * @returns {boolean} - True if the operation was successful.
+ **/
+ showNonPagedPages ()
+ {
+ this._reloadViewer({ showNonPagedPages: true });
+ }
+
+ /**
+ * Toggle fullscreen mode.
+ *
+ * @public
+ * @returns {boolean} - True if the operation was successful.
+ **/
+ toggleFullscreenMode ()
+ {
+ this._toggleFullscreen();
+ }
+
+ /**
+ * Show/Hide non-paged pages
+ *
+ * @public
+ * @returns {boolean} - True if the operation was successful.
+ **/
+ toggleNonPagedPagesVisibility ()
+ {
+ this._reloadViewer({
+ showNonPagedPages: !this.settings.showNonPagedPages
+ });
+ }
- // Return early if this element already has a plugin instance
- if (divaParent.data('diva'))
- return;
+ //Changes between horizontal layout and vertical layout. Returns true if document is now vertically oriented, false otherwise.
+ toggleOrientation ()
+ {
+ return this._togglePageLayoutOrientation();
+ }
+
+ /**
+ * Translates a measurement from the zoom level on the largest size
+ * to one on the current zoom level.
+ *
+ * For example, a point 1000 on an image that is on zoom level 2 of 5
+ * translates to a position of 111.111... (1000 / (5 - 2)^2).
+ *
+ * Works for a single pixel co-ordinate or a dimension (e.g., translates a box
+ * that is 1000 pixels wide on the original to one that is 111.111 pixels wide
+ * on the current zoom level).
+ *
+ * @public
+ * @params {number} position - A point on the max zoom level
+ * @returns {number} - The same point on the current zoom level.
+ */
+ translateFromMaxZoomLevel (position)
+ {
+ const zoomDifference = this.settings.maxZoomLevel - this.settings.zoomLevel;
+ return position / Math.pow(2, zoomDifference);
+ }
+
+ /**
+ * Translates a measurement from the current zoom level to the position on the
+ * largest zoom level.
+ *
+ * Works for a single pixel co-ordinate or a dimension (e.g., translates a box
+ * that is 111.111 pixels wide on the current image to one that is 1000 pixels wide
+ * on the current zoom level).
+ *
+ * @public
+ * @params {number} position - A point on the current zoom level
+ * @returns {number} - The same point on the max zoom level.
+ */
+ translateToMaxZoomLevel (position)
+ {
+ const zoomDifference = this.settings.maxZoomLevel - this.settings.zoomLevel;
+
+ // if there is no difference, it's a box on the max zoom level and
+ // we can just return the position.
+ if (zoomDifference === 0)
+ return position;
+
+ return position * Math.pow(2, zoomDifference);
+ }
+
+ /**
+ * Zoom in.
+ *
+ * @public
+ * @returns {boolean} - false if it's at the maximum zoom
+ **/
+ zoomIn ()
+ {
+ return this.setZoomLevel(this.settings.zoomLevel + 1);
+ }
+
+ /**
+ * Zoom out.
+ * @returns {boolean} - false if it's at the minimum zoom
+ **/
+ zoomOut ()
+ {
+ return this.setZoomLevel(this.settings.zoomLevel - 1);
+ }
+}
- // Throw an error if the element is not in the DOM, since it causes some problems
- if (!document.body.contains(this))
- throw new Error('Diva could not be initialized because this element is not attached to the DOM');
+export default Diva;
- // Otherwise, instantiate the document viewer
- var diva = new Diva(this, options);
- divaParent.data('diva', diva);
- });
- };
-})(jQuery);
+/**
+ * Make `Diva` available in the global context.
+ * */
+(function (global)
+{
+ global.Diva = global.Diva || Diva;
+ global.Diva.Events = diva.Events;
+})(window);
diff --git a/source/js/document-handler.js b/source/js/document-handler.js
index 0b67290b..fa1688cb 100644
--- a/source/js/document-handler.js
+++ b/source/js/document-handler.js
@@ -1,148 +1,177 @@
-var maxBy = require('lodash.maxby');
-var PageToolsOverlay = require('./page-tools-overlay');
+import maxBy from 'lodash.maxby';
+import PageToolsOverlay from './page-tools-overlay';
-module.exports = DocumentHandler;
-function DocumentHandler(viewerCore)
+export default class DocumentHandler
{
- this._viewerCore = viewerCore;
- this._viewerState = viewerCore.getInternalState();
- this._overlays = [];
-
- if (viewerCore.getPageTools().length)
+ constructor (viewerCore)
{
- var numPages = viewerCore.getSettings().numPages;
+ this._viewerCore = viewerCore;
+ this._viewerState = viewerCore.getInternalState();
+ this._overlays = [];
- for (var i=0; i < numPages; i++)
+ if (this._viewerCore.getPageTools().length)
{
- var overlay = new PageToolsOverlay(i, viewerCore);
- this._overlays.push(overlay);
- viewerCore.addPageOverlay(overlay);
+ const numPages = viewerCore.getSettings().numPages;
+
+ for (let i = 0; i < numPages; i++)
+ {
+ const overlay = new PageToolsOverlay(i, viewerCore);
+ this._overlays.push(overlay);
+ this._viewerCore.addPageOverlay(overlay);
+
+ // create dummy label for width calculation
+ // this is necessary because the _pageToolsElem is only created on mount
+ // so there's no other way to get its width before the pages are loaded
+ // (which we need to avoid their width temporarily being 0 while loading)
+ let dummyLabel = document.createElement('span');
+ dummyLabel.innerHTML = viewerCore.settings.manifest.pages[i].l;
+ dummyLabel.classList.add('diva-page-labels');
+ dummyLabel.setAttribute('style', 'display: inline-block;');
+ document.body.appendChild(dummyLabel);
+ let labelWidth = dummyLabel.clientWidth;
+ document.body.removeChild(dummyLabel);
+
+ overlay.labelWidth = labelWidth;
+ }
}
}
-}
-
-// USER EVENTS
-DocumentHandler.prototype.onDoubleClick = function (event, coords)
-{
- var settings = this._viewerCore.getSettings();
- var newZoomLevel = event.ctrlKey ? settings.zoomLevel - 1 : settings.zoomLevel + 1;
-
- var position = this._viewerCore.getPagePositionAtViewportOffset(coords);
-
- this._viewerCore.zoom(newZoomLevel, position);
-};
-
-DocumentHandler.prototype.onPinch = function (event, coords, startDistance, endDistance)
-{
- // FIXME: Do this check in a way which is less spaghetti code-y
- var viewerState = this._viewerCore.getInternalState();
- var settings = this._viewerCore.getSettings();
-
- var newZoomLevel = Math.log(Math.pow(2, settings.zoomLevel) * endDistance / (startDistance * Math.log(2))) / Math.log(2);
- newZoomLevel = Math.max(settings.minZoomLevel, newZoomLevel);
- newZoomLevel = Math.min(settings.maxZoomLevel, newZoomLevel);
- if (newZoomLevel === settings.zoomLevel)
- return;
+ // USER EVENTS
+ onDoubleClick (event, coords)
+ {
+ const settings = this._viewerCore.getSettings();
+ const newZoomLevel = event.ctrlKey ? settings.zoomLevel - 1 : settings.zoomLevel + 1;
- var position = this._viewerCore.getPagePositionAtViewportOffset(coords);
+ const position = this._viewerCore.getPagePositionAtViewportOffset(coords);
+ this._viewerCore.zoom(newZoomLevel, position);
+ }
- var layout = this._viewerCore.getCurrentLayout();
- var centerOffset = layout.getPageToViewportCenterOffset(position.anchorPage, viewerState.viewport);
- var scaleRatio = 1 / Math.pow(2, settings.zoomLevel - newZoomLevel);
+ onPinch (event, coords, startDistance, endDistance)
+ {
+ // FIXME: Do this check in a way which is less spaghetti code-y
+ const viewerState = this._viewerCore.getInternalState();
+ const settings = this._viewerCore.getSettings();
- this._viewerCore.reload({
- zoomLevel: newZoomLevel,
- goDirectlyTo: position.anchorPage,
- horizontalOffset: (centerOffset.x - position.offset.left) + position.offset.left * scaleRatio,
- verticalOffset: (centerOffset.y - position.offset.top) + position.offset.top * scaleRatio
- });
-};
+ let newZoomLevel = Math.log(Math.pow(2, settings.zoomLevel) * endDistance / (startDistance * Math.log(2))) / Math.log(2);
+ newZoomLevel = Math.max(settings.minZoomLevel, newZoomLevel);
+ newZoomLevel = Math.min(settings.maxZoomLevel, newZoomLevel);
-// VIEW EVENTS
-DocumentHandler.prototype.onViewWillLoad = function ()
-{
- this._viewerCore.publish('DocumentWillLoad', this._viewerCore.getSettings());
-};
-
-DocumentHandler.prototype.onViewDidLoad = function ()
-{
- // TODO: Should only be necessary to handle changes on view update, not
- // initial load
- this._handleZoomLevelChange();
+ if (newZoomLevel === settings.zoomLevel)
+ {
+ return;
+ }
- var currentPageIndex = this._viewerCore.getSettings().currentPageIndex;
- var fileName = this._viewerCore.getPageName(currentPageIndex);
- this._viewerCore.publish("DocumentDidLoad", currentPageIndex, fileName);
-};
+ const position = this._viewerCore.getPagePositionAtViewportOffset(coords);
-DocumentHandler.prototype.onViewDidUpdate = function (renderedPages, targetPage)
-{
- var currentPage = (targetPage !== null) ?
- targetPage :
- getCentermostPage(renderedPages, this._viewerCore.getCurrentLayout(), this._viewerCore.getViewport());
+ const layout = this._viewerCore.getCurrentLayout();
+ const centerOffset = layout.getPageToViewportCenterOffset(position.anchorPage, viewerState.viewport);
+ const scaleRatio = 1 / Math.pow(2, settings.zoomLevel - newZoomLevel);
- // Don't change the current page if there is no page in the viewport
- // FIXME: Would be better to fall back to the page closest to the viewport
- if (currentPage !== null)
- this._viewerCore.setCurrentPage(currentPage);
+ this._viewerCore.reload({
+ zoomLevel: newZoomLevel,
+ goDirectlyTo: position.anchorPage,
+ horizontalOffset: (centerOffset.x - position.offset.left) + position.offset.left * scaleRatio,
+ verticalOffset: (centerOffset.y - position.offset.top) + position.offset.top * scaleRatio
+ });
+ }
- if (targetPage !== null)
- this._viewerCore.publish("ViewerDidJump", targetPage);
+ // VIEW EVENTS
+ onViewWillLoad ()
+ {
+ this._viewerCore.publish('DocumentWillLoad', this._viewerCore.getSettings());
+ }
- this._handleZoomLevelChange();
-};
+ onViewDidLoad ()
+ {
+ // TODO: Should only be necessary to handle changes on view update, not
+ // initial load
+ this._handleZoomLevelChange();
-DocumentHandler.prototype._handleZoomLevelChange = function ()
-{
- var viewerState = this._viewerState;
- var zoomLevel = viewerState.options.zoomLevel;
+ const currentPageIndex = this._viewerCore.getSettings().activePageIndex;
+ const fileName = this._viewerCore.getPageName(currentPageIndex);
+ this._viewerCore.publish("DocumentDidLoad", currentPageIndex, fileName);
+ }
- // If this is not the initial load, trigger the zoom events
- if (viewerState.oldZoomLevel !== zoomLevel && viewerState.oldZoomLevel >= 0)
+ onViewDidUpdate (renderedPages, targetPage)
{
- if (viewerState.oldZoomLevel < zoomLevel)
+ const currentPage = (targetPage !== null) ?
+ targetPage :
+ getCentermostPage(renderedPages, this._viewerCore.getCurrentLayout(), this._viewerCore.getViewport());
+
+ // calculate the visible pages from the rendered pages
+ let temp = this._viewerState.viewport.intersectionTolerance;
+ // without setting to 0, isPageVisible returns true for pages out of viewport by intersectionTolerance
+ this._viewerState.viewport.intersectionTolerance = 0;
+ let visiblePages = renderedPages.filter(index => this._viewerState.renderer.isPageVisible(index));
+ // reset back to original value after getting true visible pages
+ this._viewerState.viewport.intersectionTolerance = temp;
+
+ // Don't change the current page if there is no page in the viewport
+ // FIXME: Would be better to fall back to the page closest to the viewport
+ if (currentPage !== null)
{
- this._viewerCore.publish("ViewerDidZoomIn", zoomLevel);
+ this._viewerCore.setCurrentPages(currentPage, visiblePages);
}
- else
+
+ if (targetPage !== null)
{
- this._viewerCore.publish("ViewerDidZoomOut", zoomLevel);
+ this._viewerCore.publish("ViewerDidJump", targetPage);
}
- this._viewerCore.publish("ViewerDidZoom", zoomLevel);
+ this._handleZoomLevelChange();
}
- viewerState.oldZoomLevel = zoomLevel;
-};
+ _handleZoomLevelChange ()
+ {
+ const viewerState = this._viewerState;
+ const zoomLevel = viewerState.options.zoomLevel;
+
+ // If this is not the initial load, trigger the zoom events
+ if (viewerState.oldZoomLevel !== zoomLevel && viewerState.oldZoomLevel >= 0)
+ {
+ if (viewerState.oldZoomLevel < zoomLevel)
+ {
+ this._viewerCore.publish("ViewerDidZoomIn", zoomLevel);
+ }
+ else
+ {
+ this._viewerCore.publish("ViewerDidZoomOut", zoomLevel);
+ }
+
+ this._viewerCore.publish("ViewerDidZoom", zoomLevel);
+ }
-DocumentHandler.prototype.destroy = function ()
-{
- this._overlays.forEach(function (overlay)
+ viewerState.oldZoomLevel = zoomLevel;
+ }
+
+ destroy ()
{
- this._viewerCore.removePageOverlay(overlay);
- }, this);
-};
+ this._overlays.forEach((overlay) =>
+ {
+ this._viewerCore.removePageOverlay(overlay);
+ }, this);
+ }
+}
-function getCentermostPage(renderedPages, layout, viewport)
+function getCentermostPage (renderedPages, layout, viewport)
{
- var centerY = viewport.top + (viewport.height / 2);
- var centerX = viewport.left + (viewport.width / 2);
+ const centerY = viewport.top + (viewport.height / 2);
+ const centerX = viewport.left + (viewport.width / 2);
// Find the minimum distance from the viewport center to a page.
// Compute minus the squared distance from viewport center to the page's border.
// http://gamedev.stackexchange.com/questions/44483/how-do-i-calculate-distance-between-a-point-and-an-axis-aligned-rectangle
- var centerPage = maxBy(renderedPages, function (pageIndex)
+ const centerPage = maxBy(renderedPages, pageIndex =>
{
- var dims = layout.getPageDimensions(pageIndex);
- var imageOffset = layout.getPageOffset(pageIndex, {excludePadding: false});
+ const dims = layout.getPageDimensions(pageIndex);
+ const imageOffset = layout.getPageOffset(pageIndex, {includePadding: false});
- var midX = imageOffset.left + (dims.width / 2);
- var midY = imageOffset.top + (dims.height / 2);
+ const midX = imageOffset.left + (dims.height / 2);
+ const midY = imageOffset.top + (dims.width / 2);
- var dx = Math.max(Math.abs(centerX - midX) - (dims.width / 2), 0);
- var dy = Math.max(Math.abs(centerY - midY) - (dims.height / 2), 0);
+ const dx = Math.max(Math.abs(centerX - midX) - (dims.width / 2), 0);
+ const dy = Math.max(Math.abs(centerY - midY) - (dims.height / 2), 0);
return -(dx * dx + dy * dy);
});
diff --git a/source/js/document-layout.js b/source/js/document-layout.js
index 5f5bd2b1..3c86df4d 100644
--- a/source/js/document-layout.js
+++ b/source/js/document-layout.js
@@ -1,136 +1,142 @@
-module.exports = DocumentLayout;
-
/**
* Translate page layouts, as generated by page-layouts, into an
* object which computes layout information for the document as
* a whole.
*/
-function DocumentLayout(config, zoomLevel)
+export default class DocumentLayout
{
- var computedLayout = getComputedLayout(config, zoomLevel);
-
- this.dimensions = computedLayout.dimensions;
- this.pageGroups = computedLayout.pageGroups;
- this._pageLookup = getPageLookup(computedLayout.pageGroups);
-}
+ constructor (config, zoomLevel)
+ {
+ const computedLayout = getComputedLayout(config, zoomLevel);
-/**
- * @typedef {Object} PageInfo
- * @property {number} index
- * @property {{index, dimensions, pages, region, padding}} group
- * @property {{height: number, width: number}} dimensions
- * @property {{top: number, left: number}} groupOffset
- */
+ this.dimensions = computedLayout.dimensions;
+ this.pageGroups = computedLayout.pageGroups;
+ this._pageLookup = getPageLookup(computedLayout.pageGroups);
+ }
-/**
- * @param pageIndex
- * @returns {PageInfo|null}
- */
-DocumentLayout.prototype.getPageInfo = function (pageIndex)
-{
- return this._pageLookup[pageIndex] || null;
-};
+ /**
+ * @typedef {Object} PageInfo
+ * @property {number} index
+ * @property {{index, dimensions, pages, region, padding}} group
+ * @property {{height: number, width: number}} dimensions
+ * @property {{top: number, left: number}} groupOffset
+ */
+
+ /**
+ * @param pageIndex
+ * @returns {PageInfo|null}
+ */
+ getPageInfo (pageIndex)
+ {
+ return this._pageLookup[pageIndex] || null;
+ }
-/**
- * Get the dimensions of a page
- *
- * @param pageIndex
- * @returns {{height: number, width: number}}
- */
-DocumentLayout.prototype.getPageDimensions = function (pageIndex)
-{
- if (!this._pageLookup || !this._pageLookup[pageIndex])
- return null;
+ /**
+ * Get the dimensions of a page
+ *
+ * @param pageIndex
+ * @returns {{height: number, width: number}}
+ */
+ getPageDimensions (pageIndex)
+ {
+ if (!this._pageLookup || !this._pageLookup[pageIndex])
+ return null;
- var region = getPageRegionFromPageInfo(this._pageLookup[pageIndex]);
+ const region = getPageRegionFromPageInfo(this._pageLookup[pageIndex]);
- return {
- height: region.bottom - region.top,
- width: region.right - region.left
- };
-};
+ return {
+ height: region.bottom - region.top,
+ width: region.right - region.left
+ };
+ }
-// TODO(wabain): Get rid of this; it's a subset of the page region, so
-// give that instead
-/**
- * Get the top-left coordinates of a page, including*** padding
- *
- * @param pageIndex
- * @param options
- * @returns {{top: number, left: number} | null}
- */
-DocumentLayout.prototype.getPageOffset = function (pageIndex, options)
-{
- var region = this.getPageRegion(pageIndex, options);
+ // TODO(wabain): Get rid of this; it's a subset of the page region, so
+ // give that instead
+ /**
+ * Get the top-left coordinates of a page, including*** padding
+ *
+ * @param pageIndex
+ * @param options
+ * @returns {{top: number, left: number} | null}
+ */
+ getPageOffset (pageIndex, options)
+ {
+ const region = this.getPageRegion(pageIndex, options);
- if (!region)
- return null;
+ if (!region)
+ return null;
- return {
- top: region.top,
- left: region.left
- };
-};
+ return {
+ top: region.top,
+ left: region.left
+ };
+ }
-DocumentLayout.prototype.getPageRegion = function (pageIndex, options)
-{
- var pageInfo = this._pageLookup[pageIndex];
+ getPageRegion (pageIndex, options)
+ {
+ const pageInfo = this._pageLookup[pageIndex];
- if (!pageInfo)
- return null;
+ if (!pageInfo)
+ return null;
- var region = getPageRegionFromPageInfo(pageInfo);
+ const region = getPageRegionFromPageInfo(pageInfo);
+ const padding = pageInfo.group.padding;
- if (options && options.excludePadding)
- {
- // FIXME?
- var padding = pageInfo.group.padding;
+ if (options && options.includePadding)
+ {
+ return {
+ top: region.top + padding.top,
+ left: region.left + padding.left,
+ bottom: region.bottom,
+ right: region.right
+ };
+ }
return {
- top: region.top + padding.top,
- left: region.left + padding.left,
- bottom: region.bottom,
+ top: region.top,
+ left: region.left,
+ // need to account for plugin icons below the page, see
+ // https://github.com/DDMAL/diva.js/issues/436
+ bottom: region.bottom + padding.top,
right: region.right
};
}
- return region;
-};
-
-/**
- * Get the distance from the top-right of the page to the center of the
- * specified viewport region
- *
- * @param pageIndex
- * @param viewport {{top: number, left: number, bottom: number, right: number}}
- * @returns {{x: number, y: number}}
- */
-DocumentLayout.prototype.getPageToViewportCenterOffset = function (pageIndex, viewport)
-{
- var scrollLeft = viewport.left;
- var elementWidth = viewport.right - viewport.left;
+ /**
+ * Get the distance from the top-right of the page to the center of the
+ * specified viewport region
+ *
+ * @param pageIndex
+ * @param viewport {{top: number, left: number, bottom: number, right: number}}
+ * @returns {{x: number, y: number}}
+ */
+ getPageToViewportCenterOffset (pageIndex, viewport)
+ {
+ const scrollLeft = viewport.left;
+ const elementWidth = viewport.right - viewport.left;
- var offset = this.getPageOffset(pageIndex);
+ const offset = this.getPageOffset(pageIndex);
- var x = scrollLeft - offset.left + parseInt(elementWidth / 2, 10);
+ const x = scrollLeft - offset.left + parseInt(elementWidth / 2, 10);
- var scrollTop = viewport.top;
- var elementHeight = viewport.bottom - viewport.top;
+ const scrollTop = viewport.top;
+ const elementHeight = viewport.bottom - viewport.top;
- var y = scrollTop - offset.top + parseInt(elementHeight / 2, 10);
+ const y = scrollTop - offset.top + parseInt(elementHeight / 2, 10);
- return {
- x: x,
- y: y
- };
-};
+ return {
+ x: x,
+ y: y
+ };
+ }
+}
-function getPageRegionFromPageInfo(page)
+function getPageRegionFromPageInfo (page)
{
- var top = page.groupOffset.top + page.group.region.top;
- var bottom = top + page.dimensions.height;
- var left = page.groupOffset.left + page.group.region.left;
- var right = left + page.dimensions.width;
+ const top = page.groupOffset.top + page.group.region.top;
+ const bottom = top + page.dimensions.height;
+ const left = page.groupOffset.left + page.group.region.left;
+ const right = left + page.dimensions.width;
return {
top: top,
@@ -140,14 +146,12 @@ function getPageRegionFromPageInfo(page)
};
}
-function getPageLookup(pageGroups)
+function getPageLookup (pageGroups)
{
- var pageLookup = {};
+ const pageLookup = {};
- pageGroups.forEach(function (group)
- {
- group.pages.forEach(function (page)
- {
+ pageGroups.forEach(group => {
+ group.pages.forEach(page => {
pageLookup[page.index] = {
index: page.index,
group: group,
@@ -160,28 +164,27 @@ function getPageLookup(pageGroups)
return pageLookup;
}
-function getComputedLayout(config, zoomLevel)
+function getComputedLayout (config, zoomLevel)
{
- var scaledLayouts = zoomLevel === null ? config.pageLayouts : getScaledPageLayouts(config, zoomLevel);
+ const scaledLayouts = zoomLevel === null ? config.pageLayouts : getScaledPageLayouts(config, zoomLevel);
- var documentSecondaryExtent = getExtentAlongSecondaryAxis(config, scaledLayouts);
+ const documentSecondaryExtent = getExtentAlongSecondaryAxis(config, scaledLayouts);
// The current position in the document along the primary axis
- var primaryDocPosition = config.verticallyOriented ?
+ let primaryDocPosition = config.verticallyOriented ?
config.padding.document.top :
config.padding.document.left;
- var pageGroups = [];
+ const pageGroups = [];
// TODO: Use bottom, right as well
- var pagePadding = {
+ const pagePadding = {
top: config.padding.page.top,
left: config.padding.page.left
};
- scaledLayouts.forEach(function (layout, index)
- {
- var top, left;
+ scaledLayouts.forEach((layout, index) => {
+ let top, left;
if (config.verticallyOriented)
{
@@ -194,7 +197,7 @@ function getComputedLayout(config, zoomLevel)
left = primaryDocPosition;
}
- var region = {
+ const region = {
top: top,
bottom: top + pagePadding.top + layout.dimensions.height,
left: left,
@@ -212,7 +215,7 @@ function getComputedLayout(config, zoomLevel)
primaryDocPosition = config.verticallyOriented ? region.bottom : region.right;
});
- var height, width;
+ let height, width;
if (config.verticallyOriented)
{
@@ -234,30 +237,27 @@ function getComputedLayout(config, zoomLevel)
};
}
-function getScaledPageLayouts(config, zoomLevel)
+function getScaledPageLayouts (config, zoomLevel)
{
- var scaleRatio = Math.pow(2, zoomLevel - config.maxZoomLevel);
+ const scaleRatio = Math.pow(2, zoomLevel - config.maxZoomLevel);
- return config.pageLayouts.map(function (group)
- {
- return {
- dimensions: scaleDimensions(group.dimensions, scaleRatio),
- pages: group.pages.map(function (page)
- {
- return {
- index: page.index,
- groupOffset: {
- top: Math.floor(page.groupOffset.top * scaleRatio),
- left: Math.floor(page.groupOffset.left * scaleRatio)
- },
- dimensions: scaleDimensions(page.dimensions, scaleRatio)
- };
- })
- };
- });
+ return config.pageLayouts.map(group => ({
+ dimensions: scaleDimensions(group.dimensions, scaleRatio),
+
+ pages: group.pages.map(page => ({
+ index: page.index,
+
+ groupOffset: {
+ top: Math.floor(page.groupOffset.top * scaleRatio),
+ left: Math.floor(page.groupOffset.left * scaleRatio)
+ },
+
+ dimensions: scaleDimensions(page.dimensions, scaleRatio)
+ }))
+ }));
}
-function scaleDimensions(dimensions, scaleRatio)
+function scaleDimensions (dimensions, scaleRatio)
{
return {
height: Math.floor(dimensions.height * scaleRatio),
@@ -265,11 +265,11 @@ function scaleDimensions(dimensions, scaleRatio)
};
}
-function getExtentAlongSecondaryAxis(config, scaledLayouts)
+function getExtentAlongSecondaryAxis (config, scaledLayouts)
{
// Get the extent of the document along the secondary axis
- var secondaryDim, secondaryPadding;
- var docPadding = config.padding.document;
+ let secondaryDim, secondaryPadding;
+ const docPadding = config.padding.document;
if (config.verticallyOriented)
{
@@ -282,8 +282,5 @@ function getExtentAlongSecondaryAxis(config, scaledLayouts)
secondaryPadding = docPadding.top + docPadding.bottom;
}
- return secondaryPadding + scaledLayouts.reduce(function (maxDim, layout)
- {
- return Math.max(layout.dimensions[secondaryDim], maxDim);
- }, 0);
+ return secondaryPadding + scaledLayouts.reduce((maxDim, layout) => Math.max(layout.dimensions[secondaryDim], maxDim), 0);
}
diff --git a/source/js/exceptions.js b/source/js/exceptions.js
new file mode 100644
index 00000000..071852b7
--- /dev/null
+++ b/source/js/exceptions.js
@@ -0,0 +1,26 @@
+export function DivaParentElementNotFoundException (message)
+{
+ this.name = "DivaParentElementNotFoundException";
+ this.message = message;
+ this.stack = (new Error()).stack;
+}
+
+DivaParentElementNotFoundException.prototype = new Error();
+
+export function NotAnIIIFManifestException (message)
+{
+ this.name = "NotAnIIIFManifestException";
+ this.message = message;
+ this.stack = (new Error()).stack;
+}
+
+NotAnIIIFManifestException.prototype = new Error();
+
+export function ObjectDataNotSuppliedException (message)
+{
+ this.name = "ObjectDataNotSuppliedException";
+ this.message = message;
+ this.stack = (new Error()).stack;
+}
+
+ObjectDataNotSuppliedException.prototype = new Error();
diff --git a/source/js/gesture-events.js b/source/js/gesture-events.js
index 3bc8800d..3a3b1776 100644
--- a/source/js/gesture-events.js
+++ b/source/js/gesture-events.js
@@ -1,17 +1,16 @@
-module.exports = {
- onDoubleClick: onDoubleClick,
- onPinch: onPinch,
- onDoubleTap: onDoubleTap
+export default {
+ onDoubleClick,
+ onPinch,
+ onDoubleTap
};
-var DOUBLE_CLICK_TIMEOUT = 500;
-
-var DOUBLE_TAP_DISTANCE_THRESHOLD = 50;
-var DOUBLE_TAP_TIMEOUT = 250;
+const DOUBLE_CLICK_TIMEOUT = 500;
+const DOUBLE_TAP_DISTANCE_THRESHOLD = 50;
+const DOUBLE_TAP_TIMEOUT = 250;
function onDoubleClick(elem, callback)
{
- elem.on('dblclick', function (event)
+ elem.addEventListener('dblclick', function (event)
{
if (!event.ctrlKey)
{
@@ -21,9 +20,9 @@ function onDoubleClick(elem, callback)
// Handle the control key for macs (in conjunction with double-clicking)
// FIXME: Does a click get handled with ctrl pressed on non-Macs?
- var tracker = createDoubleEventTracker(DOUBLE_CLICK_TIMEOUT);
+ const tracker = createDoubleEventTracker(DOUBLE_CLICK_TIMEOUT);
- elem.on('contextmenu', function (event)
+ elem.addEventListener('contextmenu', function (event)
{
event.preventDefault();
@@ -44,9 +43,9 @@ function onDoubleClick(elem, callback)
function onPinch(elem, callback)
{
- var startDistance = 0;
+ let startDistance = 0;
- elem.on('touchstart', function(event)
+ elem.addEventListener('touchstart', function (event)
{
// Prevent mouse event from firing
event.preventDefault();
@@ -62,27 +61,27 @@ function onPinch(elem, callback)
}
});
- elem.on('touchmove', function(event)
+ elem.addEventListener('touchmove', function(event)
{
// Prevent mouse event from firing
event.preventDefault();
if (event.originalEvent.touches.length === 2)
{
- var touches = event.originalEvent.touches;
+ const touches = event.originalEvent.touches;
- var moveDistance = distance(
+ const moveDistance = distance(
touches[0].clientX,
touches[0].clientY,
touches[1].clientX,
touches[1].clientY
);
- var zoomDelta = moveDistance - startDistance;
+ const zoomDelta = moveDistance - startDistance;
if (Math.abs(zoomDelta) > 0)
{
- var touchCenter = {
+ const touchCenter = {
pageX: (touches[0].clientX + touches[1].clientX) / 2,
pageY: (touches[0].clientY + touches[1].clientY) / 2
};
@@ -95,10 +94,10 @@ function onPinch(elem, callback)
function onDoubleTap(elem, callback)
{
- var tracker = createDoubleEventTracker(DOUBLE_TAP_TIMEOUT);
- var firstTap = null;
+ const tracker = createDoubleEventTracker(DOUBLE_TAP_TIMEOUT);
+ let firstTap = null;
- elem.on('touchend', function (event)
+ elem.addEventListener('touchend', (event) =>
{
// Prevent mouse event from firing
event.preventDefault();
@@ -108,13 +107,13 @@ function onDoubleTap(elem, callback)
tracker.reset();
// Doubletap has occurred
- var secondTap = {
+ const secondTap = {
pageX: event.originalEvent.changedTouches[0].clientX,
pageY: event.originalEvent.changedTouches[0].clientY
};
// If first tap is close to second tap (prevents interference with scale event)
- var tapDistance = distance(firstTap.pageX, firstTap.pageY, secondTap.pageX, secondTap.pageY);
+ const tapDistance = distance(firstTap.pageX, firstTap.pageY, secondTap.pageX, secondTap.pageY);
// TODO: Could give something higher-level than secondTap to callback
if (tapDistance < DOUBLE_TAP_DISTANCE_THRESHOLD)
@@ -145,11 +144,11 @@ function distance(x1, y1, x2, y2)
// during a a given duration
function createDoubleEventTracker(timeoutDuration)
{
- var triggered = false;
- var timeoutId = null;
+ let triggered = false;
+ let timeoutId = null;
return {
- trigger: function ()
+ trigger()
{
triggered = true;
resetTimeout();
@@ -159,11 +158,11 @@ function createDoubleEventTracker(timeoutDuration)
timeoutId = null;
}, timeoutDuration);
},
- isTriggered: function ()
+ isTriggered()
{
return triggered;
},
- reset: function ()
+ reset()
{
triggered = false;
resetTimeout();
@@ -182,7 +181,7 @@ function createDoubleEventTracker(timeoutDuration)
function getRelativeOffset(elem, pageCoords)
{
- var bounds = elem.getBoundingClientRect();
+ const bounds = elem.getBoundingClientRect();
return {
left: pageCoords.pageX - bounds.left,
diff --git a/source/js/grid-handler.js b/source/js/grid-handler.js
index 83fbff95..edb17a69 100644
--- a/source/js/grid-handler.js
+++ b/source/js/grid-handler.js
@@ -1,106 +1,122 @@
-var maxBy = require('lodash.maxby');
+import maxBy from 'lodash.maxby';
-module.exports = GridHandler;
-
-function GridHandler(viewerCore)
-{
- this._viewerCore = viewerCore;
-}
-
-// USER EVENTS
-GridHandler.prototype.onDoubleClick = function (event, coords)
-{
- var position = this._viewerCore.getPagePositionAtViewportOffset(coords);
-
- var layout = this._viewerCore.getCurrentLayout();
- var viewport = this._viewerCore.getViewport();
- var pageToViewportCenterOffset = layout.getPageToViewportCenterOffset(position.anchorPage, viewport);
-
- this._viewerCore.reload({
- inGrid: false,
- goDirectlyTo: position.anchorPage,
- horizontalOffset: pageToViewportCenterOffset.x + position.offset.left,
- verticalOffset: pageToViewportCenterOffset.y + position.offset.top
- });
-};
-
-GridHandler.prototype.onPinch = function ()
+export default class GridHandler
{
- this._viewerCore.reload({ inGrid: false });
-};
-
-// VIEW EVENTS
-GridHandler.prototype.onViewWillLoad = function ()
-{
- // FIXME(wabain): Should something happen here?
- /* No-op */
-};
-
-GridHandler.prototype.onViewDidLoad = function ()
-{
- // FIXME(wabain): Should something happen here?
- /* No-op */
-};
-
-GridHandler.prototype.onViewDidUpdate = function (renderedPages, targetPage)
-{
- // return early if there are no rendered pages in view.
- if (renderedPages.length === 0) return;
-
- if (targetPage !== null)
+ constructor (viewerCore)
{
- this._viewerCore.setCurrentPage(targetPage);
- return;
+ this._viewerCore = viewerCore;
}
- // Select the current page from the first row if it is fully visible, or from
- // the second row if it is fully visible, or from the centermost row otherwise.
- // If the current page is in that group then don't change it. Otherwise, set
- // the current page to the group's first page.
-
- var layout = this._viewerCore.getCurrentLayout();
- var groups = [];
-
- renderedPages.forEach(function (pageIndex)
+ // USER EVENTS
+ onDoubleClick (event, coords)
{
- var group = layout.getPageInfo(pageIndex).group;
- if (groups.length === 0 || group !== groups[groups.length - 1])
- groups.push(group);
- });
-
- var viewport = this._viewerCore.getViewport();
- var chosenGroup;
+ const position = this._viewerCore.getPagePositionAtViewportOffset(coords);
+
+ const layout = this._viewerCore.getCurrentLayout();
+ const viewport = this._viewerCore.getViewport();
+ const pageToViewportCenterOffset = layout.getPageToViewportCenterOffset(position.anchorPage, viewport);
+
+ this._viewerCore.reload({
+ inGrid: false,
+ goDirectlyTo: position.anchorPage,
+ horizontalOffset: pageToViewportCenterOffset.x + position.offset.left,
+ verticalOffset: pageToViewportCenterOffset.y + position.offset.top
+ });
+ }
- if (groups.length === 1 || groups[0].region.top >= viewport.top)
- chosenGroup = groups[0];
- else if (groups[1].region.bottom <= viewport.bottom)
- chosenGroup = groups[1];
- else
- chosenGroup = getCentermostGroup(groups, viewport);
+ onPinch ()
+ {
+ this._viewerCore.reload({inGrid: false});
+ }
- var currentPage = this._viewerCore.getSettings().currentPageIndex;
+ // VIEW EVENTS
+ onViewWillLoad ()
+ {
+ // FIXME(wabain): Should something happen here?
+ /* No-op */
+ }
- var hasCurrentPage = chosenGroup.pages.some(function (page)
+ onViewDidLoad ()
{
- return page.index === currentPage;
- });
+ // FIXME(wabain): Should something happen here?
+ /* No-op */
+ }
- if (!hasCurrentPage)
- this._viewerCore.setCurrentPage(chosenGroup.pages[0].index);
-};
+ onViewDidUpdate (renderedPages, targetPage)
+ {
+ // return early if there are no rendered pages in view.
+ if (renderedPages.length === 0) return;
+
+ // calculate the visible pages from the rendered pages
+ let temp = this._viewerCore.viewerState.viewport.intersectionTolerance;
+ // without setting to 0, isPageVisible returns true for pages out of viewport by intersectionTolerance
+ this._viewerCore.viewerState.viewport.intersectionTolerance = 0;
+ let visiblePages = renderedPages.filter(index => this._viewerCore.viewerState.renderer.isPageVisible(index));
+ // reset back to original value after getting true visible pages
+ this._viewerCore.viewerState.viewport.intersectionTolerance = temp;
+
+ if (targetPage !== null)
+ {
+ this._viewerCore.setCurrentPages(targetPage, visiblePages);
+ return;
+ }
+
+ // Select the current page from the first row if it is fully visible, or from
+ // the second row if it is fully visible, or from the centermost row otherwise.
+ // If the current page is in that group then don't change it. Otherwise, set
+ // the current page to the group's first page.
+
+ const layout = this._viewerCore.getCurrentLayout();
+ const groups = [];
+
+ renderedPages.forEach(pageIndex =>
+ {
+ const group = layout.getPageInfo(pageIndex).group;
+ if (groups.length === 0 || group !== groups[groups.length - 1])
+ {
+ groups.push(group);
+ }
+ });
+
+ const viewport = this._viewerCore.getViewport();
+ let chosenGroup;
+
+ if (groups.length === 1 || groups[0].region.top >= viewport.top)
+ {
+ chosenGroup = groups[0];
+ }
+ else if (groups[1].region.bottom <= viewport.bottom)
+ {
+ chosenGroup = groups[1];
+ }
+ else
+ {
+ chosenGroup = getCentermostGroup(groups, viewport);
+ }
+
+ const currentPage = this._viewerCore.getSettings().activePageIndex;
+
+ const hasCurrentPage = chosenGroup.pages.some(page => page.index === currentPage);
+
+ if (!hasCurrentPage)
+ {
+ this._viewerCore.setCurrentPages(chosenGroup.pages[0].index, visiblePages);
+ }
+ }
-GridHandler.prototype.destroy = function ()
-{
- // No-op
-};
+ destroy ()
+ {
+ // No-op
+ }
+}
-function getCentermostGroup(groups, viewport)
+function getCentermostGroup (groups, viewport)
{
- var viewportMiddle = viewport.top + viewport.height / 2;
+ const viewportMiddle = viewport.top + viewport.height / 2;
- return maxBy(groups, function (group)
+ return maxBy(groups, group =>
{
- var groupMiddle = group.region.top + group.dimensions.height / 2;
+ const groupMiddle = group.region.top + group.dimensions.height / 2;
return -Math.abs(viewportMiddle - groupMiddle);
});
}
diff --git a/source/js/iiif-source-adapter.js b/source/js/iiif-source-adapter.js
new file mode 100644
index 00000000..997da5e2
--- /dev/null
+++ b/source/js/iiif-source-adapter.js
@@ -0,0 +1,63 @@
+export default class IIIFSourceAdapter
+{
+ getPageImageURL (manifest, pageIndex, size)
+ {
+ let dimens;
+
+ if (!size || (size.width == null && size.height == null))
+ {
+ dimens = 'full';
+ }
+ else
+ {
+ dimens = (size.width == null ? '' : size.width) + ',' + (size.height == null ? '' : size.height);
+ }
+
+ const page = manifest.pages[pageIndex];
+ const quality = (page.api > 1.1) ? 'default' : 'native';
+
+ return encodeURI(page.url + 'full/' + dimens + '/0/' + quality + '.jpg');
+ }
+
+ getTileImageURL (manifest, pageIndex, params)
+ {
+ const page = manifest.pages[pageIndex];
+
+ let height, width;
+
+ if (params.row === params.rowCount - 1)
+ {
+ height = page.d[params.zoomLevel].h - (params.rowCount - 1) * params.tileDimensions.height;
+ }
+ else
+ {
+ height = params.tileDimensions.height;
+ }
+
+ if (params.col === params.colCount - 1)
+ {
+ width = page.d[params.zoomLevel].w - (params.colCount - 1) * params.tileDimensions.width;
+ }
+ else
+ {
+ width = params.tileDimensions.width;
+ }
+
+ const zoomDifference = Math.pow(2, manifest.maxZoom - params.zoomLevel);
+
+ let x = params.col * params.tileDimensions.width * zoomDifference;
+ let y = params.row * params.tileDimensions.height * zoomDifference;
+
+ if (page.hasOwnProperty('xoffset'))
+ {
+ x += page.xoffset;
+ y += page.yoffset;
+ }
+
+ const region = [x, y, width * zoomDifference, height * zoomDifference].join(',');
+
+ const quality = (page.api > 1.1) ? 'default' : 'native';
+
+ return encodeURI(page.url + region + '/' + width + ',' + height + '/0/' + quality + '.jpg');
+ }
+}
diff --git a/source/js/image-cache.js b/source/js/image-cache.js
index ac0af410..c6862f11 100644
--- a/source/js/image-cache.js
+++ b/source/js/image-cache.js
@@ -1,115 +1,113 @@
-'use strict';
-
-var debug = require('debug')('diva:ImageCache');
-
-module.exports = ImageCache;
+const debug = require('debug')('diva:ImageCache');
/* FIXME(wabain): The caching strategy here is completely
* arbitrary and the implementation isn't especially efficient.
*/
+const DEFAULT_MAX_KEYS = 100;
-var DEFAULT_MAX_KEYS = 100;
-
-function ImageCache(options)
+export default class ImageCache
{
- options = options || { maxKeys: DEFAULT_MAX_KEYS };
- this.maxKeys = options.maxKeys || DEFAULT_MAX_KEYS;
-
- this._held = {};
- this._urls = {};
- this._lru = [];
-}
+ constructor (options)
+ {
+ options = options || { maxKeys: DEFAULT_MAX_KEYS };
+ this.maxKeys = options.maxKeys || DEFAULT_MAX_KEYS;
-ImageCache.prototype.get = function (url)
-{
- var record = this._urls[url];
- return record ? record.img : null;
-};
+ this._held = {};
+ this._urls = {};
+ this._lru = [];
+ }
-ImageCache.prototype.has = function (url)
-{
- return !!this._urls[url];
-};
+ get (url)
+ {
+ const record = this._urls[url];
+ return record ? record.img : null;
+ }
-ImageCache.prototype.put = function (url, img)
-{
- var record = this._urls[url];
- if (record)
+ has (url)
{
- // FIXME: Does this make sense for this use case?
- record.img = img;
- this._promote(record);
+ return !!this._urls[url];
}
- else
+
+ put (url, img)
{
- record = {
- img: img,
- url: url
- };
+ let record = this._urls[url];
+ if (record)
+ {
+ // FIXME: Does this make sense for this use case?
+ record.img = img;
+ this._promote(record);
+ }
+ else
+ {
+ record = {
+ img: img,
+ url: url
+ };
+
+ this._urls[url] = record;
+ this._tryEvict(1);
+ this._lru.unshift(record);
+ }
+ }
- this._urls[url] = record;
- this._tryEvict(1);
+ _promote (record)
+ {
+ const index = this._lru.indexOf(record);
+ this._lru.splice(index, 1);
this._lru.unshift(record);
}
-};
-ImageCache.prototype._promote = function (record)
-{
- var index = this._lru.indexOf(record);
- this._lru.splice(index, 1);
- this._lru.unshift(record);
-};
+ _tryEvict (extraCapacity)
+ {
+ const allowedEntryCount = this.maxKeys - extraCapacity;
-ImageCache.prototype._tryEvict = function (extraCapacity)
-{
- var allowedEntryCount = this.maxKeys - extraCapacity;
+ if (this._lru.length <= allowedEntryCount)
+ return;
- if (this._lru.length <= allowedEntryCount)
- return;
+ let evictionIndex = this._lru.length - 1;
- var evictionIndex = this._lru.length - 1;
+ for (;;)
+ {
+ const target = this._lru[evictionIndex];
- for (;;)
- {
- var target = this._lru[evictionIndex];
+ if (!this._held[target.url])
+ {
+ debug('Evicting image %s', target.url);
+ this._lru.splice(evictionIndex, 1);
+ delete this._urls[target.url];
- if (!this._held[target.url])
- {
- debug('Evicting image %s', target.url);
- this._lru.splice(evictionIndex, 1);
- delete this._urls[target.url];
+ if (this._lru.length <= allowedEntryCount)
+ break;
+ }
- if (this._lru.length <= allowedEntryCount)
- break;
- }
+ if (evictionIndex === 0)
+ {
+ /* istanbul ignore next */
+ debug.enabled && debug('Cache overfull by %s (all entries are being held)',
+ this._lru.length - allowedEntryCount);
- if (evictionIndex === 0)
- {
- /* istanbul ignore next */
- debug.enabled && debug('Cache overfull by %s (all entries are being held)',
- this._lru.length - allowedEntryCount);
+ break;
+ }
- break;
+ evictionIndex--;
}
-
- evictionIndex--;
}
-};
-ImageCache.prototype.acquire = function (url)
-{
- this._held[url] = (this._held[url] || 0) + 1;
- this._promote(this._urls[url]);
-};
+ acquire (url)
+ {
+ this._held[url] = (this._held[url] || 0) + 1;
+ this._promote(this._urls[url]);
+ }
-ImageCache.prototype.release = function (url)
-{
- var count = this._held[url];
+ release (url)
+ {
+ const count = this._held[url];
- if (count > 1)
- this._held[url]--;
- else
- delete this._held[url];
+ if (count > 1)
+ this._held[url]--;
+ else
+ delete this._held[url];
- this._tryEvict(0);
-};
+ this._tryEvict(0);
+ }
+}
diff --git a/source/js/image-manifest.js b/source/js/image-manifest.js
index 5ff064b9..8fe2a2d7 100644
--- a/source/js/image-manifest.js
+++ b/source/js/image-manifest.js
@@ -1,143 +1,140 @@
-/* jshint unused: true */
+import parseIIIFManifest from './parse-iiif-manifest';
+import IIIFSourceAdapter from "./iiif-source-adapter";
-var parseIIIFManifest = require('./parse-iiif-manifest');
-module.exports = ImageManifest;
-
-function ImageManifest(data, urlAdapter)
+export default class ImageManifest
{
- // Save all the data we need
- this.pages = data.pgs;
- this.maxZoom = data.max_zoom;
- this.maxRatio = data.dims.max_ratio;
- this.minRatio = data.dims.min_ratio;
- this.itemTitle = data.item_title;
-
- // Only given for IIIF manifests
- this.paged = !!data.paged;
-
- // These are arrays, the index corresponding to the zoom level
- this._maxWidths = data.dims.max_w;
- this._maxHeights = data.dims.max_h;
- this._averageWidths = data.dims.a_wid;
- this._averageHeights = data.dims.a_hei;
- this._totalHeights = data.dims.t_hei;
- this._totalWidths = data.dims.t_wid;
-
- this._urlAdapter = urlAdapter;
-}
-
-ImageManifest.fromIIIF = function (iiifManifest)
-{
- var data = parseIIIFManifest(iiifManifest);
- return new ImageManifest(data, new IIIFSourceAdapter());
-};
+ constructor (data, urlAdapter)
+ {
+ // Save all the data we need
+ this.pages = data.pgs;
+ this.maxZoom = data.max_zoom;
+ this.maxRatio = data.dims.max_ratio;
+ this.minRatio = data.dims.min_ratio;
+ this.itemTitle = data.item_title;
+ this.metadata = data.metadata;
+
+ // Only given for IIIF manifests
+ this.paged = !!data.paged;
+
+ // These are arrays, the index corresponding to the zoom level
+ this._maxWidths = data.dims.max_w;
+ this._maxHeights = data.dims.max_h;
+ this._averageWidths = data.dims.a_wid;
+ this._averageHeights = data.dims.a_hei;
+ this._totalHeights = data.dims.t_hei;
+ this._totalWidths = data.dims.t_wid;
+
+ this._urlAdapter = urlAdapter;
+ }
-ImageManifest.fromLegacyManifest = function (data, config)
-{
- // For IIP manifests, use the page number (indexed starting from 1) as a label for each page
- for (var i = 0, len = data.pgs.length; i < len; i++)
- data.pgs[i].l = (i + 1).toString();
+ static fromIIIF (iiifManifest)
+ {
+ const data = parseIIIFManifest(iiifManifest);
+ return new ImageManifest(data, new IIIFSourceAdapter());
+ }
- return new ImageManifest(data, new LegacyManifestSourceAdapter(config));
-};
+ isPageValid (pageIndex, showNonPagedPages)
+ {
+ if (!showNonPagedPages && this.paged && !this.pages[pageIndex].paged)
+ {
+ return false;
+ }
-ImageManifest.prototype.isPageValid = function (pageIndex, showNonPagedPages)
-{
- if (!showNonPagedPages && this.paged && !this.pages[pageIndex].paged)
- return false;
+ return pageIndex >= 0 && pageIndex < this.pages.length;
+ }
- return pageIndex >= 0 && pageIndex < this.pages.length;
-};
+ getMaxPageDimensions (pageIndex)
+ {
+ const maxDims = this.pages[pageIndex].d[this.maxZoom];
-ImageManifest.prototype.getMaxPageDimensions = function (pageIndex)
-{
- var maxDims = this.pages[pageIndex].d[this.maxZoom];
+ return {
+ height: maxDims.h,
+ width: maxDims.w
+ };
+ }
- return {
- height: maxDims.h,
- width: maxDims.w
- };
-};
+ getPageDimensionsAtZoomLevel (pageIndex, zoomLevel)
+ {
+ const maxDims = this.pages[pageIndex].d[this.maxZoom];
-ImageManifest.prototype.getPageDimensionsAtZoomLevel = function (pageIndex, zoomLevel)
-{
- var maxDims = this.pages[pageIndex].d[this.maxZoom];
+ const scaleRatio = getScaleRatio(this.maxZoom, zoomLevel);
- var scaleRatio = getScaleRatio(this.maxZoom, zoomLevel);
+ return {
+ height: maxDims.h * scaleRatio,
+ width: maxDims.w * scaleRatio
+ };
+ }
- return {
- height: maxDims.h * scaleRatio,
- width: maxDims.w * scaleRatio
- };
-};
-
-/**
- * Returns a URL for the image of the given page. The optional size
- * parameter supports setting the image width or height (default is
- * full-sized).
- */
-ImageManifest.prototype.getPageImageURL = function (pageIndex, size)
-{
- return this._urlAdapter.getPageImageURL(this, pageIndex, size);
-};
+ /**
+ * Returns a URL for the image of the given page. The optional size
+ * parameter supports setting the image width or height (default is
+ * full-sized).
+ */
+ getPageImageURL (pageIndex, size)
+ {
+ return this._urlAdapter.getPageImageURL(this, pageIndex, size);
+ }
-/**
- * Return an array of tile objects for the specified page and integer zoom level
- */
-ImageManifest.prototype.getPageImageTiles = function (pageIndex, zoomLevel, tileDimensions)
-{
- var page = this.pages[pageIndex];
+ /**
+ * Return an array of tile objects for the specified page and integer zoom level
+ */
+ getPageImageTiles (pageIndex, zoomLevel, tileDimensions)
+ {
+ const page = this.pages[pageIndex];
- if (!isFinite(zoomLevel) || zoomLevel % 1 !== 0)
- throw new TypeError('Zoom level must be an integer: ' + zoomLevel);
+ if (!isFinite(zoomLevel) || zoomLevel % 1 !== 0)
+ {
+ throw new TypeError('Zoom level must be an integer: ' + zoomLevel);
+ }
- var rows = Math.ceil(page.d[zoomLevel].h / tileDimensions.height);
- var cols = Math.ceil(page.d[zoomLevel].w / tileDimensions.width);
+ const rows = Math.ceil(page.d[zoomLevel].h / tileDimensions.height);
+ const cols = Math.ceil(page.d[zoomLevel].w / tileDimensions.width);
- var tiles = [];
+ const tiles = [];
- var row, col, url;
+ let row, col, url;
- for (row = 0; row < rows; row++)
- {
- for (col = 0; col < cols; col++)
+ for (row = 0; row < rows; row++)
{
- url = this._urlAdapter.getTileImageURL(this, pageIndex, {
- row: row,
- col: col,
- rowCount: rows,
- colCount: cols,
- zoomLevel: zoomLevel,
- tileDimensions: tileDimensions
- });
-
- // FIXME: Dimensions should account for partial tiles (e.g. the
- // last row and column in a tiled image)
- tiles.push({
- row: row,
- col: col,
- zoomLevel: zoomLevel,
- dimensions: {
- height: tileDimensions.height,
- width: tileDimensions.width
- },
- offset: {
- top: row * tileDimensions.height,
- left: col * tileDimensions.width
- },
- url: url
- });
+ for (col = 0; col < cols; col++)
+ {
+ url = this._urlAdapter.getTileImageURL(this, pageIndex, {
+ row: row,
+ col: col,
+ rowCount: rows,
+ colCount: cols,
+ zoomLevel: zoomLevel,
+ tileDimensions: tileDimensions
+ });
+
+ // FIXME: Dimensions should account for partial tiles (e.g. the
+ // last row and column in a tiled image)
+ tiles.push({
+ row: row,
+ col: col,
+ zoomLevel: zoomLevel,
+ dimensions: {
+ height: tileDimensions.height,
+ width: tileDimensions.width
+ },
+ offset: {
+ top: row * tileDimensions.height,
+ left: col * tileDimensions.width
+ },
+ url: url
+ });
+ }
}
- }
- return {
- zoomLevel: zoomLevel,
- rows: rows,
- cols: cols,
- tiles: tiles
- };
-};
+ return {
+ zoomLevel: zoomLevel,
+ rows: rows,
+ cols: cols,
+ tiles: tiles
+ };
+ }
+}
ImageManifest.prototype.getMaxWidth = zoomedPropertyGetter('_maxWidths');
ImageManifest.prototype.getMaxHeight = zoomedPropertyGetter('_maxHeights');
@@ -146,7 +143,7 @@ ImageManifest.prototype.getAverageHeight = zoomedPropertyGetter('_averageHeights
ImageManifest.prototype.getTotalWidth = zoomedPropertyGetter('_totalWidths');
ImageManifest.prototype.getTotalHeight = zoomedPropertyGetter('_totalHeights');
-function zoomedPropertyGetter(privateName)
+function zoomedPropertyGetter (privateName)
{
return function (zoomLevel)
{
@@ -154,95 +151,7 @@ function zoomedPropertyGetter(privateName)
};
}
-function getScaleRatio(sourceZoomLevel, targetZoomLevel)
+function getScaleRatio (sourceZoomLevel, targetZoomLevel)
{
return 1 / Math.pow(2, sourceZoomLevel - targetZoomLevel);
}
-
-function IIIFSourceAdapter()
-{
- // No-op
-}
-
-IIIFSourceAdapter.prototype.getPageImageURL = function (manifest, pageIndex, size)
-{
- var dimens;
-
- if (!size || (size.width == null && size.height == null))
- dimens = 'full';
- else
- dimens = (size.width == null ? '' : size.width) + ',' + (size.height == null ? '' : size.height);
-
- var page = manifest.pages[pageIndex];
- var quality = (page.api > 1.1) ? 'default' : 'native';
-
- return encodeURI(page.url + 'full/' + dimens + '/0/' + quality + '.jpg');
-};
-
-IIIFSourceAdapter.prototype.getTileImageURL = function (manifest, pageIndex, params)
-{
- var page = manifest.pages[pageIndex];
-
- var height, width;
-
- if (params.row === params.rowCount - 1)
- height = page.d[params.zoomLevel].h - (params.rowCount - 1) * params.tileDimensions.height;
- else
- height = params.tileDimensions.height;
-
- if (params.col === params.colCount - 1)
- width = page.d[params.zoomLevel].w - (params.colCount - 1) * params.tileDimensions.width;
- else
- width = params.tileDimensions.width;
-
- var zoomDifference = Math.pow(2, manifest.maxZoom - params.zoomLevel);
-
- var x = params.col * params.tileDimensions.width * zoomDifference;
- var y = params.row * params.tileDimensions.height * zoomDifference;
-
- if (page.hasOwnProperty('xoffset'))
- {
- x += page.xoffset;
- y += page.yoffset;
- }
-
- var region = [x, y, width * zoomDifference, height * zoomDifference].join(',');
-
- var quality = (page.api > 1.1) ? 'default' : 'native';
-
- return encodeURI(page.url + region + '/' + width + ',' + height + '/0/' + quality + '.jpg');
-};
-
-function LegacyManifestSourceAdapter(config)
-{
- this._config = config;
-}
-
-LegacyManifestSourceAdapter.prototype.getPageImageURL = function (manifest, pageIndex, size)
-{
- // Without width or height specified, IIPImage defaults to full-size
- var dimens = '';
-
- if (size)
- {
- if (size.width != null)
- dimens += '&WID=' + size.width;
-
- if (size.height != null)
- dimens += '&HEI=' + size.height;
- }
-
- var filename = manifest.pages[pageIndex].f;
-
- return this._config.iipServerURL + "?FIF=" + this._config.imageDir + '/' + filename + dimens + '&CVT=JPEG';
-};
-
-LegacyManifestSourceAdapter.prototype.getTileImageURL = function (manifest, pageIndex, params)
-{
- var page = manifest.pages[pageIndex];
- var requestedZoomLevel = params.zoomLevel + page.m - manifest.maxZoom;
- var index = (params.row * params.colCount) + params.col;
- var jtl = requestedZoomLevel + ',' + index;
-
- return encodeURI(this._config.iipServerURL + "?FIF=" + this._config.imageDir + '/' + page.f + '&JTL=' + jtl + '&CVT=JPEG');
-};
diff --git a/source/js/image-request-handler.js b/source/js/image-request-handler.js
index fa122e40..705c29ae 100644
--- a/source/js/image-request-handler.js
+++ b/source/js/image-request-handler.js
@@ -1,7 +1,4 @@
-var debug = require('debug')('diva:ImageRequestHandler');
-
-module.exports = ImageRequestHandler;
-
+const debug = require('debug')('diva:ImageRequestHandler');
/**
* Handler for the request for an image tile
*
@@ -9,75 +6,77 @@ module.exports = ImageRequestHandler;
* @param callback
* @constructor
*/
-function ImageRequestHandler(options)
+export default class ImageRequestHandler
{
- this._url = options.url;
- this._callback = options.load;
- this._errorCallback = options.error;
- this.timeoutTime = options.timeoutTime || 0;
- this._aborted = this._complete = false;
-
- //Use a timeout to allow the requests to be debounced (as they are in renderer)
- this.timeout = setTimeout(function()
+ constructor (options)
{
- // Initiate the request
- this._image = new Image();
- this._image.crossOrigin = "anonymous";
- this._image.onload = this._handleLoad.bind(this);
- this._image.onerror = this._handleError.bind(this);
- this._image.src = options.url;
+ this._url = options.url;
+ this._callback = options.load;
+ this._errorCallback = options.error;
+ this.timeoutTime = options.timeoutTime || 0;
+ this._aborted = this._complete = false;
- debug('Requesting image %s', options.url);
- }.bind(this), this.timeoutTime);
-}
+ //Use a timeout to allow the requests to be debounced (as they are in renderer)
+ this.timeout = setTimeout(() => {
+ // Initiate the request
+ this._image = new Image();
+ this._image.crossOrigin = "anonymous";
+ this._image.onload = this._handleLoad.bind(this);
+ this._image.onerror = this._handleError.bind(this);
+ this._image.src = options.url;
-ImageRequestHandler.prototype.abort = function ()
-{
- debug('Aborting request to %s', this._url);
-
- clearTimeout(this.timeout);
+ debug('Requesting image %s', options.url);
+ }, this.timeoutTime);
+ }
- // FIXME
- // People on the Internet say that doing this {{should/should not}} abort the request. I believe
- // it corresponds to what the WHATWG HTML spec says should happen when the UA
- // updates the image data if selected source is null.
- //
- // Sources:
- //
- // https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element
- // http://stackoverflow.com/questions/7390888/does-changing-the-src-attribute-of-an-image-stop-the-image-from-downloading
- if (this._image)
+ abort ()
{
- this._image.onload = this._image.onerror = null;
+ debug('Aborting request to %s', this._url);
- this._image.src = '';
- }
+ clearTimeout(this.timeout);
- this._aborted = true;
-};
+ // FIXME
+ // People on the Internet say that doing this {{should/should not}} abort the request. I believe
+ // it corresponds to what the WHATWG HTML spec says should happen when the UA
+ // updates the image data if selected source is null.
+ //
+ // Sources:
+ //
+ // https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element
+ // http://stackoverflow.com/questions/7390888/does-changing-the-src-attribute-of-an-image-stop-the-image-from-downloading
+ if (this._image)
+ {
+ this._image.onload = this._image.onerror = null;
-ImageRequestHandler.prototype._handleLoad = function ()
-{
- if (this._aborted)
- {
- console.error('ImageRequestHandler invoked on cancelled request for ' + this._url);
- return;
+ this._image.src = '';
+ }
+
+ this._aborted = true;
}
- if (this._complete)
+ _handleLoad ()
{
- console.error('ImageRequestHandler invoked on completed request for ' + this._url);
- return;
- }
+ if (this._aborted)
+ {
+ console.error('ImageRequestHandler invoked on cancelled request for ' + this._url);
+ return;
+ }
- this._complete = true;
+ if (this._complete)
+ {
+ console.error('ImageRequestHandler invoked on completed request for ' + this._url);
+ return;
+ }
- debug('Received image %s', this._url);
- this._callback(this._image);
-};
+ this._complete = true;
-ImageRequestHandler.prototype._handleError = function ()
-{
- debug('Failed to load image %s', this._url);
- this._errorCallback(this._image);
-};
+ debug('Received image %s', this._url);
+ this._callback(this._image);
+ }
+
+ _handleError ()
+ {
+ debug('Failed to load image %s', this._url);
+ this._errorCallback(this._image);
+ }
+}
diff --git a/source/js/interpolate-animation.js b/source/js/interpolate-animation.js
index ac1d9b12..e4939ab2 100644
--- a/source/js/interpolate-animation.js
+++ b/source/js/interpolate-animation.js
@@ -1,41 +1,51 @@
-/* global performance */
-
// TODO: requestAnimationFrame fallback
-module.exports = {
- animate: animate,
+export default {
+ animate,
easing: {
- linear: linearEasing
+ linear: linearEasing,
+ cubic: inOutCubicEasing
}
};
-function animate(options)
+let now;
+
+if (typeof performance !== 'undefined' && performance.now)
+{
+ now = () => { return performance.now(); };
+}
+else
+{
+ now = () => { return Date.now(); };
+}
+
+
+function animate (options)
{
- var durationMs = options.duration;
- var parameters = options.parameters;
- var onUpdate = options.onUpdate;
- var onEnd = options.onEnd;
+ const durationMs = options.duration;
+ const parameters = options.parameters;
+ const onUpdate = options.onUpdate;
+ const onEnd = options.onEnd;
// Setup
// Times are in milliseconds from a basically arbitrary start
- var start = now();
- var end = start + durationMs;
+ const start = now();
+ const end = start + durationMs;
- var tweenFns = {};
- var values = {};
- var paramKeys = Object.keys(parameters);
+ const tweenFns = {};
+ const values = {};
+ const paramKeys = Object.keys(parameters);
- paramKeys.forEach(function (key)
- {
- var config = parameters[key];
- tweenFns[key] = interpolate(config.from, config.to, config.easing || linearEasing);
+ paramKeys.forEach(key => {
+ const config = parameters[key];
+ tweenFns[key] = interpolate(config.from, config.to, config.easing || inOutCubicEasing);
});
// Run it!
- var requestId = requestAnimationFrame(update);
+ let requestId = requestAnimationFrame(update);
return {
- cancel: function ()
+ cancel()
{
if (requestId !== null)
{
@@ -49,24 +59,27 @@ function animate(options)
function update()
{
- var current = now();
- var elapsed = Math.min((current - start) / durationMs, 1);
+ const current = now();
+ const elapsed = Math.min((current - start) / durationMs, 1);
updateValues(elapsed);
onUpdate(values);
if (current < end)
+ {
requestId = requestAnimationFrame(update);
+ }
else
+ {
handleAnimationCompletion({
interrupted: false
});
+ }
}
function updateValues(elapsed)
{
- paramKeys.forEach(function (key)
- {
+ paramKeys.forEach(key => {
values[key] = tweenFns[key](elapsed);
});
}
@@ -82,30 +95,28 @@ function animate(options)
function interpolate(start, end, easing)
{
- return function (elapsed)
- {
- return start + (end - start) * easing(elapsed);
- };
+ return (elapsed) => { return start + (end - start) * easing(elapsed); };
}
+/**
+ * Easing functions. inOutCubicEasing is the default, but
+ * others are given for convenience.
+ *
+ **/
function linearEasing(e)
{
return e;
}
-var now;
-
-if (typeof performance !== 'undefined' && performance.now)
+/* jshint ignore:start */
+function inOutQuadEasing (e)
{
- now = function ()
- {
- return performance.now();
- };
+ return e < .5 ? 2 * e * e : -1+(4-2 * e) * e
}
-else
+/* jshint ignore:end */
+
+
+function inOutCubicEasing (t)
{
- now = function ()
- {
- return Date.now();
- };
+ return t < 0.5 ? 4 * t * t * t : ( t - 1 ) * ( 2 * t - 2 ) * ( 2 * t - 2 ) + 1;
}
diff --git a/source/js/page-layouts/book-layout.js b/source/js/page-layouts/book-layout.js
index 2f3db083..232c8e1b 100644
--- a/source/js/page-layouts/book-layout.js
+++ b/source/js/page-layouts/book-layout.js
@@ -1,37 +1,32 @@
-var getPageDimensions = require('./page-dimensions');
+import getPageDimensions from './page-dimensions';
-module.exports = getBookLayoutGroups;
-
-function getBookLayoutGroups(viewerConfig)
+export default function getBookLayoutGroups (viewerConfig)
{
- var groupings = getGroupings(viewerConfig);
+ const groupings = getGroupings(viewerConfig);
- return groupings.map(function (grouping)
- {
- return getGroupLayoutsFromPageGrouping(viewerConfig, grouping);
- });
+ return groupings.map(grouping => getGroupLayoutsFromPageGrouping(viewerConfig, grouping));
}
function getGroupings(viewerConfig)
{
- var manifest = viewerConfig.manifest;
+ const manifest = viewerConfig.manifest;
- var pagesByGroup = [];
- var leftPage = null;
- var nonPagedPages = []; // Pages to display below the current group
+ const pagesByGroup = [];
+ let leftPage = null;
+ let nonPagedPages = []; // Pages to display below the current group
- var _addNonPagedPages = function()
+ const _addNonPagedPages = () =>
{
- for (var i = 0; i < nonPagedPages.length; i++)
+ for (let i = 0, nlen = nonPagedPages.length; i < nlen; i++)
{
pagesByGroup.push([ nonPagedPages[i] ]);
}
nonPagedPages = [];
};
- manifest.pages.forEach(function (page, index)
+ manifest.pages.forEach( (page, index) =>
{
- var pageRecord = {
+ const pageRecord = {
index: index,
dimensions: getPageDimensions(index, manifest),
paged: (!manifest.paged || page.paged)
@@ -75,25 +70,25 @@ function getGroupings(viewerConfig)
function getGroupLayoutsFromPageGrouping(viewerConfig, grouping)
{
- var verticallyOriented = viewerConfig.verticallyOriented;
+ const verticallyOriented = viewerConfig.verticallyOriented;
if (grouping.length === 2)
return getFacingPageGroup(grouping[0], grouping[1], verticallyOriented);
- var page = grouping[0];
- var pageDims = page.dimensions;
+ const page = grouping[0];
+ const pageDims = page.dimensions;
// The first page is placed on its own to the right in vertical orientation.
// NB that this needs to be the page with index 0; if the first page is excluded
// from the layout then this special case shouldn't apply.
// If the page is tagged as 'non-paged', center it horizontally
- var leftOffset;
+ let leftOffset;
if (page.paged)
leftOffset = (page.index === 0 && verticallyOriented) ? pageDims.width : 0;
else
leftOffset = (verticallyOriented) ? pageDims.width / 2 : 0;
- var shouldBeHorizontallyAdjusted =
+ const shouldBeHorizontallyAdjusted =
verticallyOriented && !viewerConfig.manifest.pages[page.index].facingPages;
// We need to left-align the page in vertical orientation, so we double
@@ -116,16 +111,16 @@ function getGroupLayoutsFromPageGrouping(viewerConfig, grouping)
function getFacingPageGroup(leftPage, rightPage, verticallyOriented)
{
- var leftDims = leftPage.dimensions;
- var rightDims = rightPage.dimensions;
+ const leftDims = leftPage.dimensions;
+ const rightDims = rightPage.dimensions;
- var height = Math.max(leftDims.height, rightDims.height);
+ const height = Math.max(leftDims.height, rightDims.height);
- var width, firstLeftOffset, secondLeftOffset;
+ let width, firstLeftOffset, secondLeftOffset;
if (verticallyOriented)
{
- var midWidth = Math.max(leftDims.width, rightDims.width);
+ const midWidth = Math.max(leftDims.width, rightDims.width);
width = midWidth * 2;
diff --git a/source/js/page-layouts/grid-layout.js b/source/js/page-layouts/grid-layout.js
index 42e6ab21..74599737 100644
--- a/source/js/page-layouts/grid-layout.js
+++ b/source/js/page-layouts/grid-layout.js
@@ -1,32 +1,31 @@
-module.exports = getGridLayoutGroups;
-function getGridLayoutGroups(viewerConfig)
+export default function getGridLayoutGroups (viewerConfig)
{
- var viewportWidth = viewerConfig.viewport.width;
- var manifest = viewerConfig.manifest;
- var pagesPerRow = viewerConfig.pagesPerRow;
- var fixedHeightGrid = viewerConfig.fixedHeightGrid;
- var fixedPadding = viewerConfig.fixedPadding;
- var showNonPagedPages = viewerConfig.showNonPagedPages;
+ const viewportWidth = viewerConfig.viewport.width;
+ const manifest = viewerConfig.manifest;
+ const pagesPerRow = viewerConfig.pagesPerRow;
+ const fixedHeightGrid = viewerConfig.fixedHeightGrid;
+ const fixedPadding = viewerConfig.fixedPadding;
+ const showNonPagedPages = viewerConfig.showNonPagedPages;
- var horizontalPadding = fixedPadding * (pagesPerRow + 1);
- var pageWidth = (viewportWidth - horizontalPadding) / pagesPerRow;
- var gridPageWidth = pageWidth;
+ const horizontalPadding = fixedPadding * (pagesPerRow + 1);
+ const pageWidth = (viewportWidth - horizontalPadding) / pagesPerRow;
+ const gridPageWidth = pageWidth;
// Calculate the row height depending on whether we want to fix the width or the height
- var rowHeight = (fixedHeightGrid) ? fixedPadding + manifest.minRatio * pageWidth : fixedPadding + manifest.maxRatio * pageWidth;
+ const rowHeight = (fixedHeightGrid) ? fixedPadding + manifest.minRatio * pageWidth : fixedPadding + manifest.maxRatio * pageWidth;
- var groups = [];
- var currentPages = [];
+ const groups = [];
+ let currentPages = [];
- var getGridPageDimensions = function (pageData)
+ const getGridPageDimensions = pageData =>
{
// Calculate the width, height and horizontal placement of this page
// Get dimensions at max zoom level, although any level should be fine
- var pageDimenData = pageData.d[pageData.d.length - 1];
- var heightToWidthRatio = pageDimenData.h / pageDimenData.w;
+ const pageDimenData = pageData.d[pageData.d.length - 1];
+ const heightToWidthRatio = pageDimenData.h / pageDimenData.w;
- var pageWidth, pageHeight;
+ let pageWidth, pageHeight;
if (fixedHeightGrid)
{
@@ -45,19 +44,19 @@ function getGridLayoutGroups(viewerConfig)
};
};
- var rowDimensions = {
+ const rowDimensions = {
height: rowHeight,
width: viewportWidth
};
- manifest.pages.forEach(function (page, pageIndex)
+ manifest.pages.forEach( (page, pageIndex) =>
{
if (!showNonPagedPages && manifest.paged && !page.paged)
return;
// Calculate the width, height and horizontal placement of this page
- var pageDimens = getGridPageDimensions(page);
- var leftOffset = Math.floor(currentPages.length * (fixedPadding + gridPageWidth) + fixedPadding);
+ const pageDimens = getGridPageDimensions(page);
+ let leftOffset = Math.floor(currentPages.length * (fixedPadding + gridPageWidth) + fixedPadding);
// Center the page if the height is fixed (otherwise, there is no horizontal padding)
if (fixedHeightGrid)
diff --git a/source/js/page-layouts/index.js b/source/js/page-layouts/index.js
index 1622c708..576a1dff 100644
--- a/source/js/page-layouts/index.js
+++ b/source/js/page-layouts/index.js
@@ -1,11 +1,9 @@
-var getBookLayoutGroups = require('./book-layout');
-var getSinglesLayoutGroups = require('./singles-layout');
-var getGridLayoutGroups = require('./grid-layout');
-
-module.exports = getPageLayouts;
+import getBookLayoutGroups from './book-layout';
+import getSinglesLayoutGroups from './singles-layout';
+import getGridLayoutGroups from './grid-layout';
/** Get the relative positioning of pages for the current view */
-function getPageLayouts(settings)
+export default function getPageLayouts (settings)
{
if (settings.inGrid)
{
@@ -20,7 +18,7 @@ function getPageLayouts(settings)
}
else
{
- var config = pluck(settings, ['manifest', 'verticallyOriented', 'showNonPagedPages']);
+ const config = pluck(settings, ['manifest', 'verticallyOriented', 'showNonPagedPages']);
if (settings.inBookLayout)
return getBookLayoutGroups(config);
@@ -29,9 +27,9 @@ function getPageLayouts(settings)
}
}
-function pluck(obj, keys)
+function pluck (obj, keys)
{
- var out = {};
+ const out = {};
keys.forEach(function (key)
{
out[key] = obj[key];
diff --git a/source/js/page-layouts/page-dimensions.js b/source/js/page-layouts/page-dimensions.js
index 48cb33e8..c27cb902 100644
--- a/source/js/page-layouts/page-dimensions.js
+++ b/source/js/page-layouts/page-dimensions.js
@@ -1,9 +1,9 @@
-module.exports = function getPageDimensions(pageIndex, manifest)
+export default function getPageDimensions (pageIndex, manifest)
{
- var dims = manifest.getMaxPageDimensions(pageIndex);
+ const dims = manifest.getMaxPageDimensions(pageIndex);
return {
width: Math.floor(dims.width),
height: Math.floor(dims.height)
};
-};
+}
diff --git a/source/js/page-layouts/singles-layout.js b/source/js/page-layouts/singles-layout.js
index 65087f3a..5c6ad9de 100644
--- a/source/js/page-layouts/singles-layout.js
+++ b/source/js/page-layouts/singles-layout.js
@@ -1,29 +1,27 @@
-var getPageDimensions = require('./page-dimensions');
+import getPageDimensions from './page-dimensions';
-module.exports = function getSinglesLayoutGroups(viewerConfig)
+export default function getSinglesLayoutGroups (viewerConfig)
{
- var manifest = viewerConfig.manifest;
+ const manifest = viewerConfig.manifest;
// Render each page alone in a group
- var pages = [];
- manifest.pages.forEach(function (page, index)
+ const pages = [];
+ manifest.pages.forEach( (page, index) =>
{
if (!viewerConfig.showNonPagedPages && manifest.paged && !page.paged)
return;
- var pageDims = getPageDimensions(index, manifest);
+ const pageDims = getPageDimensions(index, manifest);
pages.push({
dimensions: pageDims,
- pages: [
- {
- index: index,
- groupOffset: {top: 0, left: 0},
- dimensions: pageDims
- }
- ]
+ pages: [{
+ index: index,
+ groupOffset: { top: 0, left: 0 },
+ dimensions: pageDims
+ }]
});
});
return pages;
-};
+}
diff --git a/source/js/page-overlay-manager.js b/source/js/page-overlay-manager.js
index c446d3a1..ee621b89 100644
--- a/source/js/page-overlay-manager.js
+++ b/source/js/page-overlay-manager.js
@@ -1,5 +1,3 @@
-module.exports = PageOverlayManager;
-
/**
* Manages a collection of page overlays, which implement a low-level
* API for synchronizing HTML pages to the canvas. Each overlay needs
@@ -12,91 +10,93 @@ module.exports = PageOverlayManager;
* @class
*/
-function PageOverlayManager()
+export default class PageOverlayManager
{
- this._pages = {};
- this._renderedPages = [];
- this._renderedPageMap = {};
-}
-
-PageOverlayManager.prototype.addOverlay = function (overlay)
-{
- var overlaysByPage = this._pages[overlay.page] || (this._pages[overlay.page] = []);
+ constructor ()
+ {
+ this._pages = {};
+ this._renderedPages = [];
+ this._renderedPageMap = {};
+ }
- overlaysByPage.push(overlay);
+ addOverlay (overlay)
+ {
+ const overlaysByPage = this._pages[overlay.page] || (this._pages[overlay.page] = []);
- if (this._renderedPageMap[overlay.page])
- overlay.mount();
-};
+ overlaysByPage.push(overlay);
-PageOverlayManager.prototype.removeOverlay = function (overlay)
-{
- var page = overlay.page;
- var overlaysByPage = this._pages[page];
+ if (this._renderedPageMap[overlay.page])
+ overlay.mount();
+ }
- if (!overlaysByPage)
- return;
+ removeOverlay (overlay)
+ {
+ const page = overlay.page;
+ const overlaysByPage = this._pages[page];
- var overlayIndex = overlaysByPage.indexOf(overlay);
+ if (!overlaysByPage)
+ return;
- if (overlayIndex === -1)
- return;
+ const overlayIndex = overlaysByPage.indexOf(overlay);
- if (this._renderedPageMap[page])
- overlaysByPage[overlayIndex].unmount();
+ if (overlayIndex === -1)
+ return;
- overlaysByPage.splice(overlayIndex, 1);
+ if (this._renderedPageMap[page])
+ overlaysByPage[overlayIndex].unmount();
- if (overlaysByPage.length === 0)
- delete this._pages[page];
-};
+ overlaysByPage.splice(overlayIndex, 1);
-PageOverlayManager.prototype.updateOverlays = function (renderedPages)
-{
- var previouslyRendered = this._renderedPages;
- var newRenderedMap = {};
+ if (overlaysByPage.length === 0)
+ delete this._pages[page];
+ }
- renderedPages.forEach(function (pageIndex)
+ updateOverlays (renderedPages)
{
- newRenderedMap[pageIndex] = true;
+ const previouslyRendered = this._renderedPages;
+ const newRenderedMap = {};
- if (!this._renderedPageMap[pageIndex])
+ renderedPages.map( (pageIndex) =>
{
- this._renderedPageMap[pageIndex] = true;
+ newRenderedMap[pageIndex] = true;
- this._invokeOnOverlays(pageIndex, function (overlay)
+ if (!this._renderedPageMap[pageIndex])
{
- overlay.mount();
- });
- }
- }, this);
+ this._renderedPageMap[pageIndex] = true;
- previouslyRendered.forEach(function (pageIndex)
- {
- if (newRenderedMap[pageIndex])
+ this._invokeOnOverlays(pageIndex, overlay =>
+ {
+ overlay.mount();
+ });
+ }
+ });
+
+ previouslyRendered.map( (pageIndex) =>
{
- this._invokeOnOverlays(pageIndex, function (overlay)
+ if (newRenderedMap[pageIndex])
{
- overlay.refresh();
- });
- }
- else
- {
- delete this._renderedPageMap[pageIndex];
-
- this._invokeOnOverlays(pageIndex, function (overlay)
+ this._invokeOnOverlays(pageIndex, (overlay) =>
+ {
+ overlay.refresh();
+ });
+ }
+ else
{
- overlay.unmount();
- });
- }
- }, this);
-
- this._renderedPages = renderedPages;
-};
-
-PageOverlayManager.prototype._invokeOnOverlays = function (pageIndex, func)
-{
- var overlays = this._pages[pageIndex];
- if (overlays)
- overlays.forEach(func, this);
-};
+ delete this._renderedPageMap[pageIndex];
+ this._invokeOnOverlays(pageIndex, overlay =>
+ {
+ overlay.unmount();
+ });
+ }
+ });
+
+ this._renderedPages = renderedPages;
+ }
+
+ _invokeOnOverlays (pageIndex, func)
+ {
+ const overlays = this._pages[pageIndex];
+ if (overlays)
+ overlays.map( (o) => func(o) );
+ }
+}
diff --git a/source/js/page-tools-overlay.js b/source/js/page-tools-overlay.js
index 53818033..d287d184 100644
--- a/source/js/page-tools-overlay.js
+++ b/source/js/page-tools-overlay.js
@@ -1,78 +1,94 @@
-var elt = require('./utils/elt');
-
-module.exports = PageToolsOverlay;
-
-function PageToolsOverlay(pageIndex, viewerCore)
+import { elt } from './utils/elt';
+/**
+*
+*
+**/
+export default class PageToolsOverlay
{
- this.page = pageIndex;
+ constructor (pageIndex, viewerCore)
+ {
+ this.page = pageIndex;
- this._viewerCore = viewerCore;
+ this._viewerCore = viewerCore;
- this._innerElement = viewerCore.getSettings().innerElement;
- this._pageToolsElem = null;
-}
+ this._innerElement = this._viewerCore.getSettings().innerElement;
+ this._pageToolsElem = null;
+ }
-PageToolsOverlay.prototype.mount = function ()
-{
- if (this._pageToolsElem === null)
+ mount ()
{
- var buttons = this._initializePageToolButtons();
+ if (this._pageToolsElem === null)
+ {
+ this._buttons = this._initializePageToolButtons();
- this._pageToolsElem = elt('div', {class: 'diva-page-tools-wrapper'},
- elt('div', {class: 'diva-page-tools'}, buttons)
- );
- }
+ this._pageToolsElem = elt('div', { class: 'diva-page-tools-wrapper' },
+ elt('div', { class: 'diva-page-tools' }, this._buttons)
+ );
- this.refresh();
- this._innerElement.appendChild(this._pageToolsElem);
-};
+ this._pageLabelsElem = elt('div', { class: 'diva-page-labels-wrapper'},
+ elt('div', { class: 'diva-page-labels' }, this._viewerCore.settings.manifest.pages[this.page].l)
+ );
+ }
-PageToolsOverlay.prototype._initializePageToolButtons = function ()
-{
- // Callback parameters
- var settings = this._viewerCore.getSettings();
- var publicInstance = this._viewerCore.getPublicInstance();
- var pageIndex = this.page;
+ this.refresh();
+ this._innerElement.appendChild(this._pageToolsElem);
+ this._innerElement.appendChild(this._pageLabelsElem);
+ }
- return this._viewerCore.getPageTools().map(function (plugin)
+ _initializePageToolButtons ()
{
- // If the title text is undefined, use the name of the plugin
- var titleText = plugin.titleText || plugin.pluginName[0].toUpperCase() + plugin.pluginName.substring(1) + " plugin";
+ // Callback parameters
+ const settings = this._viewerCore.getSettings();
+ const publicInstance = this._viewerCore.getPublicInstance();
+ const pageIndex = this.page;
- var button = elt('div', {
- class: 'diva-' + plugin.pluginName + '-icon',
- title: titleText
- });
-
- button.addEventListener('click', function (event)
+ return this._viewerCore.getPageTools().map( (plugin) =>
{
- plugin.handleClick.call(this, event, settings, publicInstance, pageIndex);
- }, false);
+ // !!! The node needs to be cloned otherwise it is detached from
+ // one and reattached to the other.
+ const button = plugin.pageToolsIcon.cloneNode(true);
- button.addEventListener('touchend', function (event)
- {
- // Prevent firing of emulated mouse events
- event.preventDefault();
+ // ensure the plugin instance is handed as the first argument to call;
+ // this will set the context (i.e., `this`) of the handleClick call to the plugin instance
+ // itself.
+ button.addEventListener('click', (event) =>
+ {
+ plugin.handleClick.call(plugin, event, settings, publicInstance, pageIndex);
+ }, false);
- plugin.handleClick.call(this, event, settings, publicInstance, pageIndex);
- }, false);
+ button.addEventListener('touchend', (event) =>
+ {
+ // Prevent firing of emulated mouse events
+ event.preventDefault();
- return button;
- }, this);
-};
+ plugin.handleClick.call(plugin, event, settings, publicInstance, pageIndex);
+ }, false);
-PageToolsOverlay.prototype.unmount = function ()
-{
- this._innerElement.removeChild(this._pageToolsElem);
-};
+ return button;
-PageToolsOverlay.prototype.refresh = function ()
-{
- var pos = this._viewerCore.getPageRegion(this.page, {
- excludePadding: true,
- incorporateViewport: true
- });
-
- this._pageToolsElem.style.top = pos.top + 'px';
- this._pageToolsElem.style.left = pos.left + 'px';
-};
+ });
+ }
+
+ unmount ()
+ {
+ this._innerElement.removeChild(this._pageToolsElem);
+ this._innerElement.removeChild(this._pageLabelsElem);
+ }
+
+ refresh ()
+ {
+ const pos = this._viewerCore.getPageRegion(this.page, {
+ includePadding: true,
+ incorporateViewport: true
+ });
+
+ // if window is resized larger, a margin is created - need to subtract this from offsets
+ let marginLeft = window.getComputedStyle(this._innerElement, null).getPropertyValue('margin-left');
+
+ this._pageToolsElem.style.top = pos.top + 'px';
+ this._pageToolsElem.style.left = pos.left - parseFloat(marginLeft) + 'px';
+
+ this._pageLabelsElem.style.top = pos.top + 'px';
+ this._pageLabelsElem.style.left = pos.right - parseFloat(marginLeft) - this.labelWidth - 5 + 'px';
+ }
+}
diff --git a/source/js/parse-iiif-manifest.js b/source/js/parse-iiif-manifest.js
index e22e90bd..735c730a 100644
--- a/source/js/parse-iiif-manifest.js
+++ b/source/js/parse-iiif-manifest.js
@@ -1,103 +1,141 @@
-/* jshint unused: true */
+import parseLabelValue from './utils/parse-label-value';
-module.exports = parseIIIFManifest;
-
-var getMaxZoomLevel = function (width, height)
+const getMaxZoomLevel = (width, height) =>
{
- var largestDimension = Math.max(width, height);
+ const largestDimension = Math.max(width, height);
+ if (largestDimension < 128)
+ return 0;
return Math.ceil(Math.log((largestDimension + 1) / (256 + 1)) / Math.log(2));
};
-var incorporateZoom = function (imageDimension, zoomDifference)
-{
- return imageDimension / (Math.pow(2, zoomDifference));
-};
+const incorporateZoom = (imageDimension, zoomDifference) => imageDimension / (Math.pow(2, zoomDifference));
-var getOtherImageData = function(otherImages, lowestMaxZoom, canvasWidth, canvasHeight)
+const getOtherImageData = (otherImages, lowestMaxZoom) =>
{
- return otherImages.map(
- function (itm)
+ return otherImages.map( (itm) =>
+ {
+ const w = itm.width;
+ const h = itm.height;
+ const info = parseImageInfo(itm);
+ const url = info.url.slice(-1) !== '/' ? info.url + '/' : info.url; // append trailing slash to url if it's not there.
+
+ const dims = new Array(lowestMaxZoom + 1);
+ for (let j = 0; j < lowestMaxZoom + 1; j++)
{
- var w = itm.width || canvasWidth;
- var h = itm.height || canvasHeight;
-
- var dims = new Array(lowestMaxZoom + 1);
- for (var j = 0; j < lowestMaxZoom + 1; j++)
- {
- dims[j] = {
- h: Math.floor(incorporateZoom(h, lowestMaxZoom - j)),
- w: Math.floor(incorporateZoom(w, lowestMaxZoom - j))
- };
- }
- return {
- label: itm.label || "",
- dims: dims
+ dims[j] = {
+ h: Math.floor(incorporateZoom(h, lowestMaxZoom - j)),
+ w: Math.floor(incorporateZoom(w, lowestMaxZoom - j))
};
}
- );
+
+ return {
+ f: info.url,
+ url: url,
+ il: itm.label || "",
+ d: dims
+ };
+ });
+};
+
+const getIIIFPresentationVersion = (context) =>
+{
+ if (context === "http://iiif.io/api/presentation/2/context.json")
+ return 2;
+ else if (Array.isArray(context) && context.includes("http://iiif.io/api/presentation/2/context.json"))
+ return 2;
+ else if (Array.isArray(context) && context.includes("http://iiif.io/api/presentation/3/context.json"))
+ return 3;
+ else
+ return 2; // Assume a v2 manifest.
};
/**
- * Parses a IIIF Presentation API Manifest and converts it into a Diva.js-format object
+ * Parses an IIIF Presentation API Manifest and converts it into a Diva.js-format object
* (See https://github.com/DDMAL/diva.js/wiki/Development-notes#data-received-through-ajax-request)
- * (This is a client-side re-implementation of generate_json.py)
*
* @param {Object} manifest - an object that represents a valid IIIF manifest
* @returns {Object} divaServiceBlock - the data needed by Diva to show a view of a single document
*/
-function parseIIIFManifest(manifest)
+export default function parseIIIFManifest (manifest)
{
- var sequence = manifest.sequences[0];
- var canvases = sequence.canvases;
- var numCanvases = canvases.length;
+ let ctx = manifest["@context"];
- var pages = new Array(canvases.length);
+ if (!ctx)
+ {
+ console.error("Invalid IIIF Manifest; No @context found.");
+ return null;
+ }
- var thisCanvas, thisResource, thisImage, otherImages, context, url, info, imageAPIVersion,
- width, height, maxZoom, canvas, label, imageLabel, zoomDimensions, widthAtCurrentZoomLevel,
+ const version = getIIIFPresentationVersion(ctx);
+ const sequence = manifest.sequences ? manifest.sequences[0] : null;
+ const canvases = sequence ? sequence.canvases : manifest.items;
+ const numCanvases = canvases.length;
+
+ const pages = new Array(canvases.length);
+
+ let thisCanvas,
+ thisResource,
+ thisImage,
+ secondaryImages,
+ otherImages = [],
+ context,
+ url,
+ info,
+ imageAPIVersion,
+ width,
+ height,
+ maxZoom,
+ canvas,
+ label,
+ imageLabel,
+ zoomDimensions,
+ widthAtCurrentZoomLevel,
heightAtCurrentZoomLevel;
- var lowestMaxZoom = 100;
- var maxRatio = 0;
- var minRatio = 100;
+ let lowestMaxZoom = 100;
+ let maxRatio = 0;
+ let minRatio = 100;
// quickly determine the lowest possible max zoom level (i.e., the upper bound for images) across all canvases.
// while we're here, compute the global ratios as well.
- for (var z = 0; z < numCanvases; z++)
+ for (let z = 0; z < numCanvases; z++)
{
- var c = canvases[z];
- var w = c.width;
- var h = c.height;
- var mz = getMaxZoomLevel(w, h);
- var ratio = h / w;
+ const c = canvases[z];
+ const w = c.width;
+ const h = c.height;
+ const mz = getMaxZoomLevel(w, h);
+ const ratio = h / w;
maxRatio = Math.max(ratio, maxRatio);
minRatio = Math.min(ratio, minRatio);
lowestMaxZoom = Math.min(lowestMaxZoom, mz);
}
- // Uint8Arrays are pre-initialized with zeroes. These ones need to be
- // pre-initialized since we will do arithmetic and value checking on them
- var totalWidths = new Array(lowestMaxZoom + 1).fill(0);
- var totalHeights = new Array(lowestMaxZoom + 1).fill(0);
- var maxWidths = new Array(lowestMaxZoom + 1).fill(0);
- var maxHeights = new Array(lowestMaxZoom + 1).fill(0);
+ /*
+ These arrays need to be pre-initialized since we will do arithmetic and value checking on them
+ */
+ const totalWidths = new Array(lowestMaxZoom + 1).fill(0);
+ const totalHeights = new Array(lowestMaxZoom + 1).fill(0);
+ const maxWidths = new Array(lowestMaxZoom + 1).fill(0);
+ const maxHeights = new Array(lowestMaxZoom + 1).fill(0);
- for (var i = 0; i < numCanvases; i++)
+ for (let i = 0; i < numCanvases; i++)
{
thisCanvas = canvases[i];
- canvas = thisCanvas['@id'];
+ canvas = thisCanvas['@id'] || thisCanvas.id;
label = thisCanvas.label;
- thisResource = thisCanvas.images[0].resource;
+ thisResource = thisCanvas.images ? thisCanvas.images[0].resource : thisCanvas.items[0].items[0].body;
/*
* If a canvas has multiple images it will be encoded
- * with a resource type of "oa:Choice". The primary image will be available
- * on the 'default' key, with other images available under 'item.'
- * */
- if (thisResource['@type'] === "oa:Choice")
+ * with a resource type of "oa:Choice" (v2) or "Choice" (v3).
+ **/
+ otherImages = []; // reset array
+ if (thisResource['@type'] === "oa:Choice" || thisResource.type === "Choice")
{
- thisImage = thisResource.default;
+ thisImage = thisResource.default || thisResource.items[0];
+ secondaryImages = thisResource.item || thisResource.items.slice(1);
+ otherImages = getOtherImageData(secondaryImages, lowestMaxZoom);
}
else
{
@@ -107,6 +145,7 @@ function parseIIIFManifest(manifest)
// Prioritize the canvas height / width first, since images may not have h/w
width = thisCanvas.width || thisImage.width;
height = thisCanvas.height || thisImage.height;
+
if (width <= 0 || height <= 0)
{
console.warn('Invalid width or height for canvas ' + label + '. Skipping');
@@ -115,19 +154,14 @@ function parseIIIFManifest(manifest)
maxZoom = getMaxZoomLevel(width, height);
- if (thisResource.item)
- {
- otherImages = getOtherImageData(thisResource.item, lowestMaxZoom, width, height);
- }
-
imageLabel = thisImage.label || null;
info = parseImageInfo(thisImage);
url = info.url.slice(-1) !== '/' ? info.url + '/' : info.url; // append trailing slash to url if it's not there.
- context = thisImage.service['@context'];
+ context = thisImage.service['@context'] || thisImage.service.type;
- if (context === 'http://iiif.io/api/image/2/context.json')
+ if (context === 'http://iiif.io/api/image/2/context.json' || context === "ImageService2")
{
imageAPIVersion = 2;
}
@@ -142,7 +176,7 @@ function parseIIIFManifest(manifest)
zoomDimensions = new Array(lowestMaxZoom + 1);
- for (var k = 0; k < lowestMaxZoom + 1; k++)
+ for (let k = 0; k < lowestMaxZoom + 1; k++)
{
widthAtCurrentZoomLevel = Math.floor(incorporateZoom(width, lowestMaxZoom - k));
heightAtCurrentZoomLevel = Math.floor(incorporateZoom(height, lowestMaxZoom - k));
@@ -157,6 +191,9 @@ function parseIIIFManifest(manifest)
maxHeights[k] = Math.max(heightAtCurrentZoomLevel, maxHeights[k]);
}
+ let isPaged = thisCanvas.viewingHint !== 'non-paged' || (thisCanvas.behavior ? thisCanvas.behavior[0] !== 'non-paged' : false);
+ let isFacing = thisCanvas.viewingHint === 'facing-pages' || (thisCanvas.behavior ? thisCanvas.behavior[0] === 'facing-pages' : false);
+
pages[i] = {
d: zoomDimensions,
m: maxZoom,
@@ -165,8 +202,8 @@ function parseIIIFManifest(manifest)
f: info.url,
url: url,
api: imageAPIVersion,
- paged: thisCanvas.viewingHint !== 'non-paged',
- facingPages: thisCanvas.viewingHint === 'facing-pages',
+ paged: isPaged,
+ facingPages: isFacing,
canvas: canvas,
otherImages: otherImages,
xoffset: info.x || null,
@@ -174,16 +211,16 @@ function parseIIIFManifest(manifest)
};
}
- var averageWidths = new Array(lowestMaxZoom + 1);
- var averageHeights = new Array(lowestMaxZoom + 1);
+ const averageWidths = new Array(lowestMaxZoom + 1);
+ const averageHeights = new Array(lowestMaxZoom + 1);
- for (var a = 0; a < lowestMaxZoom + 1; a++)
+ for (let a = 0; a < lowestMaxZoom + 1; a++)
{
averageWidths[a] = totalWidths[a] / numCanvases;
averageHeights[a] = totalHeights[a] / numCanvases;
}
- var dims = {
+ const dims = {
a_wid: averageWidths,
a_hei: averageHeights,
max_w: maxWidths,
@@ -194,12 +231,15 @@ function parseIIIFManifest(manifest)
t_wid: totalWidths
};
+ // assumes paged is false for non-paged values
return {
- item_title: manifest.label,
+ version: version,
+ item_title: parseLabelValue(manifest).label,
+ metadata: manifest.metadata || null,
dims: dims,
max_zoom: lowestMaxZoom,
pgs: pages,
- paged: manifest.viewingHint === 'paged' || sequence.viewingHint === 'paged'
+ paged: manifest.viewingHint === 'paged' || (manifest.behaviour ? manifest.behaviour[0] === 'paged' : false) || (sequence ? sequence.viewingHint === 'paged' : false)
};
}
@@ -211,31 +251,30 @@ function parseIIIFManifest(manifest)
* @param {Object} resource - an object representing the resource block of a canvas section in a IIIF manifest
* @returns {Object} imageInfo - an object containing image URL and region
*/
-function parseImageInfo(resource)
+function parseImageInfo (resource)
{
- var url = resource['@id'];
- var fragmentRegex = /#xywh=([0-9]+,[0-9]+,[0-9]+,[0-9]+)/;
- var xywh = '';
- var stripURL = true;
+ let url = resource['@id'] || resource.id;
+ const fragmentRegex = /#xywh=([0-9]+,[0-9]+,[0-9]+,[0-9]+)/;
+ let xywh = '';
+ let stripURL = true;
if (/\/([0-9]+,[0-9]+,[0-9]+,[0-9]+)\//.test(url))
{
// if resource in image API format, extract region x,y,w,h from URL (after 4th slash from last)
// matches coordinates in URLs of the form http://www.example.org/iiif/book1-page1/40,50,1200,1800/full/0/default.jpg
- var urlArray = url.split('/');
+ const urlArray = url.split('/');
xywh = urlArray[urlArray.length - 4];
}
else if (fragmentRegex.test(url))
{
// matches coordinates of the style http://www.example.org/iiif/book1/canvas/p1#xywh=50,50,320,240
- var result = fragmentRegex.exec(url);
+ const result = fragmentRegex.exec(url);
xywh = result[1];
}
- else if (resource.service && resource.service['@id'])
+ else if (resource.service && (resource.service['@id'] || resource.service.id))
{
- // assume canvas size based on image size
- url = resource.service['@id'];
// this URL excludes region parameters so we don't need to remove them
+ url = resource.service['@id'] || resource.service.id;
stripURL = false;
}
@@ -245,14 +284,14 @@ function parseImageInfo(resource)
url = url.split('/').slice(0, -4).join('/');
}
- var imageInfo = {
+ const imageInfo = {
url: url
};
if (xywh.length)
{
// parse into separate components
- var dimensions = xywh.split(',');
+ const dimensions = xywh.split(',');
imageInfo.x = parseInt(dimensions[0], 10);
imageInfo.y = parseInt(dimensions[1], 10);
imageInfo.w = parseInt(dimensions[2], 10);
diff --git a/source/js/plugin-registry.js b/source/js/plugin-registry.js
deleted file mode 100644
index a8396176..00000000
--- a/source/js/plugin-registry.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- * @module
- * @private
- * The global plugin registry.
- */
-
-var plugins = [];
-
-module.exports = {
- register: function (plugin)
- {
- plugins.push(plugin);
- },
- getAll: function ()
- {
- return plugins;
- }
-};
diff --git a/source/js/plugins/.jshintrc b/source/js/plugins/.jshintrc
deleted file mode 100644
index f664598a..00000000
--- a/source/js/plugins/.jshintrc
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "extends": "../.jshintrc",
- "unused": "vars"
-}
diff --git a/source/js/plugins/_filters.js b/source/js/plugins/_filters.js
new file mode 100644
index 00000000..e274b964
--- /dev/null
+++ b/source/js/plugins/_filters.js
@@ -0,0 +1,679 @@
+
+// stores an array of objects, each object stores the function, image data, adjust to apply, and name
+let _filterQueue = [];
+// stores whether the invert filter was used (for if it should be reapplied)
+let inverted = false;
+
+export function resetFilters ()
+{
+ _filterQueue = [];
+ inverted = false;
+}
+
+// Add a filter to the array. If it is new, apply the filter's function to the image data of
+// the previous filter's returned image data (or the default image data if it's the first filter),
+// and return this new image data. Pass string 'name' since function.name with minifiedJS = bad
+// Threshold is exclusive to other filters and vice versa
+export function addFilterToQueue (data, filter, adjust, name)
+{
+ // index of the filter in the queue, -1 if not found
+ let index = _filterQueue.findIndex(f => f.filter.name === filter.name);
+ if (index !== -1) // adjust a filter already in the queue
+ {
+ let filtObj = _filterQueue[index];
+ filtObj.adjust = adjust;
+
+ // all filters except sharpness use _apply (from within their private function 'filter')
+ // whereas sharpness uses convolve, so need to check (ie. can't generalize for all filters)
+ if (filtObj.name === 'Sharpness')
+ {
+ // if adjust[1] is 0, then sharpness should be reset (cancelled)
+ if (filtObj.adjust[1] === 0)
+ filtObj.postData = filtObj.prevData;
+ else
+ filtObj.postData = convolve(filtObj.prevData, filtObj.adjust);
+ }
+ else if (filtObj.name === 'Invert')
+ {
+ // invert filter should toggle, so use post-alteration image data
+ filtObj.postData = _apply(filtObj.postData, filtObj.filter, filtObj.adjust);
+ inverted = !inverted;
+ }
+ else
+ filtObj.postData = _apply(filtObj.prevData, filtObj.filter, filtObj.adjust);
+
+ // reapply all filters that come after in the queue
+ for (let i = index + 1, len = _filterQueue.length; i < len; i++)
+ {
+ let otherFiltObj = _filterQueue[i];
+
+ if (otherFiltObj.name === 'Invert' && !inverted) // don't reinvert the image
+ continue;
+
+ otherFiltObj.prevData = _filterQueue[i - 1].postData; // starts at filt
+
+ if (otherFiltObj.name === 'Sharpness')
+ if (otherFiltObj.adjust[1] === 0)
+ otherFiltObj.postData = otherFiltObj.prevData;
+ else
+ otherFiltObj.postData = convolve(otherFiltObj.prevData, otherFiltObj.adjust);
+ else
+ otherFiltObj.postData = _apply(otherFiltObj.prevData, otherFiltObj.filter, otherFiltObj.adjust);
+
+ if (i === len - 1) // last filter
+ return otherFiltObj.postData;
+ }
+
+ // only two filters in queue and second was modified
+ return filtObj.postData;
+ }
+ else // add new filter to the queue
+ {
+ // handle threshold uniqueness
+ if (name === 'Threshold' || (_filterQueue[0] && _filterQueue[0].name === 'Threshold'))
+ {
+ // reset filter queue
+ resetFilters();
+
+ // reset appropriate sliders
+ let tools = document.getElementsByClassName('manipulation-tools')[0];
+ for (let i = 0, len = tools.children.length; i < len; i++)
+ {
+ let tool = tools.children[i].children[0];
+
+ if (tool && tool.type === 'range')
+ {
+ let isThreshold = tool.parentElement.textContent.includes('Threshold');
+ let isZoom = tool.parentElement.textContent.includes('Zoom');
+ let isRotate = tool.parentElement.textContent.includes('Rotation');
+
+ if (name === 'Threshold' && !isThreshold && !isZoom && !isRotate) // reset all except
+ tool.value = 0;
+ else if (name !== 'Threshold' && isThreshold) // reset only threshold
+ tool.value = 0;
+ }
+ }
+
+ // reset log
+ document.getElementById('filter-log').innerHTML = " Filter Application Order
';
- $('#diva-canvas-backdrop').append(canvasError);
- hideThrobber();
- }
-
- // Only load the map the first time (when there is no callback)
- if (callback === undefined) {
- loadMap(image);
- }
-
- // Update the map and the canvas if necessary
- updateMap();
- updateCanvas(canvas);
-
- // Hide the throbber if it is visible
- hideThrobber();
-
- // If the callback function exists, execute it (for zooming)
- if (typeof callback === 'function')
- callback.call(callback);
- };
-
- image.src = imageURL;
-
- // make sure the load event fires for cached images too
- if ( image.complete || image.complete === undefined ) {
- image.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";
- image.src = imageURL;
- }
- };
-
- var updateSliderLabel = function ()
- {
- var thisSlider = sliders[sliderMode];
- var value = thisSlider.current;
- var stringValue = (thisSlider.transform) ? thisSlider.transform(value) : value;
- $('#diva-canvas-value').html(stringValue);
- };
-
- var updateSliderValue = function ()
- {
- $('#diva-canvas-slider').val(sliders[sliderMode].current);
- };
-
- // Returns the URL for the image at the specified zoom level
- var getImageURL = function (zoomLevel)
- {
- var width = settings.zoomWidthRatio * Math.pow(2, zoomLevel);
-
- return settings.divaInstance.getPageImageURL(settings.selectedPageIndex, { width: width });
- };
-
- var showThrobber = function ()
- {
- // Only show the throbber if it will take a long time
- if (sliders.zoom.current > 0 || settings.mobileWebkit)
- $(settings.selector + 'throbber').addClass('canvas-throbber').show();
- };
-
- // Hides the loading indicator icon
- var hideThrobber = function ()
- {
- $(settings.selector + 'throbber').removeClass('canvas-throbber').hide();
- };
-
- // If any modifications have been applied, save them to localStorage
- var saveSettings = function ()
- {
- var sliderSettings = {};
- var changed = false;
- var storageKey = settings.localStoragePrefix + settings.filename;
- var slider;
-
- for (slider in sliders)
- {
- if (sliders[slider].previous !== sliders[slider].initial)
- {
- sliderSettings[slider] = sliders[slider].previous;
- changed = true;
- }
- }
-
- // If modifications need to be saved, update the canvas plugin icon
- if (changed)
- {
- settings.pluginIcon.addClass('new');
- storeObject(storageKey, sliderSettings);
- }
- else
- {
- settings.pluginIcon.removeClass('new');
- localStorage.removeItem(storageKey);
- }
- };
-
- // Handles zooming in when the zoom slider is changed and the change is applied
- var updateZoom = function (newZoomLevel, callback)
- {
- settings.zoomLevel = newZoomLevel;
-
- // Figure out the URL for the image at this new zoom level
- var imageURL = getImageURL(newZoomLevel);
-
- loadCanvas(imageURL, function ()
- {
- // Set the new scale factor and update the viewbox
- map.scaleFactor = map.size / canvas.size;
- updateViewbox();
-
- saveSettings();
- });
- };
-
- var bindCanvasKeyEvents = function (event)
- {
- var upArrowKey = 38,
- downArrowKey = 40,
- leftArrowKey = 37,
- rightArrowKey = 39;
-
- switch (event.keyCode)
- {
- case upArrowKey:
- // Up arrow - scroll up
- $('#diva-canvas-wrapper').scrollTop(document.getElementById('diva-canvas-wrapper').scrollTop - settings.arrowScrollAmount);
- return false;
-
- case downArrowKey:
- // Down arrow - scroll down
- $('#diva-canvas-wrapper').scrollTop(document.getElementById('diva-canvas-wrapper').scrollTop + settings.arrowScrollAmount);
- return false;
-
- case leftArrowKey:
- // Left arrow - scroll left
- $('#diva-canvas-wrapper').scrollLeft(document.getElementById('diva-canvas-wrapper').scrollLeft - settings.arrowScrollAmount);
- return false;
-
- case rightArrowKey:
- // Right arrow - scroll right
- $('#diva-canvas-wrapper').scrollLeft(document.getElementById('diva-canvas-wrapper').scrollLeft + settings.arrowScrollAmount);
- return false;
- }
- };
-
- // Serialize an object to JSON and save it in localStorage
- var storeObject = function (key, value) {
- localStorage.setItem(key, JSON.stringify(value));
- };
-
- // Load and deserialize a localStorage object
- var loadStoredObject = function (key) {
- var value = localStorage.getItem(key);
- return value && JSON.parse(value);
- };
-
- var retval =
- {
- init: function (divaSettings, divaInstance)
- {
- // If the browser does not support canvas, do nothing
- // And, disable this plugin
- var canvasSupported = !!window.HTMLCanvasElement;
- if (!canvasSupported)
- return false;
-
- // Override all the configurable settings defined under canvasPlugin
- $.extend(settings, defaults, divaSettings.canvasPlugin);
-
- settings.divaInstance = divaInstance;
- settings.inCanvas = false;
- settings.iipServerURL = divaSettings.iipServerURL;
- settings.imageDir = divaSettings.imageDir;
- settings.selector = divaSettings.selector;
- settings.mobileWebkit = divaSettings.mobileWebkit;
- settings.arrowScrollAmount = divaSettings.arrowScrollAmount;
-
- // Set up the settings for the sliders/icons
- sliders = {
- 'contrast': {
- 'initial': 1,
- 'min': settings.contrastMin,
- 'max': settings.contrastMax,
- 'step': settings.contrastStep,
- 'transform': function (value) {
- return value.toFixed(2);
- },
- 'title': 'Change the contrast'
- },
- 'brightness': {
- 'initial': 0,
- 'min': settings.brightnessMin,
- 'max': settings.brightnessMax,
- 'step': settings.brightnessStep,
- 'title': 'Adjust the brightness'
- },
- 'rotation': {
- 'initial': 0,
- 'min': 0,
- 'max': 359,
- 'step': 1,
- 'transform': function (value) {
- return value + '°';
- },
- 'title': 'Rotate the image'
- },
- 'zoom': {
- // Default, min and max values updated within setupHook
- 'initial': 0,
- 'min': 0,
- 'max': 0,
- 'step': 1,
- 'title': 'Adjust the zoom level'
- },
- 'red': {
- 'initial': 0,
- 'min': settings.rgbMin,
- 'max': settings.rgbMax,
- 'step': 1,
- 'title': 'Adjust the red channel'
- },
- 'green': {
- 'initial': 0,
- 'min': settings.rgbMin,
- 'max': settings.rgbMax,
- 'step': 1,
- 'title': 'Adjust the green channel'
- },
- 'blue': {
- 'initial': 0,
- 'min': settings.rgbMin,
- 'max': settings.rgbMax,
- 'step': 1,
- 'title': 'Adjust the blue channel'
- }
- };
-
- // Copy the "default" value into "value" and "previous" for each slider
- var resetSliders = function ()
- {
- var defaultValue, thisSlider, slider;
- for (slider in sliders)
- {
- thisSlider = sliders[slider];
- defaultValue = thisSlider.initial;
- thisSlider.current = defaultValue;
- thisSlider.previous = defaultValue;
- }
- };
-
- resetSliders();
-
- // Create the DOM elements if they haven't already been created
- if ($('#diva-canvas-backdrop').length)
- {
- // Return true to keep the plugin enabled
- return true;
- }
-
- var canvasButtonsList = [];
- var buttonHTML, button, buttonTitle, i;
-
- for (i in settings.buttons)
- {
- button = settings.buttons[i];
- buttonTitle = sliders[button].title;
- buttonHTML = '';
- canvasButtonsList.push(buttonHTML);
- }
- var canvasButtons = canvasButtonsList.join('');
-
- var canvasTools = '- - - -
- -Diva.js [![Build Status](https://travis-ci.org/DDMAL/diva.js.svg?branch=master)](http://travis-ci.org/DDMAL/diva.js) [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/DDMAL/diva.js?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) -========================================= - -Diva.js (Document Image Viewer with AJAX) is a JavaScript book image viewer designed to present multi-page documents at multiple resolutions. - -Version 5.0 contains many new features and improvements: - -- Page images are now rendered using the HTML Canvas, allowing us to support “smooth” zooming. -- Improved IIIF support: Easily toggle “non-paged” pages' visibility and search for pages based on their label name. -- Complete re-organization of the source code. We now use ES6, WebPack, and Karma. This makes both the development process and code debugging much easier. - -For a complete list of new features, bug fixes and API changes, view [the changelog](https://github.com/DDMAL/diva.js/releases/tag/v5.0.0). - -## Overview - -There are two components to a functioning Diva system: - -1. **An image server.** Either [IIP Image Server](http://iipimage.sourceforge.net) with Diva's JSON measurement data file or [any other IIIF-compatible image server](http://iiif.io/apps-demos.html). -2. **The Diva.js jQuery plugin.** The embedded web application that displays the images in a browser. - -If using IIP, your document image files must be processed into either Pyramid TIFF or JPEG2000 format. We provide [a script](https://github.com/DDMAL/diva.js/wiki/Preparing-Your-Images) to easily do this. - -### Details - -#### If using IIIF -Diva.js is an image viewing client compatible with version 2.0 of the IIIF [Image](http://iiif.io/api/image/2.0/) and [Presentation](http://iiif.io/api/presentation/2.0/) APIs. Simply supply the path to a valid IIIF Manifest and Diva will display the document as described by the metadata (see [Installing](#installing)). - -#### If using IIP -IIP creates the image tiles and other image representations "on the fly". Instructions for building and installing IIP are available on the [project's website](http://iipimage.sourceforge.net/documentation/server/). If you want to support JPEG 2000 you will either need to download a pre-compiled version (available on the [Old Maps Online site](http://help.oldmapsonline.org/jpeg2000/installation)) or [purchase the Kakadu libraries](http://www.kakadusoftware.com) and build it yourself. - -Diva relies on a JavaScript Object Notation (JSON) file that contains data about your document. This JSON file is automatically generated when you use the image conversion scripts that we distribute with Diva. These files can be served using a regular web server. - -There are two image formats supported by IIP: Pyramid TIFF and, with the inclusion of the Kakadu libraries, JPEG2000. These formats support multiple file resolutions and image tiling. - -## Installing - -### From a CDN (hosted) - -Downloading the Diva.js release package provides access to image processing scripts and demos of possible configurations. If you don't need these you can skip downloading and simply paste the following tags into the `` of any webpage to include all the files necessary to use Diva.js. - - - - - -### Locally (release package) - -Download the [latest release](https://github.com/DDMAL/diva.js/releases) of Diva. In the `diva.js` directory you can find a pre-compiled version. The `css` and `js` directories contain the files necessary to use Diva. Simply include [jQuery 2.x](https://jquery.com/), `css/diva.min.css` and `js/diva.min.js` in the `` of your webpage, as shown in the HTML source of the demo pages. You will also find some helper scripts for processing your image files. - -### Basic setup - -After including the necessary files, the most basic Diva viewer is instantiated with three (IIP) or one (IIIF) required parameter(s): - - - -Required for IIP and IIIF: - * `objectData`: The URL (absolute or relative) to the document's `.json` file, or a IIIF Manifest - -Required for IIP: - * `iipServerURL`: The URL to your IIP installation. In most cases this should point to the iipsrv.fcgi file; - * `imageDir`: Either the absolute path to your images on your server, OR the path relative to your IIP installation's [`FILESYSTEM_PREFIX`](http://iipimage.sourceforge.net/documentation/server/) configuration option. - -The `#diva-wrapper` selector points to a `div` element within which the document viewer will appear. - -See [Installation](https://github.com/DDMAL/diva.js/wiki/Installation) for full instructions. - -### Running the Demos - -Running the demos works best using a web server. The easiest is to use Python to start a small web server in the `diva.js` directory (or `build` if you have the source code): - -``` -$> cd diva-v3.0.0/diva.js/ # (or cd diva.js/build) -$> python -m SimpleHTTPServer -Serving HTTP on 0.0.0.0 port 8000 ... -``` -You may then load the demos in your web browser by visiting `http://localhost:8000` in your browser. - -## Building from source - -If you wish to install from source, first you must install [node.js and npm](https://nodejs.org/en/). Then, check out the code from [our GitHub repository](http://github.com/DDMAL/diva.js) or run `npm install diva.js`. Once you've obtained the code, change to the project directory and run `npm install -g gulp` then `npm install` to fetch all development dependencies. - -The full installation gives you access to the un-minified JavaScript source, the plugins, the documentation, and our unit-tests. We use [gulp](http://gulpjs.com/) as our build system and for other development tasks. - -``` -gulp develop // Runs a webserver at localhost:9001 and automatically builds and reloads upon changes -gulp develop:build // Compiles the Javascript and LESS source and places it in the build/ directory -gulp develop:test // Runs the unit tests and outputs a report to the console -``` - -Run `gulp develop` and navigate to [http://localhost:9001/demo](http://localhost:9001/demo) in your web browser to see the demo. - -See [Installation](https://github.com/DDMAL/diva.js/wiki/Installation) for more information. - -## Getting help - -Help for Diva.js is available through this repository's [wiki](https://github.com/DDMAL/diva.js/wiki), in the form of code documentation, installation instructions and usage tips. - -## Cross-site Requests - -You may receive an error that looks something like this: - -``` -XMLHttpRequest cannot load http://example.com/demo/imagefiles.json. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8000' is therefore not allowed access. -``` - -This is a security precaution that all browsers use to prevent cross-site request forgeries. If you receive this message it is because your `objectData` parameter and the server used to serve the Diva page are not at the same server address. - -To fix this you must ensure that the Diva HTML page, and the location pointed to by the `objectData` page are being served by the same server, or you must create an exception using the `Access-Control-Allow-Origin` header on your server to explicitly white-list the `objectData` location. - -Let Us Know ------------ - -We're developing Diva.js as part of our research in [Distributed Digital Music Libraries](http://ddmal.music.mcgill.ca). If you use it in your project, it would be great if you could [let us know](mailto:andrew.hankinson@mail.mcgill.ca). diff --git a/source/css/_mixins.scss b/source/css/_mixins.scss new file mode 100644 index 00000000..a2453482 --- /dev/null +++ b/source/css/_mixins.scss @@ -0,0 +1,43 @@ +@import "variables"; + +@mixin hidden() +{ + display: none; +} + +// Shortcut for a 1px solid border +@mixin frame($colour) +{ + border: $borderSize solid $colour; +} + +@mixin plugin-icon($plugin-name) +{ + background: data-uri('${iconPath}plugins/${plugin-name}.png') no-repeat; + + &:hover { + background: data-uri('${iconPath}plugins/${plugin-name}-hover.png') no-repeat; + } +} + +@mixin loading() +{ + background: data-uri("${iconPath}loading.gif") no-repeat center; +} + +@mixin pretty-shadow($distance: 4px) +{ + box-shadow: 2px 2px $distance 0 rgba(0, 0, 0, 0.5); +} + +@mixin full-width() +{ + width: 100% !important; + max-width: 100% !important; +} + +@mixin full-height() +{ + height: 100% !important; + max-height: 100% !important; +} diff --git a/source/css/_variables.scss b/source/css/_variables.scss new file mode 100644 index 00000000..1734cc76 --- /dev/null +++ b/source/css/_variables.scss @@ -0,0 +1,50 @@ +// Colours +$white: #FFF; +$mediumGrey: #CCC; +$grey: #DDD; +$lightGrey: #F1F1F1; +$lighterGrey: #FDFDFD; +$primaryBorder: #AAA; +$highlightBlue: #dfefff; +$regularBlue: rgb(0, 110, 188); + +// Customising the colour scheme +$viewerBg: $lightGrey; +$pageBg: $lighterGrey; +$viewerFrame: $primaryBorder; + +$toolsBg: $white; +$toolsFrame: $grey; + +// TODO: Could probably unify button, input variables +$buttonBg: $lightGrey; +$buttonFrame: $primaryBorder; +$buttonHover: $lighterGrey; + +$inputFrame: $primaryBorder; +$inputHoverFrame: darken($primaryBorder, 10%); + +$linkBg: $white; +$linkFrame: $grey; + +// z-index information +$fullscreenZIndex: 100; + +// Dimensions +$pluginIconSize: 20px; +$fullscreenIconSize: 26px; +$throbberWidth: 50px; +$throbberHeight: 50px; +$toolbarGroupMargin: 1em; + +$borderSize: 1px; + +$buttonSize: 34px; +$buttonPadding: 0.5em; + +$inputSize: 34px; +$inputPadding: 0.5em; + +$spinkit-spinner-margin: auto auto !default; +$spinkit-size: 40px !default; +$spinkit-spinner-color: #333 !default; diff --git a/source/css/viewer.less b/source/css/_viewer.scss similarity index 59% rename from source/css/viewer.less rename to source/css/_viewer.scss index 97000fa9..2f246168 100644 --- a/source/css/viewer.less +++ b/source/css/_viewer.scss @@ -1,8 +1,8 @@ -@import (reference) "variables.less"; -@import (reference) "mixins.less"; +@import "variables"; +@import "mixins"; .diva-wrapper { - min-height: 100%; + min-height: 95vh; width: 100%; flex-grow: 1; @@ -39,48 +39,48 @@ .diva-button { display: inline-block; cursor: pointer; - height: @buttonSize; - width: @buttonSize; + height: $buttonSize; + width: $buttonSize; - line-height: @buttonSize; + line-height: $buttonSize; -webkit-appearance: none; - padding: 0; + padding: 3px; - background-color: @buttonBg; + background-color: $buttonBg; background-repeat: no-repeat; background-position: center; - .frame(@buttonFrame); + @include frame($buttonFrame); &:hover, &:focus { - background-color: @buttonHover; + background-color: $buttonHover; } &.diva-button-text { width: auto; - padding: 0 @buttonPadding; + padding: 0 $buttonPadding; } } .diva-input { - height: @inputSize; - .frame(@inputFrame); + height: $inputSize; + @include frame($inputFrame); - padding: 0 @inputPadding; + padding: 0 $inputPadding; &:focus { - border-color: @inputHoverFrame; + border-color: $inputHoverFrame; } } .diva-label { - margin: 0 @toolbarGroupMargin; - line-height: @buttonSize; + margin: 0 $toolbarGroupMargin; + line-height: $buttonSize; vertical-align: top; white-space: nowrap; } .diva-tools-left, .diva-tools-right { - margin-bottom: @toolbarGroupMargin; + margin-bottom: $toolbarGroupMargin; } .diva-tools-left { @@ -88,12 +88,7 @@ user-select: none; } - .diva-zoom-out-button, .diva-grid-out-button { - background-image: data-uri("@{iconPath}zoomout.png"); - } - .diva-zoom-in-button, .diva-grid-in-button { - background-image: data-uri("@{iconPath}zoomin.png"); margin-left: -1px; } @@ -108,7 +103,7 @@ .diva-page-nav { white-space: nowrap; - margin-right: @toolbarGroupMargin; + margin-right: $toolbarGroupMargin; } .diva-goto-form { @@ -144,19 +139,16 @@ } .diva-input-suggestion.active, .diva-input-suggestion:hover { - background-color: @highlightBlue; + background-color: $highlightBlue; } .diva-fullscreen-icon { - background-image: data-uri("@{iconPath}fullscreen.png"); } .diva-toggle-nonpaged-icon { - background-image: data-uri("@{iconPath}toggle-nonpaged.png"); } .diva-toggle-nonpaged-icon-active { - background-image: data-uri("@{iconPath}toggle-nonpaged-active.png"); } .diva-view-menu { @@ -166,7 +158,7 @@ .diva-view-options { position: absolute; - top: @buttonSize; + top: $buttonSize; z-index: 1; display: none; box-shadow: 1px 1px 4px 0 rgba(0,0,0,0.1); @@ -178,19 +170,15 @@ } .diva-document-icon { - background-image: data-uri("@{iconPath}document.png"); } .diva-grid-icon { - background-image: data-uri("@{iconPath}grid.png"); } .diva-book-icon { - background-image: data-uri("@{iconPath}book.png"); } .diva-link-icon { - background-image: data-uri("@{iconPath}link.png"); } .diva-zoom-label, .diva-grid-label, .diva-page-label { @@ -201,11 +189,13 @@ position: fixed; top: 15px; right: 30px; - z-index: @fullscreenZIndex + 1; + z-index: $fullscreenZIndex + 1; padding: 15px; - .frame(@toolsFrame); - background: @toolsBg; - .pretty-shadow; + @include frame($toolsFrame); + background: $toolsBg; + transition: opacity 0.5s; + + @include pretty-shadow(); .diva-tools-left, .diva-tools-right { margin-bottom: 0; @@ -233,13 +223,12 @@ .diva-outer { display: flex; clear: both; - background: @viewerBg; - .frame(@viewerFrame); + background: $viewerBg; + @include frame($viewerFrame); position: relative; overflow: hidden; min-height: 100px; min-width: 200px; - height: 700px; flex-grow: 1; } @@ -258,22 +247,27 @@ overflow: auto; } - .diva-inner { - .grab; - position: relative; - overflow: hidden; - margin: 0 auto; +.diva-inner { + cursor: move; /* fallback if grab cursor is unsupported */ + cursor: grab; + cursor: -moz-grab; + cursor: -webkit-grab; + position: relative; + overflow: hidden; + margin: 0 auto; - &.diva-grabbing { - .grabbing; - } + &.diva-grabbing { + cursor: grabbing; + cursor: -moz-grabbing; + cursor: -webkit-grabbing; } +} - .diva-page { - box-shadow: 7px 7px 6px -6px rgba(0,0,0,0.3); - position: absolute; - background-color: @pageBg; - } +.diva-page { + box-shadow: 7px 7px 6px -6px rgba(0,0,0,0.3); + position: absolute; + background-color: $pageBg; +} .diva-page-tools-wrapper { position: absolute; @@ -282,21 +276,38 @@ .diva-page-tools { position: relative; - top: -@pluginIconSize; - height: @pluginIconSize; + top: -$pluginIconSize - 7; + height: $pluginIconSize; div { display: inline-block; - height: @pluginIconSize; - width: @pluginIconSize; + height: $pluginIconSize; + width: $pluginIconSize; cursor: pointer; + padding: 3px; + + svg:hover .diva-pagetool-icon { + fill: $regularBlue; + } } } +.diva-page-labels-wrapper { + position: absolute; + z-index: 3; +} + +.diva-page-labels { + position: relative; + top: -$pluginIconSize; + height: $pluginIconSize; + font-size: 0.8em; +} + .diva-fullscreen { - .full-width; - .full-height; - z-index: @fullscreenZIndex; + @include full-width(); + @include full-height(); + z-index: $fullscreenZIndex; position: fixed !important; top: 0; left: 0; @@ -305,12 +316,12 @@ } .diva-popup { - background: @linkBg; - .frame(@buttonFrame); + background: $linkBg; + @include frame($buttonFrame); padding: .6em; - z-index: @fullscreenZIndex + 1; + z-index: $fullscreenZIndex + 1; position: absolute; - .pretty-shadow; + @include pretty-shadow(); } .diva-link-popup { @@ -344,21 +355,66 @@ } // The loading indicator, shown if the AJAX request is slow +//.diva-throbber { +// .hidden; +// position: absolute; +// width: $throbberWidth; +// height: $throbberHeight; +// .loading; +// background-color: $white; +// border: 1px solid $grey; +// .pretty-shadow; +// top: 50%; +// left: 50%; +// margin-left: -$throbberWidth / 2; +// margin-top: -$throbberHeight / 2; +//} + +// https://github.com/tobiasahlin/SpinKit/blob/master/scss/spinners/9-cube-grid.scss .diva-throbber { - .hidden; - position: absolute; - width: @throbberWidth; - height: @throbberHeight; - .loading; - background-color: @white; - border: 1px solid @grey; - .pretty-shadow; - top: 50%; - left: 50%; - margin-left: -@throbberWidth / 2; - margin-top: -@throbberHeight / 2; + @include pretty-shadow(); + + $delayRange: 0.4s; + + width: $spinkit-size; + height: $spinkit-size; + margin: $spinkit-spinner-margin; + padding: 20px; + background-color: #fff; + + .cube { + width: 33.33%; + height: 33.33%; + background-color: $spinkit-spinner-color; + float: left; + animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out; + } + + /* + * Spinner positions + * 1 2 3 + * 4 5 6 + * 7 8 9 + */ + + .cube1 { animation-delay: $delayRange * 0.50 } + .cube2 { animation-delay: $delayRange * 0.75 } + .cube3 { animation-delay: $delayRange } + .cube4 { animation-delay: $delayRange * 0.25 } + .cube5 { animation-delay: $delayRange * 0.50 } + .cube6 { animation-delay: $delayRange * 0.75 } + .cube7 { animation-delay: 0.0s } + .cube8 { animation-delay: $delayRange * 0.25 } + .cube9 { animation-delay: $delayRange * 0.50 } +} + +@keyframes sk-cubeGridScaleDelay { + 0%, 70%, 100% { transform:scale3D(1.0, 1.0, 1.0) } + 35% { transform:scale3D(0.0, 0.0, 1.0) } } + + // Error message box, only shown if there is an error .diva-error { position: absolute; @@ -379,13 +435,13 @@ width: 18px; height: 18px; border: none; - background: #fff data-uri("@{iconPath}close.png"); + //background: #fff data-uri("${iconPath}close.png"); position: absolute; top: 1em; right: 1em; &:hover { - background-image: data-uri("@{iconPath}close-hover.png"); + //background-image: data-uri("${iconPath}close-hover.png"); cursor: hand; } } @@ -393,6 +449,7 @@ .diva-modal { position: absolute; width: 32em; + max-height: 24em; background-color: #fff; border: 1px solid #ddd; box-shadow: 2px 2px 4px 0 rgba(0,0,0,0.5); @@ -400,6 +457,27 @@ left: 50%; transform: translate(-50%, -50%); z-index: 120; - padding: 2em 2.2em; + word-wrap: break-word; +} + +#contentDiv { + overflow-y: auto; + max-height: 20em; + padding: 0em 0em 0em 2em; +} + +#metadataTitle { + padding: 0.5em; + margin: 0; + text-align: center; +} + +.close-button { + position: absolute; + right: 1em; + top: 1em; } +.close-button:hover { + color: tomato; +} \ No newline at end of file diff --git a/source/css/diva.less b/source/css/diva.less deleted file mode 100644 index e1d4de8a..00000000 --- a/source/css/diva.less +++ /dev/null @@ -1,13 +0,0 @@ -// Preboot stuff -@import (reference) "variables.less"; -@import (reference) "mixins.less"; - -// Stuff for the document viewer -@import "viewer.less"; - -// Plugins -@import "plugins/canvas.less"; -@import "plugins/download.less"; -@import "plugins/autoscroll.less"; -@import "plugins/iiif-highlight.less"; -@import "plugins/iiif-metadata.less"; diff --git a/source/css/diva.scss b/source/css/diva.scss new file mode 100644 index 00000000..94ac6682 --- /dev/null +++ b/source/css/diva.scss @@ -0,0 +1,14 @@ +// Preboot stuff +@import "variables"; +@import "mixins"; + +// Stuff for the document viewer +@import "viewer"; + +// Plugins +@import "plugins/manipulation"; +//@import "plugins/canvas.less"; +//@import "plugins/download.less"; +//@import "plugins/autoscroll.less"; +//@import "plugins/iiif-highlight.less"; +//@import "plugins/iiif-metadata.less"; diff --git a/source/css/mixins.less b/source/css/mixins.less deleted file mode 100644 index 5f3ee487..00000000 --- a/source/css/mixins.less +++ /dev/null @@ -1,44 +0,0 @@ -@import (reference) "variables.less"; - -.hidden() { - display: none; -} - -// Shortcut for a 1px solid border -.frame(@colour) { - border: @borderSize solid @colour; -} - -.plugin-icon(@plugin-name) { - background: data-uri('@{iconPath}plugins/@{plugin-name}.png') no-repeat; - - &:hover { - background: data-uri('@{iconPath}plugins/@{plugin-name}-hover.png') no-repeat; - } -} - -.grab() { - cursor: data-uri("@{iconPath}openhand.cur"), pointer; -} - -.grabbing() { - cursor: data-uri("@{iconPath}closedhand.cur"), move !important; -} - -.loading() { - background: data-uri("@{iconPath}loading.gif") no-repeat center; -} - -.pretty-shadow(@distance: 4px) { - box-shadow: 2px 2px @distance 0 rgba(0, 0, 0, 0.5); -} - -.full-width() { - width: 100% !important; - max-width: 100% !important; -} - -.full-height() { - height: 100% !important; - max-height: 100% !important; -} diff --git a/source/css/plugins/_manipulation.scss b/source/css/plugins/_manipulation.scss new file mode 100644 index 00000000..346ef323 --- /dev/null +++ b/source/css/plugins/_manipulation.scss @@ -0,0 +1,65 @@ +@import "../mixins"; +@import "../variables"; + +.manipulation-fullscreen { + @include full-width(); + @include full-height(); + + z-index: $fullscreenZIndex; + position: fixed !important; + top: 0; + left: 0; + margin: 0; + border: 0; + + background-color: rgba(0, 0, 0, 0.9); + + display: flex; +} + +.manipulation-sidebar { + width: 10%; + overflow: scroll; + text-align: center; + padding: 10px; + + .manipulation-sidebar-primary-image, + .manipulation-sidebar-secondary-image { + margin: 10px 0; + padding-bottom: 10px; + border-bottom: 1px solid #fff; + color: #fff; + } +} + +.manipulation-main-area { + width: 70%; + flex: 1 1 auto; + background-color: rgba(255, 255, 255, 0.5); + overflow: scroll; + text-align: center; + + cursor: move; /* fallback if grab cursor is unsupported */ + cursor: grab; + cursor: -moz-grab; + cursor: -webkit-grab; + + &.grabbing { + cursor: grabbing; + cursor: -moz-grabbing; + cursor: -webkit-grabbing; + } + + canvas { + margin: 0 auto; + } +} + +.manipulation-tools { + flex: 1 1 auto; + + .manipulation-tools-text { + color: #FBF7F6; + font-family: "Palatino Linotype", "Book Antiqua", Palatino, serif; + } +} diff --git a/source/css/plugins/autoscroll.less b/source/css/plugins/autoscroll.less deleted file mode 100644 index 10d57444..00000000 --- a/source/css/plugins/autoscroll.less +++ /dev/null @@ -1,25 +0,0 @@ -@import (reference) "../variables.less"; - -/* Begin autoscroll plugin */ - -.diva-autoscroll-icon { - background-image: data-uri("@{iconPath}plugins/autoscroll-play.png"); -} - -.diva-autoscroll-prefs { - display: none; - margin-right: .6em; -} - -.diva-autoscroll-prefs-text { - float: left; -} - -.diva-autoscroll-prefs-input { - float: right; - margin-left: .6em; -} - -.diva-autoscroll-pps { - width: 9em; -} diff --git a/source/css/plugins/canvas.less b/source/css/plugins/canvas.less deleted file mode 100644 index 4c10e01a..00000000 --- a/source/css/plugins/canvas.less +++ /dev/null @@ -1,256 +0,0 @@ -@import (reference) "../variables.less"; -@import (reference) "../mixins.less"; - -/* Begin canvas plugin */ - -// Colours - should not be changed -@black: #000; -@darkGrey: #333; - -// Dimensions - should not be changed -@toolsWidth: 230px; - -// Defines a base z-index for the backdrop div -@canvasZIndex: @fullscreenZIndex + 5; - -// Colour scheme -@canvasBackdropBg: rgba(50, 50, 50, 0.9); -@canvasToolsText: @darkGrey; -@canvasToolsBg: @white; -@canvasButtonText: @darkGrey; -@canvasButtonBg: @lightGrey; -@canvasButtonHoverBg: @lighterGrey; -@canvasPaneBg: @grey; -@canvasPreviewBg: @black; -@canvasViewboxFrame: @primaryBorder; - -.diva-canvas-icon { - .plugin-icon("canvas"); - - &.new { - background: data-uri('@{iconPath}plugins/canvas/canvas-enter-stored.png') no-repeat; - &:hover { - background: data-uri('@{iconPath}plugins/canvas/canvas-enter-stored-hover.png') no-repeat; - } - } -} - -#diva-canvas-backdrop { - z-index: @canvasZIndex; - position: fixed; - top: 0; - left: 0; - bottom: 0; - right: 0; - display: none; - background: @canvasBackdropBg; -} - -#diva-canvas-tools { - color: @canvasToolsText; - position: fixed; - top: 10px; - left: 10px; - width: @toolsWidth; - z-index: @canvasZIndex + 3; - background: @canvasToolsBg; - padding-bottom: 10px; - .pretty-shadow; - - .action-buttons { - clear: both; - margin-bottom: 5px; - text-align: right; - - a { - color: @canvasButtonText; - text-decoration: none; - background: @canvasButtonBg; - padding: 5px; - .frame(@buttonFrame); - - &:last-child { - border-left: 0; - } - - &:hover { - background: @canvasButtonHoverBg; - } - } - } -} - -#diva-canvas-toolbar { - height: 16px; - padding: 10px; - padding-bottom: 0; - div { - height: 18px; - width: 18px; - background-repeat: no-repeat; - cursor: pointer; - z-index: @canvasZIndex + 4; - display: inline-block; - margin-right: 5px; - } - span { - vertical-align: top; - float: right; - } -} - -#diva-canvas-toolwindow { - // Needs to be set to ensure the viewbox is hidden when minimising - position: relative; - margin: 10px; -} - -#diva-canvas-close { - background-image: data-uri("@{iconPath}close.png"); - - &:hover { - background-image: data-uri("@{iconPath}close-hover.png"); - } -} - -#diva-canvas-minimise { - background-image: data-uri("@{iconPath}plugins/canvas/canvas-minimise.png"); - - &:hover { - background-image: data-uri("@{iconPath}plugins/canvas/canvas-minimise-hover.png"); - } -} - -#diva-canvas-buttons { - div { - cursor: pointer; - background-repeat: no-repeat; - width: 20px; - height: 20px; - padding: 5px; - display: inline-block; - background-position: center center; - - &.clicked { - background-color: @canvasPaneBg; - } - } - - .button (@adjustmentName) { - background-image: data-uri("@{iconPath}plugins/canvas/canvas-adj-@{adjustmentName}.png"); - - &:hover, &.clicked { - background-image: data-uri("@{iconPath}plugins/canvas/canvas-adj-@{adjustmentName}-hover.png"); - } - } - - .contrast { - .button("contrast"); - } - - .brightness { - .button("brightness"); - } - - .rotation { - .button("rotation"); - } - - .zoom { - .button("zoom"); - } - - .red { - .button("red"); - } - - .green { - .button("green"); - } - - .blue { - .button("blue"); - } -} - -#diva-canvas-pane { - background: @canvasPaneBg; - padding-bottom: 10px; - - p { - margin-left: 10px; - padding-top: 10px; - - .link { - cursor: pointer; - - &:hover { - text-decoration: underline; - } - } - } -} - -#diva-canvas-mode { - text-transform: capitalize; -} - -#diva-canvas-slider { - width: 188px; - margin: 0 auto; - display: block; - - .handle { - margin-left: -6px; - } -} - -#diva-canvas-minimap { - height: @toolsWidth - 20px; - width: @toolsWidth - 20px; - cursor: crosshair; - margin-bottom: 10px; - background: @canvasPreviewBg; -} - -#diva-canvas { - position: absolute; - // Center it (if it's smaller than the browser window) - left: 0; - right: 0; - margin: 0 auto; - z-index: @canvasZIndex + 2; - .grab; -} - -#diva-map-viewbox { - border: 2px solid @canvasViewboxFrame; - position: absolute; - top: 10px; - left: 10px; - cursor: crosshair; - user-select: none; - .hidden; -} - -// Added to the body upon entering canvas mode (to hide the scrollbar) -.overflow-hidden { - overflow: hidden !important; -} - -#diva-canvas-wrapper { - z-index: @canvasZIndex + 1; - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 0; - overflow: scroll; -} - -.canvas-throbber { - z-index: @canvasZIndex + 5; - position: fixed; -} - -/* End canvas plugin */ diff --git a/source/css/plugins/download.less b/source/css/plugins/download.less deleted file mode 100644 index 702e8a75..00000000 --- a/source/css/plugins/download.less +++ /dev/null @@ -1,9 +0,0 @@ -@import (reference) "../mixins.less"; - -/* Begin download plugin */ - -.diva-download-icon { - .plugin-icon("download"); -} - -/* End download plugin */ diff --git a/source/css/plugins/iiif-highlight.less b/source/css/plugins/iiif-highlight.less deleted file mode 100644 index d297c030..00000000 --- a/source/css/plugins/iiif-highlight.less +++ /dev/null @@ -1,23 +0,0 @@ -@import (reference) "../variables.less"; - -/* Begin iiif-highlight plugin */ - -.annotation-overlay { - padding: 1px; -} - -.diva-annotations-icon { - float: right; - border-right: none; - background-image: data-uri("@{iconPath}plugins/annotation.png"); -} - -.annotations-icon-active { - background-image: data-uri("@{iconPath}plugins/annotation-active.png"); -} - -.diva-inner.annotations-hidden .diva-highlight { - display: none; -} - -/* End iiif-highlight plugin */ diff --git a/source/css/plugins/iiif-metadata.less b/source/css/plugins/iiif-metadata.less deleted file mode 100644 index 491537b8..00000000 --- a/source/css/plugins/iiif-metadata.less +++ /dev/null @@ -1,12 +0,0 @@ -/* Begin iiif-metadata plugin */ - -.metadata-label { - font-weight: bold; -} - -.diva-metadata-link { - font-size: 1em; - line-height: 1.8em; -} - -/* End iiif-metadata plugin */ diff --git a/source/css/variables.less b/source/css/variables.less deleted file mode 100644 index 949bd549..00000000 --- a/source/css/variables.less +++ /dev/null @@ -1,48 +0,0 @@ -// Colours -@white: #FFF; -@mediumGrey: #CCC; -@grey: #DDD; -@lightGrey: #F1F1F1; -@lighterGrey: #FDFDFD; -@primaryBorder: #AAA; -@highlightBlue: #dfefff; - -// Location of icon images (these are inlined using data-uri()) -@iconPath: "../img/"; - -// Customising the colour scheme -@viewerBg: @lightGrey; -@pageBg: @lighterGrey; -@viewerFrame: @primaryBorder; - -@toolsBg: @white; -@toolsFrame: @grey; - -// TODO: Could probably unify button, input variables -@buttonBg: @lightGrey; -@buttonFrame: @primaryBorder; -@buttonHover: @lighterGrey; - -@inputFrame: @primaryBorder; -@inputHoverFrame: darken(@primaryBorder, 10%); - -@linkBg: @white; -@linkFrame: @grey; - -// z-index information -@fullscreenZIndex: 100; - -// Dimensions -@pluginIconSize: 25px; -@fullscreenIconSize: 26px; -@throbberWidth: 50px; -@throbberHeight: 50px; -@toolbarGroupMargin: 1em; - -@borderSize: 1px; - -@buttonSize: 34px; -@buttonPadding: 0.5em; - -@inputSize: 34px; -@inputPadding: 0.5em; diff --git a/source/img/actions.png b/source/img/actions.png deleted file mode 100644 index dc3578cc..00000000 Binary files a/source/img/actions.png and /dev/null differ diff --git a/source/img/adjust.svg b/source/img/adjust.svg new file mode 100644 index 00000000..e1a138a5 --- /dev/null +++ b/source/img/adjust.svg @@ -0,0 +1,11 @@ + + \ No newline at end of file diff --git a/source/img/book-view.svg b/source/img/book-view.svg new file mode 100644 index 00000000..6fbc14b5 --- /dev/null +++ b/source/img/book-view.svg @@ -0,0 +1,6 @@ + + \ No newline at end of file diff --git a/source/img/book.png b/source/img/book.png deleted file mode 100644 index 7a605445..00000000 Binary files a/source/img/book.png and /dev/null differ diff --git a/source/img/close-hover.png b/source/img/close-hover.png deleted file mode 100644 index 8bac030d..00000000 Binary files a/source/img/close-hover.png and /dev/null differ diff --git a/source/img/close.png b/source/img/close.png deleted file mode 100644 index 3a6e51c9..00000000 Binary files a/source/img/close.png and /dev/null differ diff --git a/source/img/close.svg b/source/img/close.svg new file mode 100644 index 00000000..9ebc41a7 --- /dev/null +++ b/source/img/close.svg @@ -0,0 +1,6 @@ + + \ No newline at end of file diff --git a/source/img/closedhand.cur b/source/img/closedhand.cur deleted file mode 100644 index 41aaa62a..00000000 Binary files a/source/img/closedhand.cur and /dev/null differ diff --git a/source/img/document.png b/source/img/document.png deleted file mode 100644 index ff8fbaf6..00000000 Binary files a/source/img/document.png and /dev/null differ diff --git a/source/img/download.svg b/source/img/download.svg new file mode 100644 index 00000000..85bc5e21 --- /dev/null +++ b/source/img/download.svg @@ -0,0 +1,6 @@ + + \ No newline at end of file diff --git a/source/img/from-fullscreen.svg b/source/img/from-fullscreen.svg new file mode 100644 index 00000000..d08f0ff8 --- /dev/null +++ b/source/img/from-fullscreen.svg @@ -0,0 +1,8 @@ + + \ No newline at end of file diff --git a/source/img/fullscreen.png b/source/img/fullscreen.png deleted file mode 100644 index 5bbc1659..00000000 Binary files a/source/img/fullscreen.png and /dev/null differ diff --git a/source/img/grid-fewer.svg b/source/img/grid-fewer.svg new file mode 100644 index 00000000..5fa7f267 --- /dev/null +++ b/source/img/grid-fewer.svg @@ -0,0 +1,6 @@ + + \ No newline at end of file diff --git a/source/img/grid-more.svg b/source/img/grid-more.svg new file mode 100644 index 00000000..716a1b9a --- /dev/null +++ b/source/img/grid-more.svg @@ -0,0 +1,6 @@ + + \ No newline at end of file diff --git a/source/img/grid-view.svg b/source/img/grid-view.svg new file mode 100644 index 00000000..10ec561a --- /dev/null +++ b/source/img/grid-view.svg @@ -0,0 +1,6 @@ + + \ No newline at end of file diff --git a/source/img/grid.png b/source/img/grid.png deleted file mode 100644 index 37d06ceb..00000000 Binary files a/source/img/grid.png and /dev/null differ diff --git a/source/img/link.png b/source/img/link.png deleted file mode 100644 index f8f3ef94..00000000 Binary files a/source/img/link.png and /dev/null differ diff --git a/source/img/link.svg b/source/img/link.svg new file mode 100644 index 00000000..e843d6f7 --- /dev/null +++ b/source/img/link.svg @@ -0,0 +1,6 @@ + + \ No newline at end of file diff --git a/source/img/loading.gif b/source/img/loading.gif deleted file mode 100644 index 3f435444..00000000 Binary files a/source/img/loading.gif and /dev/null differ diff --git a/source/img/metadata.svg b/source/img/metadata.svg new file mode 100644 index 00000000..657a7695 --- /dev/null +++ b/source/img/metadata.svg @@ -0,0 +1,9 @@ + + \ No newline at end of file diff --git a/source/img/openhand.cur b/source/img/openhand.cur deleted file mode 100644 index fba3ddc8..00000000 Binary files a/source/img/openhand.cur and /dev/null differ diff --git a/source/img/page-view.svg b/source/img/page-view.svg new file mode 100644 index 00000000..2a8efc3e --- /dev/null +++ b/source/img/page-view.svg @@ -0,0 +1,6 @@ + + \ No newline at end of file diff --git a/source/img/plugins/annotation-active.png b/source/img/plugins/annotation-active.png deleted file mode 100644 index 361866c6..00000000 Binary files a/source/img/plugins/annotation-active.png and /dev/null differ diff --git a/source/img/plugins/annotation.png b/source/img/plugins/annotation.png deleted file mode 100644 index 4ba09955..00000000 Binary files a/source/img/plugins/annotation.png and /dev/null differ diff --git a/source/img/plugins/autoscroll-play.png b/source/img/plugins/autoscroll-play.png deleted file mode 100644 index 72dd5390..00000000 Binary files a/source/img/plugins/autoscroll-play.png and /dev/null differ diff --git a/source/img/plugins/canvas-hover.png b/source/img/plugins/canvas-hover.png deleted file mode 100644 index d33dd3f9..00000000 Binary files a/source/img/plugins/canvas-hover.png and /dev/null differ diff --git a/source/img/plugins/canvas.png b/source/img/plugins/canvas.png deleted file mode 100644 index 1baff9d9..00000000 Binary files a/source/img/plugins/canvas.png and /dev/null differ diff --git a/source/img/plugins/canvas/canvas-adj-blue-hover.png b/source/img/plugins/canvas/canvas-adj-blue-hover.png deleted file mode 100644 index 576617e2..00000000 Binary files a/source/img/plugins/canvas/canvas-adj-blue-hover.png and /dev/null differ diff --git a/source/img/plugins/canvas/canvas-adj-blue.png b/source/img/plugins/canvas/canvas-adj-blue.png deleted file mode 100644 index 469a9b9d..00000000 Binary files a/source/img/plugins/canvas/canvas-adj-blue.png and /dev/null differ diff --git a/source/img/plugins/canvas/canvas-adj-brightness-hover.png b/source/img/plugins/canvas/canvas-adj-brightness-hover.png deleted file mode 100644 index 0e381ae3..00000000 Binary files a/source/img/plugins/canvas/canvas-adj-brightness-hover.png and /dev/null differ diff --git a/source/img/plugins/canvas/canvas-adj-brightness.png b/source/img/plugins/canvas/canvas-adj-brightness.png deleted file mode 100644 index d8ff489f..00000000 Binary files a/source/img/plugins/canvas/canvas-adj-brightness.png and /dev/null differ diff --git a/source/img/plugins/canvas/canvas-adj-contrast-hover.png b/source/img/plugins/canvas/canvas-adj-contrast-hover.png deleted file mode 100644 index e6ecfe83..00000000 Binary files a/source/img/plugins/canvas/canvas-adj-contrast-hover.png and /dev/null differ diff --git a/source/img/plugins/canvas/canvas-adj-contrast.png b/source/img/plugins/canvas/canvas-adj-contrast.png deleted file mode 100644 index 3cd11e3c..00000000 Binary files a/source/img/plugins/canvas/canvas-adj-contrast.png and /dev/null differ diff --git a/source/img/plugins/canvas/canvas-adj-green-hover.png b/source/img/plugins/canvas/canvas-adj-green-hover.png deleted file mode 100644 index 6c3fbaba..00000000 Binary files a/source/img/plugins/canvas/canvas-adj-green-hover.png and /dev/null differ diff --git a/source/img/plugins/canvas/canvas-adj-green.png b/source/img/plugins/canvas/canvas-adj-green.png deleted file mode 100644 index aa73824c..00000000 Binary files a/source/img/plugins/canvas/canvas-adj-green.png and /dev/null differ diff --git a/source/img/plugins/canvas/canvas-adj-red-hover.png b/source/img/plugins/canvas/canvas-adj-red-hover.png deleted file mode 100644 index c18d02ce..00000000 Binary files a/source/img/plugins/canvas/canvas-adj-red-hover.png and /dev/null differ diff --git a/source/img/plugins/canvas/canvas-adj-red.png b/source/img/plugins/canvas/canvas-adj-red.png deleted file mode 100644 index d8f5706d..00000000 Binary files a/source/img/plugins/canvas/canvas-adj-red.png and /dev/null differ diff --git a/source/img/plugins/canvas/canvas-adj-rotation-hover.png b/source/img/plugins/canvas/canvas-adj-rotation-hover.png deleted file mode 100644 index 0308e81f..00000000 Binary files a/source/img/plugins/canvas/canvas-adj-rotation-hover.png and /dev/null differ diff --git a/source/img/plugins/canvas/canvas-adj-rotation.png b/source/img/plugins/canvas/canvas-adj-rotation.png deleted file mode 100644 index bef0bd5c..00000000 Binary files a/source/img/plugins/canvas/canvas-adj-rotation.png and /dev/null differ diff --git a/source/img/plugins/canvas/canvas-adj-zoom-hover.png b/source/img/plugins/canvas/canvas-adj-zoom-hover.png deleted file mode 100644 index 0f9b4ec5..00000000 Binary files a/source/img/plugins/canvas/canvas-adj-zoom-hover.png and /dev/null differ diff --git a/source/img/plugins/canvas/canvas-adj-zoom.png b/source/img/plugins/canvas/canvas-adj-zoom.png deleted file mode 100644 index 8cad2a1b..00000000 Binary files a/source/img/plugins/canvas/canvas-adj-zoom.png and /dev/null differ diff --git a/source/img/plugins/canvas/canvas-enter-stored-hover.png b/source/img/plugins/canvas/canvas-enter-stored-hover.png deleted file mode 100644 index eec7bf91..00000000 Binary files a/source/img/plugins/canvas/canvas-enter-stored-hover.png and /dev/null differ diff --git a/source/img/plugins/canvas/canvas-enter-stored.png b/source/img/plugins/canvas/canvas-enter-stored.png deleted file mode 100644 index 37d27294..00000000 Binary files a/source/img/plugins/canvas/canvas-enter-stored.png and /dev/null differ diff --git a/source/img/plugins/canvas/canvas-minimise-hover.png b/source/img/plugins/canvas/canvas-minimise-hover.png deleted file mode 100644 index 2c213c77..00000000 Binary files a/source/img/plugins/canvas/canvas-minimise-hover.png and /dev/null differ diff --git a/source/img/plugins/canvas/canvas-minimise.png b/source/img/plugins/canvas/canvas-minimise.png deleted file mode 100644 index 9e075604..00000000 Binary files a/source/img/plugins/canvas/canvas-minimise.png and /dev/null differ diff --git a/source/img/plugins/download-hover.png b/source/img/plugins/download-hover.png deleted file mode 100644 index d9f4f0e3..00000000 Binary files a/source/img/plugins/download-hover.png and /dev/null differ diff --git a/source/img/plugins/download.png b/source/img/plugins/download.png deleted file mode 100644 index 19215f36..00000000 Binary files a/source/img/plugins/download.png and /dev/null differ diff --git a/source/img/to-fullscreen.svg b/source/img/to-fullscreen.svg new file mode 100644 index 00000000..3e2998ed --- /dev/null +++ b/source/img/to-fullscreen.svg @@ -0,0 +1,11 @@ + + diff --git a/source/img/toggle-nonpaged-active.png b/source/img/toggle-nonpaged-active.png deleted file mode 100644 index 4f61249e..00000000 Binary files a/source/img/toggle-nonpaged-active.png and /dev/null differ diff --git a/source/img/toggle-nonpaged.png b/source/img/toggle-nonpaged.png deleted file mode 100644 index 7d4512f6..00000000 Binary files a/source/img/toggle-nonpaged.png and /dev/null differ diff --git a/source/img/zoom-in.svg b/source/img/zoom-in.svg new file mode 100644 index 00000000..cf27a817 --- /dev/null +++ b/source/img/zoom-in.svg @@ -0,0 +1,6 @@ + + diff --git a/source/img/zoom-out.svg b/source/img/zoom-out.svg new file mode 100644 index 00000000..baf4135a --- /dev/null +++ b/source/img/zoom-out.svg @@ -0,0 +1,7 @@ + + diff --git a/source/img/zoomin.png b/source/img/zoomin.png deleted file mode 100644 index f101dab5..00000000 Binary files a/source/img/zoomin.png and /dev/null differ diff --git a/source/img/zoomout.png b/source/img/zoomout.png deleted file mode 100644 index bcf98ef4..00000000 Binary files a/source/img/zoomout.png and /dev/null differ diff --git a/source/js/.jshintrc b/source/js/.jshintrc deleted file mode 100644 index 343e0695..00000000 --- a/source/js/.jshintrc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "../../.jshintrc", - - "node": false, - "browserify": true, - - "latedef": false, - "eqeqeq": false -} diff --git a/source/js/active-diva-controller.js b/source/js/active-diva-controller.js deleted file mode 100644 index 6dff5134..00000000 --- a/source/js/active-diva-controller.js +++ /dev/null @@ -1,71 +0,0 @@ -var jQuery = require('jquery'); - -//Used to keep track of whether Diva was last clicked or which Diva was last clicked when there are multiple -var ActiveDivaController = (function ($) -{ - return function () - { - var active; - - //global click listener - $(document).on('click', function(e) - { - updateActive($(e.target)); - }); - - //parameter should already be a jQuery selector - var updateActive = function (target) - { - var nearestOuter; - - //these will find 0 or 1 objects, never more - var findOuter = target.find('.diva-outer'); - var closestOuter = target.closest('.diva-outer'); - var outers = document.getElementsByClassName('diva-outer'); - var outerLen = outers.length; - var idx; - - //clicked on something that was not either a parent or sibling of a diva-outer - if (findOuter.length > 0) - { - nearestOuter = findOuter; - } - //clicked on something that was a child of a diva-outer - else if (closestOuter.length > 0) - { - nearestOuter = closestOuter; - } - //clicked on something that was not in any Diva tree - else - { - //deactivate everything and return - for (idx = 0; idx < outerLen; idx++) - { - $(outers[idx].parentElement.parentElement).data('diva').deactivate(); - } - return; - } - - //if we found one, activate it... - nearestOuter.parent().parent().data('diva').activate(); - active = nearestOuter.parent(); - - //...and deactivate all the others - outers = document.getElementsByClassName('diva-outer'); - for(idx = 0; idx < outerLen; idx++) - { - //getAttribute to attr - comparing DOM element to jQuery element - if (outers[idx].getAttribute('id') != nearestOuter.attr('id')) - $(outers[idx].parentElement.parentElement).data('diva').deactivate(); - } - }; - - //public accessor in case. Will return a jQuery selector. - this.getActive = function() - { - return active; - }; - }; -})(jQuery); - -module.exports = ActiveDivaController; diff --git a/source/js/composite-image.js b/source/js/composite-image.js index ef9baaf8..04a3baba 100644 --- a/source/js/composite-image.js +++ b/source/js/composite-image.js @@ -1,4 +1,4 @@ -module.exports = CompositeImage; +import TileCoverageMap from "./tile-coverage-map"; /** * @class CompositeImage @@ -13,192 +13,158 @@ module.exports = CompositeImage; * @param levels {Array. Filter Application Order ";
+ }
+
+ _filterQueue.push({
+ filter: filter,
+ prevData: _filterQueue.length === 0 ? data : _filterQueue[_filterQueue.length - 1].postData,
+ adjust: adjust,
+ name: name
+ });
+
+ let filtObj = _filterQueue[_filterQueue.length - 1];
+
+ if (filtObj.name === 'Sharpness')
+ filtObj.postData = convolve(filtObj.prevData, filtObj.adjust);
+ else
+ filtObj.postData = _apply(filtObj.prevData, filtObj.filter, filtObj.adjust);
+
+ // invert filter was added to queue
+ if (filtObj.name === 'Invert')
+ inverted = true;
+
+ // add name to applied filters log
+ let p = document.createElement('p');
+ p.setAttribute('style', 'color: white; margin: 0;');
+ p.innerText = filtObj.name;
+ document.getElementById('filter-log').appendChild(p);
+
+ return filtObj.postData;
+ }
+}
+
+/**
+ * Pre-paints the adjustment to an offscreen canvas before moving it to the on-screen canvas.
+ **/
+function _getOffscreenCanvasData (w, h)
+{
+ let tmpCanvas = document.createElement('canvas');
+ let tmpCtx = tmpCanvas.getContext('2d');
+
+ return tmpCtx.createImageData(w, h);
+}
+
+function _manipulateImage (data, func, adjustment)
+{
+ let len = data.length;
+
+ for (let i = 0; i < len; i += 4)
+ {
+ let r = data[i];
+ let g = data[i + 1];
+ let b = data[i + 2];
+
+ let newPixelValue = func(r, g, b, adjustment);
+
+ data[i] = newPixelValue[0];
+ data[i + 1] = newPixelValue[1];
+ data[i + 2] = newPixelValue[2];
+ data[i + 3] = newPixelValue[3];
+ }
+
+ return data;
+}
+
+function _apply (data, pixelFunc, adjust)
+{
+ let dataArr = new Uint8ClampedArray(data.data);
+ let inverted = _manipulateImage(dataArr, pixelFunc, adjust);
+
+ let newCanvasData = _getOffscreenCanvasData(data.width, data.height);
+ newCanvasData.data.set(inverted);
+
+ return newCanvasData;
+}
+
+/**
+ * Inverts the colours of a canvas.
+ *
+ * @params {object} data - A canvas image data object.
+ * @returns {object} A new canvas data object.
+ **/
+export function grayscale(data)
+{
+ return addFilterToQueue(data, _grayscale, null, 'Grayscale');
+}
+
+/**
+ * See: https://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale
+ *
+ * Reference: http://www.phpied.com/image-fun/ and https://github.com/meltingice/CamanJS/blob/master/src/lib/filters.coffee#L89
+ *
+ * @params {integer} r - the value of the red pixel
+ * @params {integer} g - the value of the green pixel
+ * @params {integer} b - the value of the blue pixel
+ * @returns {Array} - The computed RGB values for the input, with a constant 255 for the alpha channel.
+ **/
+function _grayscale (r, g, b)
+{
+ let pixelAverage = (0.3 * r + 0.59 * g + 0.11 * b);
+
+ return [pixelAverage, pixelAverage, pixelAverage, 255];
+}
+
+export function saturation (data, adjust)
+{
+ return addFilterToQueue(data, _saturation, adjust, 'Saturation');
+}
+
+/**
+ * Adjusts the color saturation of the image.
+ * Range is -100 to 100. Values < 0 will desaturate the image while values > 0 will saturate it.
+ *
+ * See https://github.com/meltingice/CamanJS/blob/master/src/lib/filters.coffee#L42-L58
+ *
+ * @params {integer} r - the value of the red pixel
+ * @params {integer} g - the value of the green pixel
+ * @params {integer} b - the value of the blue pixel
+ * @params {integer} adjust - the saturation value for adjustment, -100 to 100
+ * @returns {Array} - The computed RGB values for the input, with a constant 255 for the alpha channel.
+ **/
+function _saturation (r, g, b, adjust)
+{
+ let adj = adjust * -0.01;
+ let max = Math.max(r, g, b);
+
+ return [
+ r !== max ? r + (max - r) * adj : r,
+ g !== max ? g + (max - g) * adj : g,
+ b !== max ? b + (max - b) * adj : b,
+ 255
+ ];
+}
+
+export function vibrance (data, adjust)
+{
+ return addFilterToQueue(data, _vibrance, adjust, 'Vibrance');
+}
+
+/**
+ * Similar to saturation, but adjusts the saturation levels in a slightly smarter, more subtle way.
+ * Vibrance will attempt to boost colors that are less saturated more and boost already saturated
+ * colors less, while saturation boosts all colors by the same level.
+ *
+ * See: https://github.com/meltingice/CamanJS/blob/master/src/lib/filters.coffee#L60
+ *
+ * @params {integer} r - the value of the red pixel
+ * @params {integer} g - the value of the green pixel
+ * @params {integer} b - the value of the blue pixel
+ * @params {integer} adjust - the vibrance value for adjustment, -100 to 100
+ * @returns {Array} - The computed RGB values for the input, with a constant 255 for the alpha channel.
+ **/
+function _vibrance (r, g, b, adjust)
+{
+ let adj = adjust * -1;
+
+ let max = Math.max(r, g, b);
+ let avg = r + g + b / 3;
+ let amt = ((Math.abs(max - avg) * 2 / 255) * adj) / 100;
+
+ return [
+ r !== max ? r + (max - r) * amt : r,
+ g !== max ? g + (max - g) * amt : g,
+ b !== max ? b + (max - b) * amt : b,
+ 255
+ ];
+}
+
+export function brightness (data, adjust)
+{
+ return addFilterToQueue(data, _brightness, adjust, 'Brightness');
+}
+
+function _brightness (r, g, b, adjust)
+{
+ let adj = Math.floor(255 * (adjust / 100));
+
+ return [
+ r + adj,
+ g + adj,
+ b + adj,
+ 255
+ ];
+}
+
+export function contrast (data, adjust)
+{
+ return addFilterToQueue(data, _contrast, adjust, 'Contrast');
+}
+
+/**
+ * Increases or decreases the color contrast of the image.
+ *
+ * @params {integer} r - the value of the red pixel
+ * @params {integer} g - the value of the green pixel
+ * @params {integer} b - the value of the blue pixel
+ * @params {integer} adjust - the contrast value for adjustment, -100 to 100
+ * @returns {Array} - The computed RGB values for the input, with a constant 255 for the alpha channel.
+ **/
+function _contrast (r, g, b, adjust)
+{
+ let adj = Math.pow((adjust + 100) / 100, 2);
+ let rr = r, gg = g, bb = b;
+
+ rr /= 255;
+ rr -= 0.5;
+ rr *= adj;
+ rr += 0.5;
+ rr *= 255;
+
+ gg /= 255;
+ gg -= 0.5;
+ gg *= adj;
+ gg += 0.5;
+ gg *= 255;
+
+ bb /= 255;
+ bb -= 0.5;
+ bb *= adj;
+ bb += 0.5;
+ bb *= 255;
+
+ return [
+ rr, gg, bb, 255
+ ];
+}
+/**
+ * Inverts the colours of a canvas.
+ *
+ * @params {object} data - A canvas image data object.
+ * @returns {object} A new canvas data object.
+ **/
+export function invert(data)
+{
+ return addFilterToQueue(data, _invert, null, 'Invert');
+}
+
+/**
+ * Inverts the colours of the image.
+ * See: https://github.com/meltingice/CamanJS/blob/master/src/lib/filters.coffee#L183
+ *
+ * @params {integer} r - the value of the red pixel
+ * @params {integer} g - the value of the green pixel
+ * @params {integer} b - the value of the blue pixel
+ * @returns {Array} - The computed RGB values for the input, with a constant 255 for the alpha channel.
+ **/
+function _invert (r, g, b)
+{
+ return [
+ 255 - r,
+ 255 - g,
+ 255 - b,
+ 255
+ ];
+}
+
+export function threshold(data, adjust)
+{
+ return addFilterToQueue(data, _threshold, adjust, 'Threshold');
+}
+
+/**
+ * Black pixels above a certain value (0-255); otherwise white. Perceptively weighted.
+ *
+ * See: https://www.html5rocks.com/en/tutorials/canvas/imagefilters/
+ *
+ * @params {integer} r - the value of the red pixel
+ * @params {integer} g - the value of the green pixel
+ * @params {integer} b - the value of the blue pixel
+ * @params {integer} adjust - the threshold value, 0-255
+ * @returns {Array} - The computed RGB values for the input, with a constant 255 for the alpha channel.
+ **/
+function _threshold (r, g, b, adjust)
+{
+ let v = (0.2126 * r + 0.7152 * g + 0.0722 * b >= adjust) ? 255 : 0;
+
+ return [
+ v, v, v, 255
+ ];
+
+}
+
+export function hue (data, adjust)
+{
+ return addFilterToQueue(data, _hue, adjust, 'Hue');
+}
+
+function _hue (r, g, b, adjust)
+{
+ let {h, s, v} = rgbToHSV(r, g, b);
+
+ h = h * 100;
+ h += Math.abs(adjust);
+ h = h % 100;
+ h /= 100;
+
+ let res = hsvToRGB(h, s, v);
+
+ return [
+ res.r, res.g, res.b, 255
+ ];
+}
+
+export function gamma (data, adjust)
+{
+ return addFilterToQueue(data, _gamma, adjust, 'Gamma');
+}
+
+/**
+ * Adjusts the gamma of the image.
+ * Range is 0 to 4. Values between 0 and 1 will lessen the contrast while values greater
+ * than 1 will increase it. Starts at 1 default. The actual adjust slider is from -100 to
+ * 300 (so default can be 0 and offset accordingly), so must scale properly
+ * See https://github.com/meltingice/CamanJS/blob/master/src/lib/filters.coffee#L210-L221
+ *
+ * @params {integer} r - the value of the red pixel
+ * @params {integer} g - the value of the green pixel
+ * @params {integer} b - the value of the blue pixel
+ * @params {integer} adjust - the gamma value for adjustment, 0 to 400
+ * @returns {Array} - The computed RGB values for the input, with a constant 255 for the alpha channel.
+ **/
+function _gamma (r, g, b, adjust)
+{
+ let adj = adjust / 100 + 1;
+ if (adj < 0)
+ adj *= -1;
+
+ return [
+ Math.pow(r / 255, adj) * 255,
+ Math.pow(g / 255, adj) * 255,
+ Math.pow(b / 255, adj) * 255,
+ 255
+ ];
+}
+
+export function ccRed (data, adjust)
+{
+ return addFilterToQueue(data, _ccRed, adjust, 'CC Red');
+}
+
+/**
+ * Adjusts the red intensity of the image.
+ *
+ * See https://github.com/meltingice/CamanJS/blob/master/src/lib/filters.coffee#L274-L305
+ *
+ * @params {integer} r - the value of the red pixel
+ * @params {integer} g - the value of the green pixel
+ * @params {integer} b - the value of the blue pixel
+ * @params {integer} adjust - the red value for adjustment, -100 to 100
+ * @returns {Array} - The computed RGB values for the input, with a constant 255 for the alpha channel.
+ */
+function _ccRed (r, g, b, adjust)
+{
+ let adj = adjust / 100;
+
+ return [
+ adj > 0 ? r + (255 - r) * adj : r - r * Math.abs(adj),
+ g,
+ b,
+ 255
+ ];
+}
+
+export function ccGreen (data, adjust)
+{
+ return addFilterToQueue(data, _ccGreen, adjust, 'CC Green');
+}
+
+/**
+ * Adjusts the green intensity of the image.
+ *
+ * See https://github.com/meltingice/CamanJS/blob/master/src/lib/filters.coffee#L274-L305
+ *
+ * @params {integer} r - the value of the red pixel
+ * @params {integer} g - the value of the green pixel
+ * @params {integer} b - the value of the blue pixel
+ * @params {integer} adjust - the green value for adjustment, -100 to 100
+ * @returns {Array} - The computed RGB values for the input, with a constant 255 for the alpha channel.
+ */
+function _ccGreen (r, g, b, adjust)
+{
+ let adj = adjust / 100;
+
+ return [
+ r,
+ adj > 0 ? g + (255 - g) * adj : g - g * Math.abs(adj),
+ b,
+ 255
+ ];
+}
+
+export function ccBlue (data, adjust)
+{
+ return addFilterToQueue(data, _ccBlue, adjust, 'CC Blue');
+}
+
+/**
+ * Adjusts the blue intensity of the image.
+ *
+ * See https://github.com/meltingice/CamanJS/blob/master/src/lib/filters.coffee#L274-L305
+ *
+ * @params {integer} r - the value of the red pixel
+ * @params {integer} g - the value of the green pixel
+ * @params {integer} b - the value of the blue pixel
+ * @params {integer} adjust - the blue value for adjustment, -100 to 100
+ * @returns {Array} - The computed RGB values for the input, with a constant 255 for the alpha channel.
+ */
+function _ccBlue (r, g, b, adjust)
+{
+ let adj = adjust / 100;
+
+ return [
+ r,
+ g,
+ adj > 0 ? b + (255 - b) * adj : b - b * Math.abs(adj),
+ 255
+ ];
+}
+
+export function rgbToHSV (r, g, b)
+{
+ let rr = r, gg = g, bb = b;
+
+ rr /= 255;
+ gg /= 255;
+ bb /= 255;
+
+ let max = Math.max(rr, gg, bb);
+ let min = Math.min(rr, gg, bb);
+ let v = max;
+ let d = max - min;
+
+ let s = max === 0 ? 0 : d / max;
+ let h;
+
+ if (max === min)
+ h = 0;
+ else
+ {
+ switch (max)
+ {
+ case rr:
+ h = (gg - bb) / d + (gg < bb ? 6 : 0);
+ break;
+ case gg:
+ h = (bb - rr) / d + 2;
+ break;
+ case bb:
+ h = (rr - gg) / d + 4;
+ break;
+ }
+
+ h /= 6;
+ }
+
+ return {h, s, v};
+}
+
+export function hsvToRGB (h, s, v)
+{
+ let b, f, g, i, p, q, r, t;
+ i = Math.floor(h * 6);
+ f = h * 6 - i;
+ p = v * (1 - s);
+ q = v * (1 - f * s);
+ t = v * (1 - (1 - f) * s);
+
+ switch (i % 6)
+ {
+ case 0:
+ r = v;
+ g = t;
+ b = p;
+ break;
+ case 1:
+ r = q;
+ g = v;
+ b = p;
+ break;
+ case 2:
+ r = p;
+ g = v;
+ b = t;
+ break;
+ case 3:
+ r = p;
+ g = q;
+ b = v;
+ break;
+ case 4:
+ r = t;
+ g = p;
+ b = v;
+ break;
+ case 5:
+ r = v;
+ g = p;
+ b = q;
+ break;
+ }
+
+ return {
+ r: Math.floor(r * 255),
+ g: Math.floor(g * 255),
+ b: Math.floor(b * 255)
+ };
+}
+
+
+/*********************************************
+ Convolution filters
+ *********************************************/
+
+function convolve (data, weights, opaque)
+{
+ let side = Math.round(Math.sqrt(weights.length));
+ let halfSide = Math.floor(side / 2);
+
+ let srcData = data.data;
+ let sw = data.width;
+ let sh = data.height;
+ let w = sw;
+ let h = sh;
+
+ let output = _getOffscreenCanvasData(w, h);
+ let dst = output.data;
+
+ let alphaFac = opaque ? 1 : 0;
+
+ for (let y = 0; y < h; y++)
+ {
+ for (let x = 0; x < w; x++)
+ {
+ let sy = y;
+ let sx = x;
+ let dstOff = (y * w + x) * 4;
+
+ let r = 0, g = 0, b = 0, a = 0;
+
+ for (let cy = 0; cy < side; cy++)
+ {
+ for (let cx = 0; cx < side; cx++)
+ {
+ let scy = sy + cy - halfSide;
+ let scx = sx + cx - halfSide;
+
+ if (scy >= 0 && scy < sh && scx >= 0 && scx < sw)
+ {
+ let srcOff = (scy * sw + scx) * 4;
+ let wt = weights[cy * side + cx];
+ r += srcData[srcOff] * wt;
+ g += srcData[srcOff + 1] * wt;
+ b += srcData[srcOff + 2] * wt;
+ a += srcData[srcOff + 3] * wt;
+ }
+ }
+ }
+
+ dst[dstOff] = r;
+ dst[dstOff + 1] = g;
+ dst[dstOff + 2] = b;
+ dst[dstOff + 3] = a + alphaFac * (255 - a);
+ }
+ }
+ return output;
+}
+
+
+export function sharpen (data, adjust)
+{
+ let adj = adjust ? adjust : 100;
+ adj /= 100;
+
+ if (adjust === 0) // reset value
+ adj = 0;
+
+ let weights = [
+ 0, -adj, 0,
+ -adj, 4 * adj + 1, -adj,
+ 0, -adj, 0
+ ];
+
+ return addFilterToQueue(data, convolve, weights, 'Sharpness');
+}
diff --git a/source/js/plugins/annotate.js b/source/js/plugins/annotate.js
deleted file mode 100644
index e69de29b..00000000
diff --git a/source/js/plugins/autoscroll.js b/source/js/plugins/autoscroll.js
deleted file mode 100644
index 19edb65e..00000000
--- a/source/js/plugins/autoscroll.js
+++ /dev/null
@@ -1,251 +0,0 @@
-/*
-Diva.JS autoscroll plugin
-Author: Andrew Horwitz
-
-Lets Diva scroll in the primary direction (as determined by
-settings.verticallyOriented) automatically at a given/changeable rate.
-
-Relevant settings:
- -scrollSpeed: pixels per second (defaults to 10)
- -disableManualScroll: disables manual scroll while automatic scroll is on (defaults to false)
- -currentlyAutoScrolling: whether or not autoscroll is currently on
- -autoScrollRefresh: ms between scrolling actions
- -disableAutoscrollPrefs: disables the autoscroll preferences panel
-
-Relevant methods:
- -startScrolling, stopScrolling, toggleScrolling
- -changeRefresh, changeScrollSpeed (setters for respective options)
- -disableManualScroll, enableManualScroll
-*/
-
-var jQuery = require('jquery');
-var diva = require('../diva');
-
-(function ($)
-{
- module.exports = (function()
- {
- var settings = {};
- var retval =
- {
- init: function(divaSettings, divaInstance)
- {
- var pixelsPerScroll;
- var disableManualScroll;
- var autoScrollRefresh;
- var defaultAutoRefresh;
- var scrollSpeed;
-
- function log10(x)
- {
- return Math.log(x) / Math.log(10);
- }
-
- divaInstance.startScrolling = function()
- {
- if (divaSettings.currentlyAutoScrolling)
- {
- console.warn("You are trying to start autoscrolling, but it is already scrolling.");
- return;
- }
-
- $("#" + divaSettings.ID + "autoscroll-toggle").text("Turn off");
- if (disableManualScroll)
- {
- divaInstance.disableScrollable();
- }
-
- divaSettings.currentlyAutoScrolling = true;
- restartScrollingInterval();
- };
-
- var restartScrollingInterval = function()
- {
- clearInterval(divaSettings.autoScrollInterval);
- if (divaSettings.verticallyOriented)
- {
- divaSettings.autoScrollInterval = setInterval(function(){
- divaSettings.viewportObject.scrollTop(divaSettings.viewportObject.scrollTop() + pixelsPerScroll);
- }, autoScrollRefresh);
- }
- else
- {
- divaSettings.autoScrollInterval = setInterval(function(){
- divaSettings.viewportObject.scrollLeft(divaSettings.viewportObject.scrollLeft() + pixelsPerScroll);
- }, autoScrollRefresh);
- }
- };
-
- divaInstance.stopScrolling = function()
- {
- if (!divaSettings.currentlyAutoScrolling)
- {
- console.warn("You are trying to stop autoscrolling, but it is not currently active.");
- return;
- }
-
- $("#" + divaSettings.ID + "autoscroll-toggle").text("Turn on");
- if (disableManualScroll)
- {
- divaInstance.enableScrollable();
- }
-
- divaSettings.currentlyAutoScrolling = false;
- clearInterval(divaSettings.autoScrollInterval);
- };
-
- divaInstance.toggleScrolling = function()
- {
- if (divaSettings.currentlyAutoScrolling)
- divaInstance.stopScrolling();
- else
- divaInstance.startScrolling();
- };
-
- divaInstance.changeRefresh = function(newRefresh)
- {
- autoScrollRefresh = newRefresh;
- updatePixelsPerScroll();
- };
-
- divaInstance.changeScrollSpeed = function(newSpeed)
- {
- scrollSpeed = newSpeed;
- updatePixelsPerScroll();
-
- $("#" + divaSettings.ID + "autoscroll-pps").val(log10(scrollSpeed));
- if (divaSettings.currentlyAutoScrolling)
- {
- restartScrollingInterval();
- }
- };
-
- var updatePixelsPerScroll = function()
- {
- autoScrollRefresh = defaultAutoRefresh;
- pixelsPerScroll = scrollSpeed / (1000 / autoScrollRefresh);
-
- //should be minimum of one otherwise it won't change the actual value
- //user can change autoscrollrefresh or scrollspeed; this may overwrite autoScrollRefresh
- if (pixelsPerScroll < 1)
- {
- autoScrollRefresh = autoScrollRefresh * (1 / pixelsPerScroll);
- pixelsPerScroll = scrollSpeed / (1000 / autoScrollRefresh);
- }
- };
-
- divaInstance.disableManualScroll = function()
- {
- disableManualScroll = true;
- if (divaSettings.currentlyAutoScrolling)
- {
- divaInstance.disableScrollable();
- }
- };
-
- divaInstance.enableManualScroll = function()
- {
- disableManualScroll = false;
- if (divaSettings.currentlyAutoScrolling)
- {
- divaInstance.enableScrollable();
- }
- };
-
- divaSettings.currentlyAutoScrolling = false;
- divaSettings.autoScrollInterval = "";
-
- disableManualScroll = divaSettings.disableManualScroll || false;
- autoScrollRefresh = divaSettings.autoScrollRefresh || 50;
- defaultAutoRefresh = autoScrollRefresh;
-
- divaInstance.changeScrollSpeed((divaSettings.scrollSpeed || 10));
-
- $(window).on('keyup', function(e)
- {
- if (e.shiftKey && e.keyCode === 32)
- {
- divaInstance.toggleScrolling();
- }
- });
-
- if (!divaSettings.disableAutoscrollPrefs)
- {
- var setPosition = function(isFullscreen)
- {
- if (divaSettings.inFullscreen)
- {
- var fullscreenTools = $(divaSettings.selector + 'tools');
- var toolsMargin = fullscreenTools.css('right');
- settings.jqObj.css({
- 'right': toolsMargin,
- 'margin-right': 0,
- 'top': fullscreenTools.offset().top + fullscreenTools.outerHeight() + 15
- });
- }
- else
- {
- settings.jqObj.css({
- 'right': $(window).width() - (divaSettings.viewportObject.offset().left + divaSettings.viewportObject.outerWidth()) + divaSettings.scrollbarWidth,
- 'margin-right': '.6em'
- });
- settings.jqObj.offset({'top': divaSettings.viewportObject.offset().top + 1});
- }
- };
-
- diva.Events.subscribe('ModeDidSwitch', setPosition, divaSettings.ID);
-
- diva.Events.subscribe('ViewerDidLoad', function(s)
- {
- var autoscrollPrefsString =
- "" +
- "Autoscrolling options:
" +
- "Speed:" +
- "
" +
- "Allow manual scroll:" +
- "
" +
- "" +
- "";
- $("#" + divaSettings.ID + "page-nav").before("");
- $("body").prepend(autoscrollPrefsString);
-
- $("#" + divaSettings.ID + "autoscroll-pps").on('change', function(e)
- {
- divaInstance.changeScrollSpeed(Math.pow(10, e.target.value));
- });
-
- $("#" + divaSettings.ID + "autoscroll-manual").on('change', function(e)
- {
- if (e.target.checked)
- divaInstance.enableManualScroll();
- else
- divaInstance.disableManualScroll();
- });
-
- $("#" + divaSettings.ID + "autoscroll-toggle").on('click', divaInstance.toggleScrolling);
-
- $("#" + divaSettings.ID + "autoscroll-icon").on('click', function(e)
- {
- settings.jqObj = $("#" + divaSettings.ID + "autoscroll-prefs");
-
- if (settings.jqObj.css('display') === 'none')
- {
- settings.jqObj.css({'display': 'block'});
-
- setPosition(divaSettings.inFullscreen);
-
- }
- else
- {
- settings.jqObj.css('display', 'none');
- }
- });
- }, divaSettings.ID);
- }
- },
- pluginName: 'autoscroll',
- titleText: 'Automatically scrolls page along primary axis'
- };
- return retval;
- })();
-})(jQuery);
diff --git a/source/js/plugins/canvas.js b/source/js/plugins/canvas.js
deleted file mode 100644
index f419750a..00000000
--- a/source/js/plugins/canvas.js
+++ /dev/null
@@ -1,967 +0,0 @@
-/*
-
-Canvas plugin for diva.js
-Adds an adjustment icon next to each image
-
-*/
-
-var jQuery = require('jquery');
-var diva = require('../diva');
-
-require('../utils/jquery-extensions');
-
-(function ($)
-{
- module.exports = (function ()
- {
- var canvas = {},
- map = {},
- settings = {},
- image,
- sliders,
- sliderMode;
-
- // Set up some default settings (can be overridden the normal way)
- var defaults = {
- brightnessMax: 150,
- brightnessMin: -100,
- brightnessStep: 1,
- contrastMax: 3,
- contrastMin: -1,
- contrastStep: 0.05,
- localStoragePrefix: 'canvas-',
- mobileWebkitMaxZoom: 2,
- rgbMax: 50,
- rgbMin: -50,
- throbberFadeSpeed: 200,
- throbberTimeout: 100,
- buttons: [
- 'contrast',
- 'brightness',
- 'rotation',
- 'zoom'
- ]
- };
-
- // Convert an angle from degrees to radians
- var toRadians = function (angle)
- {
- return angle * Math.PI / 180;
- };
-
- // Determine the new center of the page after rotating by the given angle
- var getNewCenter = function (currentCenter, angle)
- {
- var x = currentCenter.x - canvas.centerX;
- // Take the negative because the rotation is counterclockwise
- var y = -(currentCenter.y - canvas.centerY);
-
- var theta = toRadians(sliders.rotation.previous - angle);
- var newX = Math.cos(theta) * x - Math.sin(theta) * y + canvas.centerX;
- var newY = -(Math.sin(theta) * x + Math.cos(theta) * y) + canvas.centerY;
-
- return {'x': newX, 'y': newY};
- };
-
- // Rotates the image on the given canvas by the given angle
- var rotateCanvas = function (aCanvas, angle)
- {
- var context = aCanvas.context;
- var center = aCanvas.size / 2;
- var startX = -(aCanvas.width / 2);
- var startY = -(aCanvas.height / 2);
-
- // Clear the canvas so that remnants of the old image don't show
- context.clearRect(0, 0, aCanvas.size, aCanvas.size);
-
- // Do the rotation
- context.save();
- context.translate(center, center);
- context.rotate(toRadians(angle));
- context.drawImage(image, startX, startY, aCanvas.width, aCanvas.height);
- context.restore();
-
- // Save the new pixel data so that it can later be adjusted in adjustLevels
- aCanvas.data = context.getImageData(0, 0, aCanvas.size, aCanvas.size);
- };
-
- // Determine if we need to update the large canvas
- var shouldAdjustLevels = function ()
- {
- var slider;
-
- // Returns true if something has been changed
- for (slider in sliders)
- {
- if (sliders[slider].current !== sliders[slider].previous)
- {
- return true;
- }
- }
-
- return false;
- };
-
- // Sets the "previous" value to the "current" value for every slider
- var updatePreviousLevels = function ()
- {
- var slider;
-
- for (slider in sliders)
- {
- sliders[slider].previous = sliders[slider].current;
- }
- };
-
- // Update the thumbnail preview (called when a slider is moved/reset)
- var updateMap = function ()
- {
- rotateCanvas(map, sliders.rotation.current);
- adjustLevels(map);
- };
-
- // Update the large canvas (rotation, zooming, scrolling, pixel manipulation)
- var updateCanvas = function ()
- {
- var angle = sliders.rotation.current;
- var oldAngle = sliders.rotation.previous;
- var zoomLevel = sliders.zoom.current;
- var oldZoomLevel = sliders.zoom.previous;
-
- // Scroll the user to the desired location
- if (angle !== oldAngle || zoomLevel !== oldZoomLevel)
- {
- // First figure out the current center of the viewport
- var leftScroll = $('#diva-canvas-wrapper').scrollLeft();
- var topScroll = $('#diva-canvas-wrapper').scrollTop();
- var leftOffset = settings.viewport.width / 2;
- var topOffset = settings.viewport.height / 2;
-
- // Then determine the new center (the same part of the image)
- var newCenter = getNewCenter({x: leftScroll + leftOffset, y: topScroll + topOffset}, angle);
-
- // Incorporate the zoom change ratio (would be 1 if no change)
- var zoomChange = Math.pow(2, zoomLevel - oldZoomLevel);
- var toLeftScroll = zoomChange * newCenter.x - leftOffset;
- var toTopScroll = zoomChange * newCenter.y - topOffset;
-
- // Rotate the large canvas
- rotateCanvas(canvas, angle);
-
- // Scroll to the new center
- $('#diva-canvas-wrapper').scrollLeft(toLeftScroll);
- $('#diva-canvas-wrapper').scrollTop(toTopScroll);
- }
-
- // Only call adjustLevels again if we really need to (expensive)
- if (shouldAdjustLevels())
- {
- adjustLevels(canvas);
- updatePreviousLevels();
- }
- };
-
- // Copies the canvas' pixel array and returns the copy
- var copyImageData = function (aCanvas)
- {
- var oldImageData = aCanvas.data;
- var newImageData = aCanvas.context.createImageData(oldImageData);
- var pixelArray = newImageData.data;
- var i, length;
-
- for (i = 0, length = pixelArray.length; i < length; i++)
- {
- pixelArray[i] = oldImageData.data[i];
- }
-
- return newImageData;
- };
-
- // Determines whether or not we need to adjust this level - very simple
- var shouldAdjust = function (mode)
- {
- var thisChanged = sliders[mode].current !== sliders[mode].previous;
- var thisNotDefault = sliders[mode].current !== sliders[mode].initial;
-
- return thisChanged || thisNotDefault;
- };
-
- var adjustLevels = function (aCanvas)
- {
- // Copy the pixel array to avoid destructively modifying the original
- var imageData = copyImageData(aCanvas);
- var pixelArray = imageData.data;
-
- // Store and calculate some scale factors and offsets
- var brightness = sliders.brightness.current;
- var contrast = sliders.contrast.current;
-
- var brightMul = 1 + Math.min(settings.brightnessMax, Math.max(settings.brightnessMin, brightness)) / settings.brightnessMax;
- var brightTimesContrast = brightMul * contrast;
- var contrastOffset = 128 - (contrast * 128);
-
- var redOffset = sliders.red.current;
- var greenOffset = sliders.green.current;
- var blueOffset = sliders.blue.current;
-
- // Determine whether or not we need to adjust certain things
- var adjustRed = shouldAdjust('red');
- var adjustGreen = shouldAdjust('green');
- var adjustBlue = shouldAdjust('blue');
-
- var adjustBrightness = shouldAdjust('brightness');
- var adjustContrast = shouldAdjust('contrast');
- var adjustOthers = adjustBrightness || adjustContrast;
-
- var x, y, width, height, offset, r, g, b;
-
- for (x = 0, width = imageData.width; x < width; x++)
- {
- for (y = 0, height = imageData.height; y < height; y++)
- {
- offset = (y * width + x) * 4;
-
- r = pixelArray[offset];
- g = pixelArray[offset + 1];
- b = pixelArray[offset + 2];
-
- // Only do something if the pixel is not black originally
- if (r + g + b > 0)
- {
- // Only adjust individual colour channels if necessary
- if (adjustRed && r)
- r += redOffset;
-
- if (adjustGreen && g)
- g += greenOffset;
-
- if (adjustBlue && b)
- b += blueOffset;
-
- // If we need to adjust brightness and/or contrast
- if (adjustOthers)
- {
- if (r)
- r = r * brightTimesContrast + contrastOffset;
-
- if (g)
- g = g * brightTimesContrast + contrastOffset;
-
- if (b)
- b = b * brightTimesContrast + contrastOffset;
- }
-
- pixelArray[offset] = r;
- pixelArray[offset + 1] = g;
- pixelArray[offset + 2] = b;
- }
- }
- }
-
- aCanvas.context.clearRect(0, 0, width, height);
- aCanvas.context.putImageData(imageData, 0, 0);
- };
-
- // Update the box in the preview showing where you currently are
- var updateViewbox = function ()
- {
- // Determine the top left corner coordinates based on our current position
- var cornerX = $('#diva-canvas-wrapper').scrollLeft() * map.scaleFactor;
- var cornerY = $('#diva-canvas-wrapper').scrollTop() * map.scaleFactor;
-
- // Subtract 4 to compensate for the borders
- var height = Math.min(Math.round(settings.viewport.height * map.scaleFactor), settings.mapSize) - 4;
- var width = Math.min(Math.round(settings.viewport.width * map.scaleFactor), settings.mapSize) - 4;
-
- $('#diva-map-viewbox').height(height).width(width).css({top: cornerY, left: cornerX});
- };
-
- // Draw the thumbnail preview in the toolbar
- var loadMap = function (image)
- {
- map.canvas = document.getElementById('diva-canvas-minimap');
- map.size = settings.mapSize;
- map.canvas.width = map.size;
- map.canvas.height = map.size;
-
- // Give it a black background
- map.context = map.canvas.getContext('2d');
- map.context.fillRect(0, 0, map.size, map.size);
-
- // Determine the coordinates/dimensions of the preview
- map.scaleFactor = settings.mapSize / canvas.size;
- map.cornerX = canvas.cornerX * map.scaleFactor;
- map.cornerY = canvas.cornerY * map.scaleFactor;
- map.width = image.width * map.scaleFactor;
- map.height = image.height * map.scaleFactor;
-
- // Draw the image within the map (no adjustments) and save the pixel array
- map.context.drawImage(image, map.cornerX, map.cornerY, map.width, map.height);
- map.data = map.context.getImageData(0, 0, settings.mapSize, settings.mapSize);
-
- // Show the viewbox, make it reflect where we currently are
- $('#diva-map-viewbox').show();
- updateViewbox();
- };
-
- // Load the image within the large and small canvases
- var loadCanvas = function (imageURL, callback)
- {
- image = new Image();
- image.crossOrigin = "anonymous";
-
- image.onload = function ()
- {
- // Determine the size of the (square) canvas based on the hypoteneuse
- canvas.size = Math.sqrt(image.width * image.width + image.height * image.height);
-
- // Resize the canvas if necessary
- canvas.canvas = document.getElementById('diva-canvas');
- canvas.canvas.width = canvas.size;
- canvas.canvas.height = canvas.size;
- canvas.cornerX = (canvas.size - image.width) / 2;
- canvas.cornerY = (canvas.size - image.height) / 2;
- canvas.width = image.width;
- canvas.height = image.height;
- canvas.centerX = canvas.size / 2;
- canvas.centerY = canvas.size / 2;
-
- // Draw the image to the large canvas, and save the pixel array
- canvas.context = canvas.canvas.getContext('2d');
- canvas.context.drawImage(image, canvas.cornerX, canvas.cornerY, canvas.width, canvas.height);
- try
- {
- canvas.data = canvas.context.getImageData(0, 0, canvas.size, canvas.size);
- }
- catch (error)
- {
- var canvasError = 'Error
' + error.message + '
';
-
- if (error.name === 'SecurityError')
- {
- canvasError += 'You may need to update your server configuration in order to use the image manipulation tools. ' +
- 'For help, see the canvas cross-site data documentation.
' +
- '';
- }
- else
- {
- throw error;
- }
-
- canvasError += '
" +
- "Autoscrolling options:
" + - "Speed:" + - "
" + - "Allow manual scroll:" + - "
" + - "" + - "
";
- $("#" + divaSettings.ID + "page-nav").before("");
- $("body").prepend(autoscrollPrefsString);
-
- $("#" + divaSettings.ID + "autoscroll-pps").on('change', function(e)
- {
- divaInstance.changeScrollSpeed(Math.pow(10, e.target.value));
- });
-
- $("#" + divaSettings.ID + "autoscroll-manual").on('change', function(e)
- {
- if (e.target.checked)
- divaInstance.enableManualScroll();
- else
- divaInstance.disableManualScroll();
- });
-
- $("#" + divaSettings.ID + "autoscroll-toggle").on('click', divaInstance.toggleScrolling);
-
- $("#" + divaSettings.ID + "autoscroll-icon").on('click', function(e)
- {
- settings.jqObj = $("#" + divaSettings.ID + "autoscroll-prefs");
-
- if (settings.jqObj.css('display') === 'none')
- {
- settings.jqObj.css({'display': 'block'});
-
- setPosition(divaSettings.inFullscreen);
-
- }
- else
- {
- settings.jqObj.css('display', 'none');
- }
- });
- }, divaSettings.ID);
- }
- },
- pluginName: 'autoscroll',
- titleText: 'Automatically scrolls page along primary axis'
- };
- return retval;
- })();
-})(jQuery);
diff --git a/source/js/plugins/canvas.js b/source/js/plugins/canvas.js
deleted file mode 100644
index f419750a..00000000
--- a/source/js/plugins/canvas.js
+++ /dev/null
@@ -1,967 +0,0 @@
-/*
-
-Canvas plugin for diva.js
-Adds an adjustment icon next to each image
-
-*/
-
-var jQuery = require('jquery');
-var diva = require('../diva');
-
-require('../utils/jquery-extensions');
-
-(function ($)
-{
- module.exports = (function ()
- {
- var canvas = {},
- map = {},
- settings = {},
- image,
- sliders,
- sliderMode;
-
- // Set up some default settings (can be overridden the normal way)
- var defaults = {
- brightnessMax: 150,
- brightnessMin: -100,
- brightnessStep: 1,
- contrastMax: 3,
- contrastMin: -1,
- contrastStep: 0.05,
- localStoragePrefix: 'canvas-',
- mobileWebkitMaxZoom: 2,
- rgbMax: 50,
- rgbMin: -50,
- throbberFadeSpeed: 200,
- throbberTimeout: 100,
- buttons: [
- 'contrast',
- 'brightness',
- 'rotation',
- 'zoom'
- ]
- };
-
- // Convert an angle from degrees to radians
- var toRadians = function (angle)
- {
- return angle * Math.PI / 180;
- };
-
- // Determine the new center of the page after rotating by the given angle
- var getNewCenter = function (currentCenter, angle)
- {
- var x = currentCenter.x - canvas.centerX;
- // Take the negative because the rotation is counterclockwise
- var y = -(currentCenter.y - canvas.centerY);
-
- var theta = toRadians(sliders.rotation.previous - angle);
- var newX = Math.cos(theta) * x - Math.sin(theta) * y + canvas.centerX;
- var newY = -(Math.sin(theta) * x + Math.cos(theta) * y) + canvas.centerY;
-
- return {'x': newX, 'y': newY};
- };
-
- // Rotates the image on the given canvas by the given angle
- var rotateCanvas = function (aCanvas, angle)
- {
- var context = aCanvas.context;
- var center = aCanvas.size / 2;
- var startX = -(aCanvas.width / 2);
- var startY = -(aCanvas.height / 2);
-
- // Clear the canvas so that remnants of the old image don't show
- context.clearRect(0, 0, aCanvas.size, aCanvas.size);
-
- // Do the rotation
- context.save();
- context.translate(center, center);
- context.rotate(toRadians(angle));
- context.drawImage(image, startX, startY, aCanvas.width, aCanvas.height);
- context.restore();
-
- // Save the new pixel data so that it can later be adjusted in adjustLevels
- aCanvas.data = context.getImageData(0, 0, aCanvas.size, aCanvas.size);
- };
-
- // Determine if we need to update the large canvas
- var shouldAdjustLevels = function ()
- {
- var slider;
-
- // Returns true if something has been changed
- for (slider in sliders)
- {
- if (sliders[slider].current !== sliders[slider].previous)
- {
- return true;
- }
- }
-
- return false;
- };
-
- // Sets the "previous" value to the "current" value for every slider
- var updatePreviousLevels = function ()
- {
- var slider;
-
- for (slider in sliders)
- {
- sliders[slider].previous = sliders[slider].current;
- }
- };
-
- // Update the thumbnail preview (called when a slider is moved/reset)
- var updateMap = function ()
- {
- rotateCanvas(map, sliders.rotation.current);
- adjustLevels(map);
- };
-
- // Update the large canvas (rotation, zooming, scrolling, pixel manipulation)
- var updateCanvas = function ()
- {
- var angle = sliders.rotation.current;
- var oldAngle = sliders.rotation.previous;
- var zoomLevel = sliders.zoom.current;
- var oldZoomLevel = sliders.zoom.previous;
-
- // Scroll the user to the desired location
- if (angle !== oldAngle || zoomLevel !== oldZoomLevel)
- {
- // First figure out the current center of the viewport
- var leftScroll = $('#diva-canvas-wrapper').scrollLeft();
- var topScroll = $('#diva-canvas-wrapper').scrollTop();
- var leftOffset = settings.viewport.width / 2;
- var topOffset = settings.viewport.height / 2;
-
- // Then determine the new center (the same part of the image)
- var newCenter = getNewCenter({x: leftScroll + leftOffset, y: topScroll + topOffset}, angle);
-
- // Incorporate the zoom change ratio (would be 1 if no change)
- var zoomChange = Math.pow(2, zoomLevel - oldZoomLevel);
- var toLeftScroll = zoomChange * newCenter.x - leftOffset;
- var toTopScroll = zoomChange * newCenter.y - topOffset;
-
- // Rotate the large canvas
- rotateCanvas(canvas, angle);
-
- // Scroll to the new center
- $('#diva-canvas-wrapper').scrollLeft(toLeftScroll);
- $('#diva-canvas-wrapper').scrollTop(toTopScroll);
- }
-
- // Only call adjustLevels again if we really need to (expensive)
- if (shouldAdjustLevels())
- {
- adjustLevels(canvas);
- updatePreviousLevels();
- }
- };
-
- // Copies the canvas' pixel array and returns the copy
- var copyImageData = function (aCanvas)
- {
- var oldImageData = aCanvas.data;
- var newImageData = aCanvas.context.createImageData(oldImageData);
- var pixelArray = newImageData.data;
- var i, length;
-
- for (i = 0, length = pixelArray.length; i < length; i++)
- {
- pixelArray[i] = oldImageData.data[i];
- }
-
- return newImageData;
- };
-
- // Determines whether or not we need to adjust this level - very simple
- var shouldAdjust = function (mode)
- {
- var thisChanged = sliders[mode].current !== sliders[mode].previous;
- var thisNotDefault = sliders[mode].current !== sliders[mode].initial;
-
- return thisChanged || thisNotDefault;
- };
-
- var adjustLevels = function (aCanvas)
- {
- // Copy the pixel array to avoid destructively modifying the original
- var imageData = copyImageData(aCanvas);
- var pixelArray = imageData.data;
-
- // Store and calculate some scale factors and offsets
- var brightness = sliders.brightness.current;
- var contrast = sliders.contrast.current;
-
- var brightMul = 1 + Math.min(settings.brightnessMax, Math.max(settings.brightnessMin, brightness)) / settings.brightnessMax;
- var brightTimesContrast = brightMul * contrast;
- var contrastOffset = 128 - (contrast * 128);
-
- var redOffset = sliders.red.current;
- var greenOffset = sliders.green.current;
- var blueOffset = sliders.blue.current;
-
- // Determine whether or not we need to adjust certain things
- var adjustRed = shouldAdjust('red');
- var adjustGreen = shouldAdjust('green');
- var adjustBlue = shouldAdjust('blue');
-
- var adjustBrightness = shouldAdjust('brightness');
- var adjustContrast = shouldAdjust('contrast');
- var adjustOthers = adjustBrightness || adjustContrast;
-
- var x, y, width, height, offset, r, g, b;
-
- for (x = 0, width = imageData.width; x < width; x++)
- {
- for (y = 0, height = imageData.height; y < height; y++)
- {
- offset = (y * width + x) * 4;
-
- r = pixelArray[offset];
- g = pixelArray[offset + 1];
- b = pixelArray[offset + 2];
-
- // Only do something if the pixel is not black originally
- if (r + g + b > 0)
- {
- // Only adjust individual colour channels if necessary
- if (adjustRed && r)
- r += redOffset;
-
- if (adjustGreen && g)
- g += greenOffset;
-
- if (adjustBlue && b)
- b += blueOffset;
-
- // If we need to adjust brightness and/or contrast
- if (adjustOthers)
- {
- if (r)
- r = r * brightTimesContrast + contrastOffset;
-
- if (g)
- g = g * brightTimesContrast + contrastOffset;
-
- if (b)
- b = b * brightTimesContrast + contrastOffset;
- }
-
- pixelArray[offset] = r;
- pixelArray[offset + 1] = g;
- pixelArray[offset + 2] = b;
- }
- }
- }
-
- aCanvas.context.clearRect(0, 0, width, height);
- aCanvas.context.putImageData(imageData, 0, 0);
- };
-
- // Update the box in the preview showing where you currently are
- var updateViewbox = function ()
- {
- // Determine the top left corner coordinates based on our current position
- var cornerX = $('#diva-canvas-wrapper').scrollLeft() * map.scaleFactor;
- var cornerY = $('#diva-canvas-wrapper').scrollTop() * map.scaleFactor;
-
- // Subtract 4 to compensate for the borders
- var height = Math.min(Math.round(settings.viewport.height * map.scaleFactor), settings.mapSize) - 4;
- var width = Math.min(Math.round(settings.viewport.width * map.scaleFactor), settings.mapSize) - 4;
-
- $('#diva-map-viewbox').height(height).width(width).css({top: cornerY, left: cornerX});
- };
-
- // Draw the thumbnail preview in the toolbar
- var loadMap = function (image)
- {
- map.canvas = document.getElementById('diva-canvas-minimap');
- map.size = settings.mapSize;
- map.canvas.width = map.size;
- map.canvas.height = map.size;
-
- // Give it a black background
- map.context = map.canvas.getContext('2d');
- map.context.fillRect(0, 0, map.size, map.size);
-
- // Determine the coordinates/dimensions of the preview
- map.scaleFactor = settings.mapSize / canvas.size;
- map.cornerX = canvas.cornerX * map.scaleFactor;
- map.cornerY = canvas.cornerY * map.scaleFactor;
- map.width = image.width * map.scaleFactor;
- map.height = image.height * map.scaleFactor;
-
- // Draw the image within the map (no adjustments) and save the pixel array
- map.context.drawImage(image, map.cornerX, map.cornerY, map.width, map.height);
- map.data = map.context.getImageData(0, 0, settings.mapSize, settings.mapSize);
-
- // Show the viewbox, make it reflect where we currently are
- $('#diva-map-viewbox').show();
- updateViewbox();
- };
-
- // Load the image within the large and small canvases
- var loadCanvas = function (imageURL, callback)
- {
- image = new Image();
- image.crossOrigin = "anonymous";
-
- image.onload = function ()
- {
- // Determine the size of the (square) canvas based on the hypoteneuse
- canvas.size = Math.sqrt(image.width * image.width + image.height * image.height);
-
- // Resize the canvas if necessary
- canvas.canvas = document.getElementById('diva-canvas');
- canvas.canvas.width = canvas.size;
- canvas.canvas.height = canvas.size;
- canvas.cornerX = (canvas.size - image.width) / 2;
- canvas.cornerY = (canvas.size - image.height) / 2;
- canvas.width = image.width;
- canvas.height = image.height;
- canvas.centerX = canvas.size / 2;
- canvas.centerY = canvas.size / 2;
-
- // Draw the image to the large canvas, and save the pixel array
- canvas.context = canvas.canvas.getContext('2d');
- canvas.context.drawImage(image, canvas.cornerX, canvas.cornerY, canvas.width, canvas.height);
- try
- {
- canvas.data = canvas.context.getImageData(0, 0, canvas.size, canvas.size);
- }
- catch (error)
- {
- var canvasError = '" + - "Speed:" + - "
" + - "Allow manual scroll:" + - "
" + - "" + - "
Error
' + error.message + '
'; - - if (error.name === 'SecurityError') - { - canvasError += 'You may need to update your server configuration in order to use the image manipulation tools. ' + - 'For help, see the canvas cross-site data documentation.
' + - '' +
- '
';
- var canvasWrapper = '' +
- '' +
- '' +
- 'Test' +
- '
' +
- '' +
- '' +
- '' +
- '
';
- var canvasString = '' +
- canvasTools +
- canvasWrapper +
- '
';
-
- $('body').append(canvasString);
-
- // Save the size of the map, as defined in the CSS
- settings.mapSize = $('#diva-canvas-minimap').width();
-
- // Adjust the slider when something is clicked, and make that the current mode
- $('#diva-canvas-buttons div').click(function ()
- {
- $('#diva-canvas-buttons .clicked').removeClass('clicked');
- updateSlider($(this).attr('class'));
- });
-
- var updateSlider = function (newMode)
- {
- sliderMode = newMode;
- var sliderData = sliders[sliderMode];
-
- $('#diva-canvas-buttons .' + sliderMode).addClass('clicked');
-
- $('#diva-canvas-mode').text(sliderMode);
-
- var newValue = sliderData.current;
- var newValueString = (sliderData.transform) ? sliderData.transform(newValue) : newValue;
-
- var slider = document.getElementById('diva-canvas-slider');
- slider.min = sliderData.min;
- slider.max = sliderData.max;
- slider.step = sliderData.step;
- $('#diva-canvas-slider').val(newValue);
- $('#diva-canvas-value').html(newValueString);
- };
-
- updateSlider('contrast');
-
- // Create the slider
- $('#diva-canvas-slider').on('input', function(e){
- sliders[sliderMode].current = parseFloat(this.value);
- updateSliderLabel();
- updateMap();
- });
-
- // Reset all the sliders to the default value
- $('#diva-canvas-reset-all').click(function ()
- {
- var slider;
-
- for (slider in sliders)
- {
- sliders[slider].current = sliders[slider].initial;
- }
-
- // Change the value of the label
- updateSliderLabel();
- updateSliderValue();
-
- // Update the preview
- updateMap();
- });
-
- // Reset the current slider to the default value
- $('#diva-canvas-reset').click(function ()
- {
- // Update the current value and the slider
- sliders[sliderMode].current = sliders[sliderMode].initial;
- updateSliderLabel();
- updateSliderValue();
-
- // Update the preview
- updateMap();
- });
-
- // Update the large canvas when the apply button is clicked
- $('#diva-canvas-apply').click(function ()
- {
- if (shouldAdjustLevels())
- {
- showThrobber();
-
- setTimeout(function ()
- {
- if (sliders.zoom.current !== sliders.zoom.previous)
- {
- updateZoom(sliders.zoom.current);
- }
- else
- {
- updateCanvas();
- hideThrobber();
-
- // Save modifications to localSettings (also done in updateZoom callback)
- saveSettings();
- }
- }, settings.throbberTimeout);
- }
- });
-
- // Handle exiting canvas mode
- $('#diva-canvas-close').click(function ()
- {
- $('body').removeClass('overflow-hidden');
-
- // Clear the canvases and hide things
- // This needs to be improved - not done properly?
- canvas.context.clearRect(0, 0, canvas.size, canvas.size);
- map.context.clearRect(0, 0, map.size, map.size);
- $('#diva-canvas-wrapper').scrollTop(0).scrollLeft(0);
- $('#diva-canvas-backdrop').hide();
- $('#diva-map-viewbox').hide();
- hideThrobber();
-
- // Re-enable scrolling of diva when it is in the background
- divaInstance.enableScrollable();
- $(document).off('keydown', bindCanvasKeyEvents);
-
- // Reset everything
- resetSliders();
- updateSliderLabel();
- updateSliderValue();
- $('#diva-canvas-buttons .clicked').removeClass('clicked');
- updateSlider('contrast');
-
- diva.Events.publish("CanvasViewDidHide");
- });
-
- // Hide the toolbar when the minimise icon is clicked
- $('#diva-canvas-minimise').click(function ()
- {
- $('#diva-canvas-toolwindow').slideToggle('fast');
- });
-
- // Adjust the size of the canvas when the browser window is resized
- $(window).resize(function ()
- {
- settings.viewport = {
- height: window.innerHeight - divaSettings.scrollbarWidth,
- width: window.innerWidth - divaSettings.scrollbarWidth
- };
-
- // Always update the settings but only redraw if in canvas
- if (settings.inCanvas)
- updateViewbox();
- });
-
- // Update the viewbox when the large canvas is scrolled
- $('#diva-canvas-wrapper').scroll(function ()
- {
- if (settings.inCanvas)
- updateViewbox();
- });
-
- // Handle clicking/dragging of the viewbox (should scroll the large canvas)
- $('#diva-canvas-minimap, #diva-map-viewbox').mouseup(function (event)
- {
- // Consider caching this eventually (can't be done in init though)
- var offset = $('#diva-canvas-minimap').offset();
-
- var scaledX = (event.pageX - offset.left) / map.scaleFactor;
- var scaledY = (event.pageY - offset.top) / map.scaleFactor;
-
- $('#diva-canvas-wrapper').scrollTop(scaledY - settings.viewport.height / 2);
- $('#diva-canvas-wrapper').scrollLeft(scaledX - settings.viewport.width / 2);
- });
-
- // Enable drag scroll
- $('#diva-canvas').mousedown(function ()
- {
- $(this).addClass('grabbing');
- }).mouseup(function ()
- {
- $(this).removeClass('grabbing');
- });
-
- // touch events
- $('#diva-canvas-wrapper').kinetic();
-
- // mouse events
- $('#diva-canvas-wrapper').dragscrollable({
- acceptPropagatedEvent: true
- });
-
- diva.Events.subscribe('ObjectDidLoad', this.setupHook, divaSettings.ID);
- diva.Events.subscribe('ViewerDidTerminate', this.destroy, divaSettings.ID);
- diva.Events.subscribe('PageDidLoad', this.onPageLoad, divaSettings.ID);
-
- return true;
- },
-
- pluginName: 'canvas',
-
- titleText: 'View the image on a canvas and adjust various settings',
-
- setupHook: function(divaSettings)
- {
- settings.viewport = {
- height: window.innerHeight - divaSettings.scrollbarWidth,
- width: window.innerWidth - divaSettings.scrollbarWidth
- };
-
- // Save the min and max zoom level, and update the zoom slider
- settings.minZoomLevel = divaSettings.minZoomLevel;
- settings.maxZoomLevel = divaSettings.maxZoomLevel;
-
- // If we're on the iPad, limit the max zoom level to 2
- // Can't do canvas elements that are > 5 megapixels (issue #112)
- if (settings.mobileWebkit)
- settings.maxZoomLevel = Math.min(settings.maxZoomLevel, settings.mobileWebkitMaxZoom);
-
- sliders.zoom.min = settings.minZoomLevel;
- sliders.zoom.max = settings.maxZoomLevel;
- },
-
- handleClick: function(event, divaSettings, divaInstance, selectedPageIndex)
- {
- // loadCanvas() calls all the other necessary functions to load
- var filename = divaInstance.getFilenames()[selectedPageIndex];
-
- // TODO: Move rationale for -1 from Wiki (TLDR an old IIP bug)
- var width = divaInstance
- .getPageDimensions(selectedPageIndex)
- .width - 1;
-
- var zoomLevel = divaSettings.zoomLevel;
- var slider;
-
- settings.zoomWidthRatio = width / Math.pow(2, zoomLevel);
- settings.pluginIcon = $(this);
-
- settings.manifest = divaSettings.manifest;
- settings.selectedPageIndex = selectedPageIndex;
-
- // Limit the max zoom level if we're on the iPad
- if (settings.mobileWebkit) {
- zoomLevel = Math.min(settings.maxZoomLevel, zoomLevel);
- }
-
- settings.filename = filename;
- sliders.zoom.initial = zoomLevel;
- sliders.zoom.current = zoomLevel;
-
- // Find the settings stored in localStorage, if they exist
- var sliderSettings = loadStoredObject(settings.localStoragePrefix + settings.filename);
- if (sliderSettings)
- {
- for (slider in sliderSettings)
- {
- sliders[slider].current = sliderSettings[slider];
-
- // If the current slider's value has changed, update it
- if (slider === sliderMode)
- {
- updateSliderLabel();
- updateSliderValue();
- }
-
- if (slider === 'zoom')
- {
- zoomLevel = sliderSettings[slider];
- }
- }
- }
-
- sliders.zoom.previous = zoomLevel;
-
- // Prevent scroll in body, and show the canvas backdrop
- $('body').addClass('overflow-hidden');
- $('#diva-canvas-backdrop').show();
-
- // Disable scrolling on main diva instance
- divaInstance.disableScrollable();
- // Enable canvas scrolling
- $(document).keydown(bindCanvasKeyEvents);
-
- // Set this to true so events can be captured
- settings.inCanvas = true;
-
- var imageURL = getImageURL(zoomLevel);
-
- // Change the title of the page
- // FIXME: This is legacy behaviour. Should this be a filename/label?
- $('#diva-canvas-info').text('Page ' + (selectedPageIndex + 1));
-
- showThrobber();
-
- diva.Events.publish('CanvasViewDidActivate', [selectedPageIndex]);
-
- loadCanvas(imageURL);
- },
-
- onPageLoad: function(pageIndex, filename, selector)
- {
- // If something exists for this page in localStorage, then change icon color
- var storageKey = settings.localStoragePrefix + filename;
-
- if (localStorage.getItem(storageKey) !== null)
- {
- $(selector).find('.diva-canvas-icon').addClass('new');
- }
- },
-
- destroy: function(divaSettings, divaInstance)
- {
- $('#diva-canvas-backdrop').remove();
- }
- };
-
- // this returns an object with all of the necessary hooks and callbacks
- // embedded.
- return retval;
-
- })();
-})(jQuery);
diff --git a/source/js/plugins/download.js b/source/js/plugins/download.js
index 61aae7b6..efa079d4 100644
--- a/source/js/plugins/download.js
+++ b/source/js/plugins/download.js
@@ -1,37 +1,83 @@
-/*
-Download plugin for diva.js
-Allows you to download images served by IIPImage or IIIF compatible image servers
-*/
+/**
+ * A simple plugin that implements a download button for individual images. Plugins
+ * should register themselves as a class in the global Diva namespace, e.g., global.Diva.DownloadPlugin.
+ * Plugins are then included as *uninstantiated* references within a plugin configuration. To enable them, simply include
+ * plugins: [Diva.DownloadPlugin] when creating a Diva instance.
+ * When the viewer is instantiated it will also instantiate the plugin, which
+ * will then configure itself.
+ *
+ * Plugin constructors should take one argument, which is an instance of a ViewerCore object.
+ *
+ *
+ * Plugins should implement the following interface:
+ *
+ * {boolean} isPageTool - Added to the class prototype. Whether the plugin icon should be included for each page as a page tool
+ * {string} pluginName - Added to the class prototype. Defines the name for the plugin.
+ *
+ * @method createIcon - A div representing the icon. This *should* be implemented using SVG.
+ * @method handleClick - The click handler for the icon.
+ *
+ *
+ **/
+export default class DownloadPlugin
+{
+ constructor (core)
+ {
+ this.core = core;
+ this.pageToolsIcon = this.createIcon();
+ }
-var jQuery = require('jquery');
+ /**
+ * Open a new window with the page image.
+ *
+ **/
+ handleClick (event, settings, publicInstance, pageIndex)
+ {
+ let width = publicInstance.getPageDimensions(pageIndex).width;
+ let url = publicInstance.getPageImageURL(pageIndex, { width: width });
+ window.open(url);
+ }
-(function ($)
-{
- module.exports = (function()
+ createIcon ()
{
- var settings = {};
- var retval =
- {
- init: function(divaSettings, divaInstance)
- {
- settings.divaInstance = divaInstance;
- return true;
- },
- pluginName: 'download',
- titleText: 'Download image at the given zoom level',
- handleClick: function(event, divaSettings, divaInstance, pageIndex)
- {
- // TODO: Move rationale for -1 from Wiki (TLDR an old IIP bug)
- var width = divaInstance
- .getPageDimensions(pageIndex)
- .width - 1;
-
- var image = settings.divaInstance.getPageImageURL(pageIndex, { width: width });
-
- window.open(image);
- }
- };
-
- return retval;
- })();
-})(jQuery);
+ /*
+ * See img/download.svg for the standalone source code for this.
+ * */
+
+ const pageToolsIcon = document.createElement('div');
+ pageToolsIcon.classList.add('diva-download-icon');
+
+ let root = document.createElementNS("http://www.w3.org/2000/svg", "svg");
+ root.setAttribute("x", "0px");
+ root.setAttribute("y", "0px");
+ root.setAttribute("viewBox", "0 0 25 25");
+ root.id = `${this.core.settings.selector}download-icon`;
+
+ let g = document.createElementNS("http://www.w3.org/2000/svg", "g");
+ g.id = `${this.core.settings.selector}download-icon-glyph`;
+ g.setAttribute("transform", "matrix(1, 0, 0, 1, -11.5, -11.5)");
+ g.setAttribute("class", "diva-pagetool-icon");
+
+ let path = document.createElementNS("http://www.w3.org/2000/svg", "path");
+ path.setAttribute("d", "M36.25,24c0,6.755-5.495,12.25-12.25,12.25S11.75,30.755,11.75,24S17.245,11.75,24,11.75S36.25,17.245,36.25,24z M33,24c0-4.963-4.037-9-9-9s-9,4.037-9,9s4.037,9,9,9S33,28.963,33,24z M29.823,23.414l-5.647,7.428c-0.118,0.152-0.311,0.117-0.428-0.035L18.1,23.433C17.982,23.28,18.043,23,18.235,23H21v-4.469c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5V23h2.688C29.879,23,29.941,23.263,29.823,23.414z");
+
+ g.appendChild(path);
+ root.appendChild(g);
+
+ pageToolsIcon.appendChild(root);
+
+ return pageToolsIcon;
+ }
+}
+
+DownloadPlugin.prototype.pluginName = "download";
+DownloadPlugin.prototype.isPageTool = true;
+
+/**
+ * Make this plugin available in the global context
+ * as part of the 'Diva' namespace.
+ **/
+(function (global)
+{
+ global.Diva.DownloadPlugin = DownloadPlugin;
+})(window);
diff --git a/source/js/plugins/highlight.js b/source/js/plugins/highlight.js
deleted file mode 100644
index 2c308ef3..00000000
--- a/source/js/plugins/highlight.js
+++ /dev/null
@@ -1,575 +0,0 @@
-/*
-Highlight plugin for diva.js
-Allows you to highlight regions of a page image
-*/
-
-var jQuery = require('jquery');
-var elt = require('../utils/elt');
-var diva = require('../diva');
-
-(function ($)
-{
- module.exports = (function()
- {
- var retval =
- {
- init: function(divaSettings, divaInstance)
- {
- var highlightManager = new HighlightManager(divaInstance);
- divaSettings.parentObject.data('highlightManager', highlightManager);
-
- var currentHighlight;
-
- /*
- Reset the highlights object and removes all highlights from the document.
- */
- divaInstance.resetHighlights = function()
- {
- highlightManager.clear();
- };
-
- /*
- Resets the highlights for a single page.
- */
- divaInstance.removeHighlightsOnPage = function(pageIdx)
- {
- highlightManager.removeHighlightsOnPage(pageIdx);
- };
-
- /*
- Highlights regions on multiple pages.
- @param pageIdxs An array of page index numbers
- @param regions An array of regions
- @param colour (optional) A colour for the highlighting, specified in RGBA CSS format
- */
- divaInstance.highlightOnPages = function(pageIdxs, regions, colour, divClass)
- {
- var j = pageIdxs.length;
- while (j--)
- {
- divaInstance.highlightOnPage(pageIdxs[j], regions[j], colour, divClass);
- }
- };
-
- /*
- Highlights regions on a page.
- @param pageIdx A page index number
- @param regions An array of regions. Use {'width':i, 'height':i, 'ulx':i, 'uly': i, 'divID': str} for each region.
- @param colour (optional) A colour for the highlighting, specified in RGBA CSS format
- @param divClass (optional) A class to identify a group of highlighted regions on a specific page by
- */
- divaInstance.highlightOnPage = function(pageIdx, regions, colour, divClass)
- {
- if (colour === undefined)
- {
- colour = 'rgba(255, 0, 0, 0.2)';
- }
-
- if (divClass === undefined)
- {
- divClass = divaSettings.ID + 'highlight diva-highlight';
- }
- else
- {
- divClass = divaSettings.ID + 'highlight diva-highlight ' + divClass;
- }
-
- highlightManager.addHighlight({
- page: pageIdx,
- regions: regions,
- colour: colour,
- divClass: divClass
- });
-
- return true;
- };
-
- /*
- Jumps to a highlight somewhere in the document.
- @param divID The ID of the div to jump to. This ID must be attached to the div using .highlightOnPage(s) as the highlight may not be currently appended to the DOM.
- */
- divaInstance.gotoHighlight = function(divID)
- {
- var result = highlightManager.getHighlightByRegionId(divID);
-
- if (result)
- return gotoDiv(result.highlight.page, result.region);
-
- console.warn("Diva just tried to find a highlight that doesn't exist.");
- return false;
- };
-
- /**
- * Moves the diva pane to (page) and makes a darker border on (thisDiv)
- */
- var gotoDiv = function(page, thisDiv)
- {
- //gets center of the div
- var centerYOfDiv = parseFloat(thisDiv.uly) + parseFloat(thisDiv.height) / 2;
- var centerXOfDiv = parseFloat(thisDiv.ulx) + parseFloat(thisDiv.width) / 2;
-
- var desiredY = divaInstance.translateFromMaxZoomLevel(centerYOfDiv);
- var desiredX = divaInstance.translateFromMaxZoomLevel(centerXOfDiv);
-
- //navigates to the page
- page = parseInt(page, 10);
- divaInstance.gotoPageByIndex(page);
- var viewportObject = divaInstance.getSettings().viewportObject;
- var currentTop = viewportObject.scrollTop() + desiredY - (viewportObject.height() / 2) + divaSettings.verticalPadding;
- var currentLeft = viewportObject.scrollLeft() + desiredX - (viewportObject.width() / 2) + divaSettings.horizontalPadding;
-
- //changes the scroll location to center on the div as much as is possible
- viewportObject.scrollTop(currentTop);
- viewportObject.scrollLeft(currentLeft);
-
- currentHighlight = {
- region: thisDiv,
- page: page
- };
-
- diva.Events.publish("SelectedHighlightChanged", [thisDiv.id, currentHighlight.page]);
-
- //selects the highlight
- updateCurrentHighlight(divaInstance, currentHighlight);
- return thisDiv.id;
- };
-
- var getDivCenter = function(thisDiv)
- {
- if (divaSettings.verticallyOriented) return divaInstance.translateFromMaxZoomLevel(parseFloat(thisDiv.uly) + parseFloat(thisDiv.height) / 2);
- else return divaInstance.translateFromMaxZoomLevel(parseFloat(thisDiv.ulx) + parseFloat(thisDiv.width) / 2);
- };
-
- /*
- Jumps to the next highlight along the primary axis of the document.
- */
- var findAdjacentHighlight = function(forward)
- {
- var centerOfTargetDiv;
- var highlightFound = false;
- var centerOfCurrentDiv;
- var currentPage;
- var regionArr, arrIndex;
- var pageDims;
- var centerOfDiv, targetDiv;
-
- var thisDiv;
- var compFunction;
-
- // If currentHighlight does not already exists,
- // just pretend we're starting at the northwest corner of diva-inner
- if (!currentHighlight)
- {
- centerOfCurrentDiv = 0;
- currentPage = 0;
- }
- else {
- currentPage = currentHighlight.page;
-
- //find the center of the current div
- centerOfCurrentDiv = getDivCenter(currentHighlight.region);
- }
-
- //if we do have a current highlight, try to find the next one in the same page
-
- regionArr = highlightManager.getHighlightRegions(currentPage);
- arrIndex = regionArr.length;
- pageDims = divaInstance.getPageDimensionsAtZoomLevel(currentPage, divaInstance.getZoomLevel());
-
- //initialize the center of the div to the maximum possible value
- if(forward) centerOfTargetDiv = (divaSettings.verticallyOriented) ? pageDims.height : pageDims.width;
- else centerOfTargetDiv = 0;
-
- if(forward)
- {
- compFunction = function(thisC, curC, targetC)
- {
- return (thisC > curC && thisC < targetC);
- };
- }
- else
- {
- compFunction = function(thisC, curC, targetC)
- {
- return (thisC < curC && thisC > targetC);
- };
- }
-
- while(arrIndex--)
- {
- thisDiv = regionArr[arrIndex];
- centerOfDiv = getDivCenter(thisDiv);
-
- //if this div is farther along the main axis but closer than the current closest
- if (compFunction(centerOfDiv, centerOfCurrentDiv, centerOfTargetDiv))
- {
- //update targetDiv
- highlightFound = true;
- centerOfTargetDiv = centerOfDiv;
- targetDiv = thisDiv;
- }
- }
-
- //if a highlight was found on the current page that was next; this can get overwritten but we're still good
- if (highlightFound) return gotoDiv(currentPage, targetDiv);
- //if it wasn't found, continue on...
-
- //find the minimum div on the next page with highlights and loop around if necessary
-
- //find the next page in the pageArr; this will be in order
- var pageArr = highlightManager.getHighlightedPages();
- var curIdx = pageArr.indexOf(currentPage.toString());
-
- var targetPage;
-
- if(forward)
- {
- while (!targetPage || !divaInstance.isPageIndexValid (targetPage))
- {
- //default to first page, move to next if possible
- if (curIdx == pageArr.length - 1) targetPage = pageArr[0];
- else targetPage = pageArr[++curIdx];
- }
- }
-
- else
- {
- while (!targetPage || !divaInstance.isPageIndexValid (targetPage))
- {
- //default to last page, move to previous if possible
- if (curIdx === 0) targetPage = pageArr[pageArr.length - 1];
- else targetPage = pageArr[--curIdx];
- }
- }
-
- //reset regionArr and centerOfTargetDiv for the new page we're testing
- regionArr = highlightManager.getHighlightRegions(targetPage);
- arrIndex = regionArr.length;
- pageDims = divaInstance.getPageDimensionsAtZoomLevel(targetPage, divaInstance.getMaxZoomLevel());
-
- if(forward) centerOfTargetDiv = (divaSettings.verticallyOriented) ? pageDims.height : pageDims.width;
- else centerOfTargetDiv = 0;
-
- //find the minimum this time
- if(forward)
- {
- compFunction = function(thisC, targetC)
- {
- return (thisC < targetC);
- };
- }
- else
- {
- compFunction = function(thisC, targetC)
- {
- return (thisC > targetC);
- };
- }
-
- while(arrIndex--)
- {
- thisDiv = regionArr[arrIndex];
- centerOfDiv = getDivCenter(thisDiv);
- if (compFunction(centerOfDiv, centerOfTargetDiv))
- {
- highlightFound = true;
- centerOfTargetDiv = centerOfDiv;
- targetDiv = thisDiv;
- }
- }
-
- //we've found it this time, as there'll be a region in the full regionArr to be the minimum
- return gotoDiv(targetPage, targetDiv);
- };
-
- /*
- Jumps to the next highlight along the primary axis of the document.
- */
- divaInstance.gotoNextHighlight = function()
- {
- if (highlightManager.getHighlightCount() > 0)
- return findAdjacentHighlight(true);
- else
- return false;
- };
-
- /*
- Jumps to the previous highlight along the primary axis of the document.
- */
- divaInstance.gotoPreviousHighlight = function()
- {
- if (highlightManager.getHighlightCount() > 0)
- return findAdjacentHighlight(false);
- else
- return false;
- };
-
- diva.Events.subscribe('ViewerWillTerminate', this.destroy, divaSettings.ID);
-
- return true;
- },
- destroy: function (divaSettings)
- {
- var highlightManager = divaSettings.parentObject.data('highlightManager');
- highlightManager.clear();
- divaSettings.parentObject.removeData('highlightManager');
- },
- pluginName: 'highlight',
- titleText: 'Highlight regions of pages',
-
- // Exposed export
- HighlightManager: HighlightManager
- };
- return retval;
- })();
-})(jQuery);
-
-/** Manages the addition and removal of the page overlays which display the highlights */
-function HighlightManager(divaInstance, getCurrentHighlight)
-{
- this._divaInstance = divaInstance;
- this._overlays = {};
- this._getCurrentHighlight = getCurrentHighlight;
-}
-
-HighlightManager.prototype.getHighlightCount = function ()
-{
- var count = 0;
- Object.keys(this._overlays).forEach(function (key)
- {
- count += this._overlays[key].highlight.regions.length;
- }, this);
-
- return count;
-};
-
-HighlightManager.prototype.getHighlightRegions = function (pageIndex)
-{
- if (!this._overlays[pageIndex])
- return [];
-
- return this._overlays[pageIndex].highlight.regions;
-};
-
-HighlightManager.prototype.getHighlightedPages = function ()
-{
- // FIXME: Conceptually awkward that these are strings
- return Object.keys(this._overlays);
-};
-
-HighlightManager.prototype.getHighlightByRegionId = function (id)
-{
- for (var i in this._overlays)
- {
- if (!this._overlays.hasOwnProperty(i))
- continue;
-
- var regions = this._overlays[i].highlight.regions;
- for (var j in regions)
- {
- if (!regions.hasOwnProperty(j))
- continue;
-
- if (regions[j].divID === id)
- {
- return {
- highlight: this._overlays[i].highlight,
- region: regions[j]
- };
- }
- }
- }
-
- return null;
-};
-
-HighlightManager.prototype.addHighlight = function (highlight)
-{
- var existingOverlay = this._overlays[highlight.page];
-
- if (existingOverlay)
- this._divaInstance.__removePageOverlay(existingOverlay);
-
- var overlay = new HighlightPageOverlay(highlight, this._divaInstance, this._getCurrentHighlight);
- this._overlays[highlight.page] = overlay;
- this._divaInstance.__addPageOverlay(overlay);
-};
-
-HighlightManager.prototype.removeHighlightsOnPage = function (pageIndex)
-{
- if (!this._overlays[pageIndex])
- return;
-
- this._divaInstance.__removePageOverlay(this._overlays[pageIndex]);
- delete this._overlays[pageIndex];
-};
-
-HighlightManager.prototype.clear = function ()
-{
- for (var i in this._overlays)
- {
- if (!this._overlays.hasOwnProperty(i))
- continue;
-
- this._divaInstance.__removePageOverlay(this._overlays[i]);
- }
-
- this._overlays = {};
-};
-
-/**
- When a new page is loaded, this overlay will be called with the
- page index for the page. It looks at the 'highlights' data object
- set on the diva parent element, and determines whether
- highlights exist for that page.
-
- If so, the overlay will create and render elements for every
- highlighted box.
-
- @param highlight
- @param divaInstance
- @param getCurrentHighlight (optional)
- */
-function HighlightPageOverlay(highlight, divaInstance, getCurrentHighlight)
-{
- this.page = highlight.page;
- this.highlight = highlight;
- this._highlightRegions = [];
- this._divaInstance = divaInstance;
- this._getCurrentHighlight = getCurrentHighlight;
-}
-
-HighlightPageOverlay.prototype.mount = function ()
-{
- var divaSettings = this._divaInstance.getSettings();
-
- var highlight = this.highlight;
- var regions = highlight.regions;
- var colour = highlight.colour;
- var divClass = highlight.divClass;
-
- var j = regions.length;
- while (j--)
- {
- var region = regions[j];
-
- // FIXME: Use CSS class instead of inline style
- var box = elt('div', {
- class: divClass,
- style: {
- background: colour,
- border: "1px solid #555",
- position: "absolute",
- zIndex: 100
- }
- });
-
- if (region.divID !== undefined)
- {
- box.setAttribute('data-highlight-id', region.divID);
- }
-
- // Used by IIIFHighlight
- if (region.name !== undefined)
- {
- box.setAttribute('data-name', region.name);
- }
-
- this._highlightRegions.push({
- element: box,
- region: region
- });
- }
-
- this.refresh();
-
- var frag = document.createDocumentFragment();
- this._highlightRegions.forEach(function (highlight)
- {
- frag.appendChild(highlight.element);
- });
-
- divaSettings.innerElement.appendChild(frag);
-
- if (this._getCurrentHighlight)
- updateCurrentHighlight(this._divaInstance, this._getCurrentHighlight());
-
- diva.Events.publish("HighlightCompleted", [this.page, this._divaInstance.getFilenames()[this.page]]);
-};
-
-HighlightPageOverlay.prototype.unmount = function ()
-{
- var innerElement = this._divaInstance.getSettings().innerElement;
-
- this._highlightRegions.forEach(function (highlight)
- {
- innerElement.removeChild(highlight.element);
- });
-
- this._highlightRegions = [];
-};
-
-// FIXME: Updating a box per highlight region might be too expensive
-// Maybe stick all the elements in a container and then scale it using CSS transforms?
-HighlightPageOverlay.prototype.refresh = function ()
-{
- var maxZoom = this._divaInstance.getMaxZoomLevel();
-
- var maxZoomWidth = this._divaInstance.getPageDimensionsAtZoomLevel(this.page, maxZoom).width;
- var currentWidth = this._divaInstance.getPageDimensions(this.page).width;
- var zoomDifference = Math.log(maxZoomWidth / currentWidth) / Math.log(2);
-
- var pageOffset = this._divaInstance.getPageOffset(this.page, {
- excludePadding: true,
- incorporateViewport: true
- });
-
- this._highlightRegions.forEach(function (highlight)
- {
- var region = highlight.region;
-
- elt.setAttributes(highlight.element, {
- style: {
- width: incorporateZoom(region.width, zoomDifference) + "px",
- height: incorporateZoom(region.height, zoomDifference) + "px",
- top: pageOffset.top + incorporateZoom(region.uly, zoomDifference) + "px",
- left: pageOffset.left + incorporateZoom(region.ulx, zoomDifference) + "px"
- }
- });
- });
-};
-
-function incorporateZoom(position, zoomDifference)
-{
- return position / Math.pow(2, zoomDifference);
-}
-
-function updateCurrentHighlight(divaInstance, currentHighlight)
-{
- var classString = divaInstance.getInstanceId() + "selected-highlight";
- var classElem = document.getElementsByClassName(classString);
- var idx;
- var box;
- var boxes;
-
- for (idx = 0; idx < classElem.length; idx++)
- {
- box = classElem[idx];
- if (box.id !== currentHighlight.id)
- {
- box.className = box.className.replace(' '+classString, '');
- box.style.border = "1px solid #555";
- }
- }
-
- if (divaInstance.isPageInViewport(currentHighlight.page))
- {
- boxes = document.querySelectorAll("*[data-highlight-id=" + currentHighlight.id + "]");
- for(idx = 0; idx < boxes.length; idx++)
- {
- box = boxes[idx];
- box.className = box.className + " " + classString;
- box.style.border = "2px solid #000";
- }
- }
-}
diff --git a/source/js/plugins/iiif-highlight.js b/source/js/plugins/iiif-highlight.js
deleted file mode 100644
index db8f418b..00000000
--- a/source/js/plugins/iiif-highlight.js
+++ /dev/null
@@ -1,296 +0,0 @@
-/*
-IIIF Highlight plugin for diva.js
-Allows you to highlight regions of a page image based off of annotations in a IIIF Manifest
-*/
-
-var jQuery = require('jquery');
-var diva = require('../diva');
-var HighlightManager = require('./highlight').HighlightManager;
-
-(function ($)
-{
- module.exports = (function()
- {
- var settings = {};
- var retval =
- {
- init: function(divaSettings, divaInstance)
- {
- var highlightManager = new HighlightManager(divaInstance);
- divaSettings.parentObject.data('highlightManager', highlightManager);
-
- settings.highlightedPages = [];
-
- /*
- Reset the highlights object and removes all highlights from the document.
- */
- divaInstance.resetHighlights = function()
- {
- highlightManager.clear();
- };
-
- /*
- Resets the highlights for a single page.
- */
- divaInstance.removeHighlightsOnPage = function(pageIdx)
- {
- highlightManager.removeHighlightsOnPage(pageIdx);
- };
-
- divaInstance.hideHighlights = function()
- {
- settings.highlightsVisible = false;
- $(divaSettings.innerElement).addClass('annotations-hidden');
- };
-
- divaInstance.showHighlights = function()
- {
- settings.highlightsVisible = true;
- $(divaSettings.innerElement).removeClass('annotations-hidden');
- };
-
- /*
- Highlights regions on multiple pages.
- @param pageIdxs An array of page index numbers
- @param regions An array of regions
- @param colour (optional) A colour for the highlighting, specified in RGBA CSS format
- */
- divaInstance.highlightOnPages = function(pageIdxs, regions, colour, divClass)
- {
- var j = pageIdxs.length;
- while (j--)
- {
- divaInstance.highlightOnPage(pageIdxs[j], regions[j], colour, divClass);
- }
- };
-
- /*
- Highlights regions on a page.
- @param pageIdx A page index number
- @param regions An array of regions. Use {'width':i, 'height':i, 'ulx':i, 'uly': i, 'divID': str} for each region.
- @param colour (optional) A colour for the highlighting, specified in RGBA CSS format
- @param divClass (optional) A class to identify a group of highlighted regions on a specific page by
- */
- divaInstance.highlightOnPage = function(pageIdx, regions, colour, divClass)
- {
- if (colour === undefined)
- {
- colour = 'rgba(255, 0, 0, 0.2)';
- }
-
- if (divClass === undefined)
- {
- divClass = divaSettings.ID + 'highlight diva-highlight';
- }
- else
- {
- divClass = divaSettings.ID + 'highlight diva-highlight ' + divClass;
- }
-
- highlightManager.addHighlight({
- page: pageIdx,
- regions: regions,
- colour: colour,
- divClass: divClass
- });
-
- return true;
- };
-
- /*
- Jumps to a highlight somewhere in the document.
- @param divID The ID of the div to jump to. This ID must be attached to the div using .highlightOnPage(s) as the highlight may not be appended to the DOM.
- */
- divaInstance.gotoHighlight = function(divID)
- {
- var result = highlightManager.getHighlightByRegionId(divID);
-
- if (result)
- return gotoDiv(result.highlight.page, result.region);
-
- console.warn("Diva just tried to find a highlight that doesn't exist.");
- return false;
- };
-
- /**
- * Moves the diva pane to (page)
- */
- var gotoDiv = function(page, thisDiv)
- {
- //gets center of the div
- var centerYOfDiv = parseFloat(thisDiv.uly) + parseFloat(thisDiv.height) / 2;
- var centerXOfDiv = parseFloat(thisDiv.ulx) + parseFloat(thisDiv.width) / 2;
-
- var desiredY = divaInstance.translateFromMaxZoomLevel(centerYOfDiv);
- var desiredX = divaInstance.translateFromMaxZoomLevel(centerXOfDiv);
-
- //navigates to the page
- page = parseInt(page, 10);
- divaInstance.gotoPageByIndex(page);
- var viewportObject = divaInstance.getSettings().viewportObject;
- var currentTop = viewportObject.scrollTop() + desiredY - (viewportObject.height() / 2) + divaSettings.verticalPadding;
- var currentLeft = viewportObject.scrollLeft() + desiredX - (viewportObject.width() / 2) + divaSettings.horizontalPadding;
-
- //changes the scroll location to center on the div as much as is possible
- viewportObject.scrollTop(currentTop);
- viewportObject.scrollLeft(currentLeft);
- };
-
- var showAnnotations = function(canvasIndex)
- {
- return function(data, status, jqXHR)
- {
- var canvasAnnotations = data;
- var numAnnotations = data.length;
-
- //convert annotations in annotations object to diva highlight objects
- var regions = [];
-
- //loop over annotations in a single canvas
- for (var k = 0; k < numAnnotations; k++)
- {
- var currentAnnotation = canvasAnnotations[k];
- // get text content
- var text = currentAnnotation.resource.chars;
-
- // get x,y,w,h (slice string from '#xywh=' to end)
- var onString = currentAnnotation.on;
- var coordString = onString.slice(onString.indexOf('#xywh=') + 6);
- var coordinates = coordString.split(',');
-
- var region = {
- ulx: parseInt(coordinates[0], 10),
- uly: parseInt(coordinates[1], 10),
- width: parseInt(coordinates[2], 10),
- height: parseInt(coordinates[3], 10),
- name: text
- };
-
- regions.push(region);
- }
-
- divaInstance.highlightOnPage(canvasIndex, regions);
- //flag this page's annotations as having been retrieved
- settings.highlightedPages.push(canvasIndex);
- };
- };
-
- var getAnnotationsList = function(pageIndex)
- {
- //if page has annotationList
- var canvases = settings.manifest.sequences[0].canvases;
-
- if (canvases[pageIndex].hasOwnProperty('otherContent'))
- {
- var otherContent = canvases[pageIndex].otherContent;
-
- for (var j = 0; j < otherContent.length; j++)
- {
- if (otherContent[j]['@type'] === 'sc:AnnotationList')
- {
- // canvas has annotations. get the annotations:
- $.ajax({
- url: otherContent[j]['@id'],
- cache: true,
- dataType: 'json',
- success: showAnnotations(pageIndex)
- });
- }
- }
- }
- };
-
- var setManifest = function(manifest)
- {
- settings.manifest = manifest;
- };
-
- diva.Events.subscribe('ManifestDidLoad', setManifest, divaSettings.ID);
-
- diva.Events.subscribe('PageWillLoad', function(pageIndex)
- {
- if (!settings.highlightsVisible)
- {
- return;
- }
-
- //if highlights for this page have already been checked/loaded, return
- for (var i = 0; i < settings.highlightedPages.length; i++)
- {
- if (settings.highlightedPages[i] === pageIndex)
- {
- return;
- }
- }
-
- getAnnotationsList(pageIndex, settings.manifest);
- }, divaSettings.ID);
-
- var activeOverlays = [];
-
- //on mouseover, show the annotation text
- divaSettings.innerObject.on('mouseenter', '.' + divaSettings.ID + 'highlight', function(e)
- {
- var annotationElement = e.target;
- var name = annotationElement.dataset.name;
- var textOverlay = document.createElement('div');
-
- textOverlay.style.top = (annotationElement.offsetTop + annotationElement.offsetHeight - 1) + 'px';
- textOverlay.style.left = annotationElement.style.left;
- textOverlay.style.background = '#fff';
- textOverlay.style.border = '1px solid #555';
- textOverlay.style.position = 'absolute';
- textOverlay.style.zIndex = 101;
- textOverlay.className = 'annotation-overlay';
- textOverlay.textContent = name;
-
- annotationElement.parentNode.appendChild(textOverlay);
- activeOverlays.push(textOverlay);
- });
-
- divaSettings.innerObject.on('mouseleave', '.' + divaSettings.ID + 'highlight', function(e)
- {
- while (activeOverlays.length)
- {
- var textOverlay = activeOverlays.pop();
- textOverlay.parentNode.removeChild(textOverlay);
- }
- });
-
- diva.Events.subscribe('ViewerDidLoad', function(){
- //button to toggle annotations
- $('#' + divaSettings.ID + 'page-nav').before('');
-
- $(divaSettings.selector + 'annotations-icon').addClass('annotations-icon-active');
-
- $('#' + divaSettings.ID + 'annotations-icon').on('click', function(e)
- {
- //toggle visibility of annotations
- if (settings.highlightsVisible)
- {
- divaInstance.hideHighlights();
- $(divaSettings.selector + 'annotations-icon').removeClass('annotations-icon-active');
- }
- else
- {
- divaInstance.showHighlights();
- $(divaSettings.selector + 'annotations-icon').addClass('annotations-icon-active');
- }
- });
- }, divaSettings.ID);
-
- //enable annotations by default
- settings.highlightsVisible = true;
-
- return true;
- },
- destroy: function (divaSettings, divaInstance)
- {
- divaSettings.parentObject.removeData('highlights');
- },
- pluginName: 'IIIFHighlight',
- titleText: 'Highlight regions of pages'
- };
- return retval;
- })();
-})(jQuery);
diff --git a/source/js/plugins/iiif-metadata.js b/source/js/plugins/iiif-metadata.js
deleted file mode 100644
index 16cb53fa..00000000
--- a/source/js/plugins/iiif-metadata.js
+++ /dev/null
@@ -1,131 +0,0 @@
-// IIIF Metadata plugin for diva.js
-// Displays object metadata from a IIIF manifest
-
-var jQuery = require('jquery');
-var diva = require('../diva');
-
-(function ($)
-{
- module.exports = (function()
- {
- var retval =
- {
- init: function(divaSettings, divaInstance)
- {
- var _displayMetadata = function(manifest)
- {
- var showMetadata = function(label, value)
- {
- var labelProper = label.charAt(0).toUpperCase() + label.slice(1);
- var labelFormatted = labelProper.replace('_', ' ');
-
- if (value.match(/^https?:\/\//))
- {
- value = '' + value + '';
- }
-
- return '' + labelFormatted + ': ' +
- value + '
';
- };
-
- var getDataForLanguage = function(data, language)
- {
- for (var i = 0; i < data.length; i++)
- {
- if (data[i]['@language'] === language)
- {
- return data[i]['@value'];
- }
- }
-
- // Handle the case where no language is specified, or when a single object is passed
- return data[0]['@value'] || data['@value'];
- };
-
- /**
- * Shows metadata from label names (if the metadata exists).
- * @param names {Array} - An array of strings representing field names to display.
- */
- var showMetadataFromLabelNames = function(names)
- {
- var elements = '';
-
- for (var i = 0; i < names.length; i++)
- {
- var field = names[i];
-
- if (manifest.hasOwnProperty(field))
- {
- if (manifest[field].constructor === Array)
- {
- //multiple languages
- var localizedData = getDataForLanguage(manifest[field], 'en');
- elements += showMetadata(field, localizedData);
- }
- else
- {
- elements += showMetadata(field, manifest[field]);
- }
- }
- }
-
- return elements;
- };
-
- var metadataElement = '';
- metadataElement += showMetadataFromLabelNames(['label']);
-
- if (manifest.hasOwnProperty('metadata'))
- {
- var metadataField = manifest.metadata;
-
- for (var i = 0; i < metadataField.length; i++)
- {
- if (metadataField[i].value.constructor === Array)
- {
- var canonicalData = getDataForLanguage(metadataField[i].value, 'en');
- metadataElement += showMetadata(metadataField[i].label, canonicalData);
- }
- else
- {
- metadataElement += showMetadata(metadataField[i].label, metadataField[i].value);
- }
- }
- }
-
- metadataElement += showMetadataFromLabelNames([
- 'description',
- 'within',
- 'see_also',
- 'license',
- 'attribution'
- ]);
-
- metadataElement += '
';
-
- divaSettings.parentObject.prepend(metadataElement);
- $(divaSettings.selector + 'metadata').hide();
- };
-
- //subscribe to ManifestDidLoad event, get the manifest
- diva.Events.subscribe('ManifestDidLoad', _displayMetadata, divaSettings.ID);
-
- divaSettings.parentObject.prepend('');
- // $(divaSettings.selector + 'title').append('');
-
- $(divaSettings.selector + 'metadata-link').on('click', function(e)
- {
- $(divaSettings.selector + 'metadata').fadeToggle('fast');
- });
-
- return true;
- },
- destroy: function (divaSettings, divaInstance)
- {
- },
- pluginName: 'IIIFMetadata',
- titleText: 'Show metadata from a IIIF manifest'
- };
- return retval;
- })();
-})(jQuery);
diff --git a/source/js/plugins/manipulation.js b/source/js/plugins/manipulation.js
new file mode 100644
index 00000000..ed72e1fa
--- /dev/null
+++ b/source/js/plugins/manipulation.js
@@ -0,0 +1,781 @@
+import {
+ grayscale,
+ saturation,
+ vibrance,
+ brightness,
+ contrast,
+ hue,
+ gamma,
+ ccRed,
+ ccGreen,
+ ccBlue,
+ invert,
+ threshold,
+ sharpen,
+ resetFilters
+} from "./_filters";
+import gestureEvents from '../gesture-events';
+
+/**
+ * Returns a function, that, as long as it continues to be invoked, will not
+ be triggered. The function will be called after it stops being called for
+ N milliseconds. If `immediate` is passed, trigger the function on the
+ leading edge, instead of the trailing.
+ */
+function debounce (func, wait, immediate)
+{
+ let timeout;
+ return function ()
+ {
+ let context = this, args = arguments;
+ let later = function ()
+ {
+ timeout = null;
+ if (!immediate)
+ {
+ func.apply(context, args);
+ }
+ };
+ let callNow = immediate && !timeout;
+ clearTimeout(timeout);
+ timeout = setTimeout(later, wait);
+ if (callNow)
+ {
+ func.apply(context, args);
+ }
+ };
+}
+
+/**
+ * A Diva.js plugin that allows users to manipulate images by adjusting their
+ * brightness, contrast, and other parameters.
+ **/
+export default class ManipulationPlugin
+{
+ constructor (core)
+ {
+ this._core = core;
+ this.pageToolsIcon = this.createIcon();
+ this._backdrop = null;
+ this._page = null;
+ this._mainImage = null;
+ this._canvas = null;
+
+ // store the data for the original main image so that we
+ // do the processing on that, not on a previously-processed image.
+ this._originalData = null;
+
+ // zoom stuff
+ this.maxZoom = 4;
+ this.minZoom = 1;
+ this.zoom = 1;
+
+ this.rotate = 0;
+
+ // mirror stuff, 1 for not mirrored, -1 for mirrored
+ this.mirrorHorizontal = 1;
+ this.mirrorVertical = 1;
+
+ this.boundEscapeListener = this.escapeListener.bind(this);
+
+ // url of currently loaded image
+ this.currentImageURL = null;
+ }
+
+ handleClick (event, settings, publicInstance, pageIndex)
+ {
+ document.body.style.overflow = 'hidden';
+ this._backdrop = document.createElement('div');
+ this._backdrop.classList.add('manipulation-fullscreen');
+
+ this._sidebar = document.createElement('div');
+ this._sidebar.classList.add('manipulation-sidebar');
+
+ this._mainArea = document.createElement('div');
+ this._mainArea.classList.add('manipulation-main-area');
+
+ // enable scroll by dragging
+ this._mainArea.classList.add('dragscroll');
+ this._mainArea.addEventListener('mousedown', () => { this._mainArea.classList.add('grabbing'); });
+ this._mainArea.addEventListener('mouseup', () => { this._mainArea.classList.remove('grabbing'); });
+
+ // add double click zoom handler
+ gestureEvents.onDoubleClick(this._mainArea, this.handleDblClick.bind(this));
+
+ this._tools = document.createElement('div');
+ this._tools.classList.add('manipulation-tools');
+
+ this._backdrop.appendChild(this._sidebar);
+ this._backdrop.appendChild(this._mainArea);
+ this._backdrop.appendChild(this._tools);
+
+ this._core.parentObject.appendChild(this._backdrop);
+ document.addEventListener('keyup', this.boundEscapeListener);
+
+ this._page = settings.manifest.pages[pageIndex];
+
+ this._canvas = document.createElement('canvas');
+ this._ctx = this._canvas.getContext('2d');
+ this._mainArea.appendChild(this._canvas);
+
+ this._initializeSidebar();
+ this._initializeTools();
+
+ window.resetDragscroll();
+ this._loadImageInMainArea(event, this._page.url);
+ }
+
+ handleDblClick (event)
+ {
+ let newZoom = event.ctrlKey ? this.zoom - 1 : this.zoom + 1;
+ if (newZoom < this.minZoom || newZoom > this.maxZoom)
+ return;
+
+ // update slider
+ let slider = document.getElementById('zoom-slider');
+ slider.value = newZoom;
+
+ this.handleZoom(event, newZoom, true);
+ }
+
+ /*
+ * Returns an SVG object representing the icon for the project. Implemented in code
+ * here so that the entire Diva object can be passed to the client with no external
+ * dependencies.
+ **/
+ createIcon ()
+ {
+ const manipulationIcon = document.createElement('div');
+ manipulationIcon.classList.add('diva-manipulation-icon');
+
+ let root = document.createElementNS("http://www.w3.org/2000/svg", "svg");
+ root.setAttribute("x", "0px");
+ root.setAttribute("y", "0px");
+ root.setAttribute("viewBox", "0 0 25 25");
+ root.id = `${this._core.settings.selector}manipulation-icon`;
+
+ let g = document.createElementNS("http://www.w3.org/2000/svg", "g");
+ g.id = `${this._core.settings.selector}manipulation-icon-glyph`;
+ g.setAttribute("transform", "matrix(1, 0, 0, 1, -11.5, -11.5)");
+ g.setAttribute("class", "diva-pagetool-icon");
+
+ let path1 = document.createElementNS("http://www.w3.org/2000/svg", "path");
+ path1.setAttribute("d", "M27,21h-1v-9h-3v9h-1c-0.55,0-1,0.45-1,1v3c0,0.55,0.45,1,1,1h1h3h1c0.55,0,1-0.45,1-1v-3C28,21.45,27.55,21,27,21z M27,24h-5v-0.5h5V24z");
+
+ let path2 = document.createElementNS("http://www.w3.org/2000/svg", "path");
+ path2.setAttribute("d", "M35,16h-1v-4h-3v4h-1c-0.55,0-1,0.45-1,1v3c0,0.55,0.45,1,1,1h1h3h1c0.55,0,1-0.45,1-1v-3C36,16.45,35.55,16,35,16z M35,19h-5v-0.5h5V19z");
+
+ let path3 = document.createElementNS("http://www.w3.org/2000/svg", "path");
+ path3.setAttribute("d", "M19,26h-1V12h-3v14h-1c-0.55,0-1,0.45-1,1v3c0,0.55,0.45,1,1,1h1h3h1c0.55,0,1-0.45,1-1v-3C20,26.45,19.55,26,19,26zM19,29h-5v-0.5h5V29z");
+
+ let rect1 = document.createElementNS("http://www.w3.org/2000/svg", "rect");
+ rect1.setAttribute('x', '23');
+ rect1.setAttribute('y', '27');
+ rect1.setAttribute('width', '3');
+ rect1.setAttribute('height', '9');
+
+ let rect2 = document.createElementNS("http://www.w3.org/2000/svg", "rect");
+ rect2.setAttribute('x', '31');
+ rect2.setAttribute('y', '22');
+ rect2.setAttribute('width', '3');
+ rect2.setAttribute('height', '14');
+
+ let rect3 = document.createElementNS("http://www.w3.org/2000/svg", "rect");
+ rect3.setAttribute('x', '15');
+ rect3.setAttribute('y', '32');
+ rect3.setAttribute('width', '3');
+ rect3.setAttribute('height', '4');
+
+ g.appendChild(path1);
+ g.appendChild(path2);
+ g.appendChild(rect1);
+ g.appendChild(path3);
+ g.appendChild(rect2);
+ g.appendChild(rect3);
+ root.appendChild(g);
+
+ manipulationIcon.appendChild(root);
+
+ return manipulationIcon;
+ }
+
+ escapeListener (event)
+ {
+ if (event.keyCode === 27)
+ {
+ document.removeEventListener('keyup', this.boundEscapeListener);
+ document.body.style.overflow = 'auto';
+ this._core.parentObject.removeChild(this._backdrop);
+ }
+ }
+
+ _initializeSidebar ()
+ {
+ // 150px wide images for the sidebar.
+ let thumbnailSize = "150";
+ let mainPageSidebarImageURL = `${this._page.url}full/${thumbnailSize},/0/default.jpg`;
+
+ let otherImageURLs = this._page.otherImages.map((img) =>
+ {
+ return `${img.url}full/${thumbnailSize},/0/default.jpg`;
+ });
+
+ let primaryImgDiv = document.createElement('div');
+ primaryImgDiv.classList.add('manipulation-sidebar-primary-image');
+
+ let primaryImg = document.createElement('img');
+ primaryImg.setAttribute('src', mainPageSidebarImageURL);
+
+ let primaryImgLabel = document.createElement('div');
+ primaryImgLabel.textContent = this._page.il;
+
+ primaryImgDiv.appendChild(primaryImg);
+ primaryImgDiv.appendChild(primaryImgLabel);
+
+ this._sidebar.appendChild(primaryImgDiv);
+
+ primaryImgDiv.addEventListener('click', () =>
+ {
+ this._loadImageInMainArea.call(this, event, this._page.url);
+ });
+
+ otherImageURLs.map((url, idx) =>
+ {
+ let othDiv = document.createElement('div');
+ othDiv.classList.add('manipulation-sidebar-secondary-image');
+
+ let othImg = document.createElement('img');
+ othImg.setAttribute('src', url);
+
+ let othImgLabel = document.createElement('div');
+ othImgLabel.textContent = this._page.otherImages[idx].il;
+
+ othDiv.appendChild(othImg);
+ othDiv.appendChild(othImgLabel);
+
+ this._sidebar.appendChild(othDiv);
+
+ othDiv.addEventListener('click', () => this._loadImageInMainArea.call(this, event, this._page.otherImages[idx].url));
+ });
+ }
+
+ _initializeTools ()
+ {
+ // Close button
+ let closeButton = document.createElement('button');
+
+ closeButton.innerHTML = '✖';
+ closeButton.classList.add('close-button');
+ closeButton.setAttribute('style', 'display: absolute; top: 1em; right: 1em;');
+
+ closeButton.onclick = () =>
+ {
+ document.body.style.overflow = 'auto';
+ this._core.parentObject.removeChild(this._backdrop);
+ };
+
+ // Header title
+ let header = document.createElement('h1');
+
+ header.setAttribute('style', 'margin-bottom: 0.3em;');
+ header.classList.add('manipulation-tools-text');
+ header.innerText = 'Tools';
+
+ // Zoom tool
+ let zoomDiv = document.createElement('div');
+ let zoomAdjust = document.createElement('input');
+ let zoomText = document.createTextNode('Zoom');
+
+ zoomDiv.classList.add('manipulation-tools-text');
+ zoomAdjust.setAttribute('type', 'range');
+ zoomAdjust.setAttribute('max', this.maxZoom);
+ zoomAdjust.setAttribute('min', this.minZoom);
+ zoomAdjust.setAttribute('value', this.zoom);
+ zoomAdjust.id = 'zoom-slider';
+ zoomDiv.addEventListener('change', debounce((e) => this.handleZoom(e, e.target.value, true), 250));
+ zoomDiv.appendChild(zoomAdjust);
+ zoomDiv.appendChild(zoomText);
+
+ // Rotation tool
+ let rotateDiv = document.createElement('div');
+ let rotateAdjust = document.createElement('input');
+ let rotateText = document.createTextNode('Rotation');
+
+ rotateDiv.classList.add('manipulation-tools-text');
+ rotateAdjust.setAttribute('type', 'range');
+ rotateAdjust.setAttribute('max', 359);
+ rotateAdjust.setAttribute('min', 0);
+ rotateAdjust.setAttribute('value', 0);
+
+ rotateDiv.addEventListener('input', (e) => { this.handleTransform(e, null, e.target.value); });
+ rotateDiv.appendChild(rotateAdjust);
+ rotateDiv.appendChild(rotateText);
+
+ // Mirror tool
+ let mirrorDiv = document.createElement('div');
+ let verticalMirrorButton = document.createElement('button');
+ verticalMirrorButton.id = 'vertical-mirror-button';
+ let horizontalMirrorButton = document.createElement('button');
+ horizontalMirrorButton.id = 'horizontal-mirror-button';
+
+ verticalMirrorButton.textContent = "Mirror Vertically";
+ horizontalMirrorButton.textContent = "Mirror Horizontally";
+ verticalMirrorButton.addEventListener('click', (e) => this.handleTransform(e, 'vertical', this.rotate));
+ horizontalMirrorButton.addEventListener('click', (e) => this.handleTransform(e, 'horizontal', this.rotate));
+ mirrorDiv.appendChild(verticalMirrorButton);
+ mirrorDiv.appendChild(horizontalMirrorButton);
+
+ // Filters title
+ let filtersTitle = document.createElement('div');
+ filtersTitle.setAttribute('style', 'height: 2em; width: 100%; margin-bottom: 1em;');
+
+ let titleText = document.createElement('h3');
+ titleText.setAttribute('style', 'display: inline-block; margin-right: 3em;');
+ titleText.classList.add('manipulation-tools-text');
+ titleText.innerText = 'Filters';
+
+ // Selection options (color filters or threshold)
+ let select = document.createElement('select');
+ select.setAttribute('style', 'display: inline;');
+ select.id = 'filter-select';
+ select.style.backgroundColor = 'white';
+
+ let colorFilters = document.createElement('option');
+ colorFilters.value = 'colours';
+ colorFilters.innerText = 'Color Filters';
+
+ let otherFilters = document.createElement('option');
+ otherFilters.value = 'threshold';
+ otherFilters.innerText = 'Threshold';
+
+ select.addEventListener('change', switchVisibleFilters);
+ select.appendChild(colorFilters);
+ select.appendChild(otherFilters);
+ filtersTitle.appendChild(titleText);
+ filtersTitle.appendChild(select);
+
+ // Grayscale filter
+ let bwDiv = document.createElement('div');
+ bwDiv.classList.add('color-filters');
+ let blackWhiteButton = document.createElement('button');
+ blackWhiteButton.textContent = "Grayscale";
+ blackWhiteButton.addEventListener('click', (e) => this._applyTransformationToImageData(e, grayscale));
+ bwDiv.appendChild(blackWhiteButton);
+
+ // Saturation filter
+ let saturationDiv = document.createElement('div');
+ saturationDiv.classList.add('color-filters');
+ saturationDiv.classList.add('manipulation-tools-text');
+ let saturationAdjust = document.createElement('input');
+ let saturationText = document.createTextNode('Saturation');
+ saturationAdjust.setAttribute('type', 'range');
+ saturationAdjust.setAttribute('max', 100);
+ saturationAdjust.setAttribute('min', -100);
+ saturationAdjust.setAttribute('value', 0);
+
+ saturationAdjust.addEventListener('change', debounce((e) => this._applyTransformationToImageData(e, saturation, e.target.value), 250));
+ saturationDiv.appendChild(saturationAdjust);
+ saturationDiv.appendChild(saturationText);
+
+ // Vibrance filter
+ let vibDiv = document.createElement('div');
+ vibDiv.classList.add('color-filters');
+ vibDiv.classList.add('manipulation-tools-text');
+ let vibranceAdjust = document.createElement('input');
+ let vibranceText = document.createTextNode('Vibrance');
+ vibranceAdjust.setAttribute('type', 'range');
+ vibranceAdjust.setAttribute('max', 100);
+ vibranceAdjust.setAttribute('min', -100);
+ vibranceAdjust.setAttribute('value', 0);
+
+ vibranceAdjust.addEventListener('change', debounce((e) => this._applyTransformationToImageData(e, vibrance, e.target.value), 250));
+ vibDiv.appendChild(vibranceAdjust);
+ vibDiv.appendChild(vibranceText);
+
+ // Brightness filter
+ let brightDiv = document.createElement('div');
+ brightDiv.classList.add('color-filters');
+ brightDiv.classList.add('manipulation-tools-text');
+ let brightnessAdjust = document.createElement('input');
+ let brightnessText = document.createTextNode('Brightness');
+ brightnessAdjust.setAttribute('type', 'range');
+ brightnessAdjust.setAttribute('max', 100);
+ brightnessAdjust.setAttribute('min', -100);
+ brightnessAdjust.setAttribute('value', 0);
+
+ brightnessAdjust.addEventListener('change', debounce((e) => this._applyTransformationToImageData(e, brightness, e.target.value), 250));
+ brightDiv.appendChild(brightnessAdjust);
+ brightDiv.appendChild(brightnessText);
+
+ // Contrast filter
+ let contrastDiv = document.createElement('div');
+ contrastDiv.classList.add('color-filters');
+ contrastDiv.classList.add('manipulation-tools-text');
+ let contrastAdjust = document.createElement('input');
+ let contrastText = document.createTextNode('Contrast');
+ contrastAdjust.setAttribute('type', 'range');
+ contrastAdjust.setAttribute('max', 100);
+ contrastAdjust.setAttribute('min', -100);
+ contrastAdjust.setAttribute('value', 0);
+
+ contrastAdjust.addEventListener('change', debounce((e) => this._applyTransformationToImageData(e, contrast, e.target.value), 250));
+ contrastDiv.appendChild(contrastAdjust);
+ contrastDiv.appendChild(contrastText);
+
+ // Invert colours filter
+ let invDiv = document.createElement('div');
+ invDiv.classList.add('color-filters');
+ let invertButton = document.createElement('button');
+ invertButton.textContent = "Invert Colours";
+ invertButton.addEventListener('click', (e) => this._applyTransformationToImageData(e, invert));
+ invDiv.appendChild(invertButton);
+
+ // Sharpness filter
+ let sharpDiv = document.createElement('div');
+ sharpDiv.classList.add('color-filters');
+ sharpDiv.classList.add('manipulation-tools-text');
+ let sharpenAdjust = document.createElement('input');
+ let sharpenText = document.createTextNode('Sharpness');
+ sharpenAdjust.setAttribute('type', 'range');
+ sharpenAdjust.setAttribute('max', 100);
+ sharpenAdjust.setAttribute('min', 0);
+ sharpenAdjust.setAttribute('value', 0);
+
+ sharpenAdjust.addEventListener('change', debounce((e) => this._applyTransformationToImageData(e, sharpen, e.target.value), 250));
+ sharpDiv.appendChild(sharpenAdjust);
+ sharpDiv.appendChild(sharpenText);
+
+ // Hue filter
+ let hueDiv = document.createElement('div');
+ hueDiv.classList.add('color-filters');
+ hueDiv.classList.add('manipulation-tools-text');
+ let hueAdjust = document.createElement('input');
+ let hueText = document.createTextNode('Hue');
+ hueAdjust.setAttribute('type', 'range');
+ hueAdjust.setAttribute('max', 100);
+ hueAdjust.setAttribute('min', 0);
+ hueAdjust.setAttribute('value', 0);
+
+ hueAdjust.addEventListener('change', debounce((e) => this._applyTransformationToImageData(e, hue, e.target.value), 250));
+ hueDiv.appendChild(hueAdjust);
+ hueDiv.appendChild(hueText);
+
+ // Gamma filter
+ let gammaDiv = document.createElement('div');
+ gammaDiv.classList.add('color-filters');
+ gammaDiv.classList.add('manipulation-tools-text');
+ let gammaAdjust = document.createElement('input');
+ let gammaText = document.createTextNode('Gamma');
+ gammaAdjust.setAttribute('type', 'range');
+ gammaAdjust.setAttribute('max', 300);
+ gammaAdjust.setAttribute('min', -100);
+ gammaAdjust.setAttribute('value', 0);
+
+ gammaAdjust.addEventListener('change', debounce((e) => this._applyTransformationToImageData(e, gamma, e.target.value), 250));
+ gammaDiv.appendChild(gammaAdjust);
+ gammaDiv.appendChild(gammaText);
+
+ // Colour channel RGB slides
+ let ccRedDiv = document.createElement('div');
+ ccRedDiv.classList.add('color-filters');
+ ccRedDiv.classList.add('manipulation-tools-text');
+ let ccRedAdjust = document.createElement('input');
+ let ccRedText = document.createTextNode('CC Red');
+ ccRedAdjust.setAttribute('type', 'range');
+ ccRedAdjust.setAttribute('max', 100);
+ ccRedAdjust.setAttribute('min', -100);
+ ccRedAdjust.setAttribute('value', 0);
+
+ let ccGreenDiv = document.createElement('div');
+ ccGreenDiv.classList.add('color-filters');
+ ccGreenDiv.classList.add('manipulation-tools-text');
+ let ccGreenAdjust = document.createElement('input');
+ let ccGreenText = document.createTextNode('CC Green');
+ ccGreenAdjust.setAttribute('type', 'range');
+ ccGreenAdjust.setAttribute('max', 100);
+ ccGreenAdjust.setAttribute('min', -100);
+ ccGreenAdjust.setAttribute('value', 0);
+
+ let ccBlueDiv = document.createElement('div');
+ ccBlueDiv.classList.add('color-filters');
+ ccBlueDiv.classList.add('manipulation-tools-text');
+ let ccBlueAdjust = document.createElement('input');
+ let ccBlueText = document.createTextNode('CC Blue');
+ ccBlueAdjust.setAttribute('type', 'range');
+ ccBlueAdjust.setAttribute('max', 100);
+ ccBlueAdjust.setAttribute('min', -100);
+ ccBlueAdjust.setAttribute('value', 0);
+
+ ccRedAdjust.addEventListener('change', debounce((e) => this._applyTransformationToImageData(e, ccRed, e.target.value), 250));
+ ccGreenAdjust.addEventListener('change', debounce((e) => this._applyTransformationToImageData(e, ccGreen, e.target.value), 250));
+ ccBlueAdjust.addEventListener('change', debounce((e) => this._applyTransformationToImageData(e, ccBlue, e.target.value), 250));
+
+ ccRedDiv.appendChild(ccRedAdjust);
+ ccRedDiv.appendChild(ccRedText);
+ ccGreenDiv.appendChild(ccGreenAdjust);
+ ccGreenDiv.appendChild(ccGreenText);
+ ccBlueDiv.appendChild(ccBlueAdjust);
+ ccBlueDiv.appendChild(ccBlueText);
+
+ // Threshold filter
+ let threshDiv = document.createElement('div');
+ threshDiv.style.display = 'none';
+ let thresholdAdjust = document.createElement('input');
+ let thresholdText = document.createTextNode('Threshold');
+ threshDiv.classList.add('manipulation-tools-text');
+ thresholdAdjust.setAttribute('type', 'range');
+ thresholdAdjust.setAttribute('max', 255);
+ thresholdAdjust.setAttribute('min', 64);
+ thresholdAdjust.setAttribute('value', 0);
+
+ thresholdAdjust.addEventListener('change', debounce((e) => this._applyTransformationToImageData(e, threshold, e.target.value), 250));
+ threshDiv.appendChild(thresholdAdjust);
+ threshDiv.appendChild(thresholdText);
+
+ // Reset button
+ let resetButton = document.createElement('button');
+ resetButton.setAttribute('style', 'margin-top: 1em;');
+ let buttonText = document.createTextNode('Reset');
+ resetButton.appendChild(buttonText);
+ resetButton.onclick = (e) => { this._loadImageInMainArea(e, this.currentImageURL); };
+
+ // Log to keep track of the order of filter application
+ let filterLog = document.createElement('div');
+ filterLog.classList.add('manipulation-tools-text');
+ filterLog.innerHTML = " Filter Application Order ";
+ filterLog.id = 'filter-log';
+
+ this._tools.appendChild(closeButton);
+ this._tools.appendChild(header);
+ this._tools.appendChild(zoomDiv);
+ this._tools.appendChild(rotateDiv);
+ this._tools.appendChild(mirrorDiv);
+ this._tools.appendChild(filtersTitle);
+ this._tools.appendChild(bwDiv);
+ this._tools.appendChild(invDiv);
+ this._tools.appendChild(saturationDiv);
+ this._tools.appendChild(vibDiv);
+ this._tools.appendChild(brightDiv);
+ this._tools.appendChild(contrastDiv);
+ this._tools.appendChild(sharpDiv);
+ this._tools.appendChild(hueDiv);
+ this._tools.appendChild(gammaDiv);
+ this._tools.appendChild(ccRedDiv);
+ this._tools.appendChild(ccGreenDiv);
+ this._tools.appendChild(ccBlueDiv);
+ this._tools.appendChild(threshDiv);
+ this._tools.appendChild(resetButton);
+ this._tools.appendChild(filterLog);
+
+ this._tools.setAttribute('style', 'padding: 0 1em;');
+
+ function switchVisibleFilters ()
+ {
+ let filters = document.getElementsByClassName('color-filters');
+
+ if (this.value === 'threshold')
+ {
+ for (let i = 0, len = filters.length; i < len; i++)
+ {
+ filters[i].style.display = 'none';
+ }
+
+ threshDiv.style.display = 'block';
+ }
+ else
+ {
+ for (let i = 0, len = filters.length; i < len; i++)
+ {
+ filters[i].style.display = 'block';
+ }
+
+ threshDiv.style.display = 'none';
+ }
+ }
+ }
+
+ _resetSliders ()
+ {
+ // check if element is a slider, if so then reset
+ for (let i = 0, len = this._tools.children.length; i < len; i++)
+ {
+ let tool = this._tools.children[i].children[0];
+ if (tool && tool.type === 'range')
+ tool.value = 0;
+ }
+
+ document.getElementById('filter-log').innerHTML = " Filter Application Order ";
+
+ // reset counters
+ this.zoom = 1;
+ this.rotate = 0;
+
+ // reset mirror
+ this.mirrorHorizontal = 1;
+ this.mirrorVertical = 1;
+ this.handleTransform(null, null, this.rotate);
+
+ resetFilters();
+ }
+
+ _loadImageInMainArea (event, imageURL)
+ {
+ this.currentImageURL = imageURL; // for resetting
+
+ let url = `${imageURL}full/full/0/default.jpg`;
+
+ this._mainImage = new Image();
+ this._mainImage.crossOrigin = "anonymous";
+
+ this._mainImage.addEventListener('load', () =>
+ {
+ // Determine the size of the (square) canvas based on the hypoteneuse
+ this._canvas.size = Math.sqrt(this._mainImage.width * this._mainImage.width + this._mainImage.height * this._mainImage.height);
+ this._canvas.width = this._canvas.size;
+ this._canvas.height = this._canvas.size;
+ this._canvas.cornerX = (this._canvas.size - this._mainImage.width) / 2;
+ this._canvas.cornerY = (this._canvas.size - this._mainImage.height) / 2;
+
+ this._ctx.clearRect(0, 0, this._canvas.width, this._canvas.height);
+ this._ctx.drawImage(this._mainImage, this._canvas.cornerX, this._canvas.cornerY, this._mainImage.width, this._mainImage.height);
+ this._originalData = this._ctx.getImageData(this._canvas.cornerX, this._canvas.cornerY, this._mainImage.width, this._mainImage.height);
+ this._alteredData = this._originalData;
+
+ // to preserve pre-zoom dimensions
+ this.dims = {
+ w: this._canvas.width,
+ h: this._canvas.height
+ };
+
+ // clean up the image data since it's been painted to the canvas
+ this._mainImage = null;
+
+ // center the viewport
+ this.centerView();
+ });
+
+ this._mainImage.src = url;
+
+ this._resetSliders();
+ }
+
+ _applyTransformationToImageData (event, func, value)
+ {
+ let cw = this._canvas.width;
+ let ch = this._canvas.height;
+ let adjustment;
+
+ if (value)
+ {
+ adjustment = parseInt(value, 10);
+ }
+
+ let newData = func(this._originalData, adjustment);
+ this._alteredData = newData;
+
+ this._ctx.clearRect(0, 0, cw, ch);
+ this._ctx.putImageData(newData, this._canvas.cornerX, this._canvas.cornerY);
+
+ // necessary to reset the current zoom level (since ImageData gets altered at zoom 1)
+ this.handleZoom(event, this.zoom, false);
+ }
+
+ handleZoom (event, value, recenter)
+ {
+ let scale = value * 0.5 + 0.5;
+
+ let w = this.dims.w;
+ let h = this.dims.h;
+
+ // temp canvas for drawing at original zoom level
+ let tempCanvas = document.createElement('canvas');
+ let tempCtx = tempCanvas.getContext('2d');
+ tempCanvas.width = w;
+ tempCanvas.height = h;
+ tempCtx.putImageData(this._alteredData, this._canvas.cornerX, this._canvas.cornerY);
+
+ this._canvas.width = w * scale;
+ this._canvas.height = h * scale;
+ this._ctx.clearRect(0, 0, this._canvas.width, this._canvas.height);
+ this._ctx.scale(scale, scale);
+ this._ctx.drawImage(tempCanvas, 0, 0);
+
+ // determine if zooming in or not
+ let zoomingIn = value > this.zoom ? true : false;
+
+ this.zoom = parseInt(value, 10);
+
+ if (recenter)
+ {
+ let rect = event.target.getBoundingClientRect();
+ let x = event.clientX - rect.left;
+ let y = event.clientY - rect.top;
+
+ if (!zoomingIn)
+ {
+ // x & y are in terms of pre-zoom-out dimensions, so scale down accordingly
+ let scaleOut = (this.zoom * 0.5 + 0.5) / ((this.zoom + 1) * 0.5 + 0.5);
+ x *= scaleOut;
+ y *= scaleOut;
+ }
+
+ this.centerView(x, y, zoomingIn);
+ }
+ }
+
+ centerView (x, y, zoomingIn)
+ {
+ let view = document.getElementsByClassName('manipulation-main-area')[0];
+
+ if (zoomingIn)
+ {
+ // x & y are in terms of pre-zoom-in dimensions, so scale up accordingly
+ let scaleIn = (this.zoom * 0.5 + 0.5) / ((this.zoom - 1) * 0.5 + 0.5);
+ x *= scaleIn;
+ y *= scaleIn;
+ }
+
+ // distance from center
+ let center = this._canvas.height / 2;
+ let distY = y - center;
+ let distX = x - center;
+
+ let h = this._canvas.height;
+ let w = this._canvas.width;
+
+ let topCentered = (h - view.clientHeight) / 2;
+ let leftCentered = (w - view.clientWidth) / 2;
+
+ let top = y ? topCentered + distY : topCentered;
+ let left = x ? leftCentered + distX : leftCentered;
+
+ view.scrollTop = top;
+ view.scrollLeft = left;
+ }
+
+ handleTransform (event, type, value)
+ {
+ let canvas = document.getElementsByClassName('manipulation-main-area')[0].children[0];
+
+ if (type === 'vertical')
+ this.mirrorVertical *= -1;
+ else if (type === 'horizontal')
+ this.mirrorHorizontal *= -1;
+
+ canvas.style.transform = "scale("+this.mirrorHorizontal+","+this.mirrorVertical+") rotate("+value+"deg)";
+
+ this.rotate = value;
+ }
+}
+
+ManipulationPlugin.prototype.pluginName = "manipulation";
+ManipulationPlugin.prototype.isPageTool = true;
+
+/**
+ * Make this plugin available in the global context
+ * as part of the 'Diva' namespace.
+ **/
+(function (global)
+{
+ global.Diva.ManipulationPlugin = ManipulationPlugin;
+})(window);
diff --git a/source/js/plugins/metadata.js b/source/js/plugins/metadata.js
new file mode 100644
index 00000000..d074ee1b
--- /dev/null
+++ b/source/js/plugins/metadata.js
@@ -0,0 +1,176 @@
+/**
+ * A simple plugin that implements a button to view the IIIF manifest metadata block. Plugins
+ * should register themselves as a class in the global Diva namespace, e.g., global.Diva.MetadataPlugin.
+ * Plugins are then included as *uninstantiated* references within a plugin configuration. To enable them, simply include
+ * plugins: [Diva.MetadataPlugin] when creating a Diva instance.
+ * When the viewer is instantiated it will also instantiate the plugin, which
+ * will then configure itself.
+ *
+ * Plugin constructors should take one argument, which is an instance of a ViewerCore object.
+ *
+ *
+ * Plugins should implement the following interface:
+ *
+ * {boolean} isPageTool - Added to the class prototype. Whether the plugin icon should be included for each page as a page tool
+ * {string} pluginName - Added to the class prototype. Defines the name for the plugin.
+ *
+ * @method createIcon - A div representing the icon. This *should* be implemented using SVG.
+ * @method handleClick - The click handler for the icon.
+ *
+ * Toolbar plugins must have a toolbarIcon and toolbarSide attribute, with toolbarSide being either 'left' or 'right'
+ **/
+
+import parseLabelValue from '../utils/parse-label-value';
+
+export default class MetadataPlugin
+{
+ constructor (core)
+ {
+ this.core = core;
+ this.toolbarIcon;
+ this.toolbarSide = 'right';
+
+ // helpers for handleClick
+ this.firstClick = true;
+ this.isVisible = false;
+ }
+
+ /**
+ * Display a modal with the IIIF manifest metadata.
+ **/
+ handleClick ()
+ {
+ // if first click create div elements
+ let metadataDiv;
+
+ let metadata = this.core.viewerState.manifest.metadata;
+
+ if (this.firstClick)
+ {
+ metadataDiv = document.createElement('div');
+ metadataDiv.id = 'metadataDiv';
+ metadataDiv.className = 'diva-modal';
+
+ let title = document.createElement('h2');
+ title.innerText = 'Metadata';
+ title.id = 'metadataTitle';
+
+ let closeButton = document.createElement('button');
+ closeButton.innerHTML = '✖';
+ closeButton.classList.add('close-button');
+ closeButton.onclick = () =>
+ {
+ metadataDiv.style.display = 'none';
+ this.isVisible = false;
+ };
+
+ let contentDiv = document.createElement('div');
+ contentDiv.id = 'contentDiv';
+
+ for (let i = 0, len = metadata.length; i < len; i++)
+ {
+ let key = metadata[i];
+
+ let header = document.createElement('h4');
+ header.innerHTML = parseLabelValue(key).label;
+ header.setAttribute('style', 'margin-bottom: 0');
+
+ let value = document.createElement('p');
+ value.innerHTML = parseLabelValue(key).value;
+ value.setAttribute('style', 'margin-top: 0');
+
+ contentDiv.appendChild(header);
+ contentDiv.appendChild(value);
+ }
+
+ metadataDiv.appendChild(closeButton);
+ metadataDiv.appendChild(title);
+ metadataDiv.appendChild(contentDiv);
+ document.body.appendChild(metadataDiv);
+
+ this.firstClick = false;
+ }
+ else
+ {
+ metadataDiv = document.getElementById('metadataDiv');
+ }
+
+ if (this.isVisible)
+ {
+ metadataDiv.style.display = 'none';
+ this.isVisible = false;
+ }
+ else
+ {
+ metadataDiv.style.display = 'block';
+ this.isVisible = true;
+ }
+
+ // attach drag listeners
+ let pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
+ metadataDiv.onmousedown = (e) =>
+ {
+ pos3 = e.clientX;
+ pos4 = e.clientY;
+
+ document.onmousemove = (e) =>
+ {
+ pos1 = pos3 - e.clientX;
+ pos2 = pos4 - e.clientY;
+ pos3 = e.clientX;
+ pos4 = e.clientY;
+ metadataDiv.style.top = (metadataDiv.offsetTop - pos2) + 'px';
+ metadataDiv.style.left = (metadataDiv.offsetLeft - pos1) + 'px';
+ };
+
+ document.onmouseup = () =>
+ {
+ document.onmouseup = null;
+ document.onmousemove = null;
+ };
+ };
+ }
+
+ /**
+ * See img/metadata.svg for the standalone source code for this.
+ **/
+ createIcon ()
+ {
+ if (!this.core.viewerState.manifest.metadata)
+ return;
+
+ const toolbarIcon = document.createElement('div');
+ toolbarIcon.classList.add('diva-metadata-icon', 'diva-button');
+
+ let root = document.createElementNS("http://www.w3.org/2000/svg", "svg");
+ root.setAttribute("viewBox", "0 0 20 20");
+ root.setAttribute('style', 'display: block; padding: 7%');
+ root.id = `${this.core.settings.selector}metadata-icon`;
+
+ let g = document.createElementNS("http://www.w3.org/2000/svg", "g");
+ g.id = `${this.core.settings.selector}metadata-icon-glyph`;
+ g.setAttribute("class", "diva-toolbar-icon");
+
+ let path = document.createElementNS("http://www.w3.org/2000/svg", "path");
+ path.setAttribute("d", "M5.379,0.681 L5.289,0.771 L5.255,0.736 C4.401,-0.118 2.98,-0.082 2.082,0.816 L1.827,1.07 C0.931,1.967 0.894,3.388 1.749,4.243 L1.783,4.277 L1.619,4.442 C0.846,5.214 0.818,6.441 1.559,7.18 L9.884,15.508 C10.626,16.248 11.851,16.22 12.626,15.447 L16.384,11.689 C17.156,10.916 17.185,9.69 16.445,8.95 L8.117,0.622 C7.377,-0.118 6.15,-0.091 5.379,0.681 L5.379,0.681 Z M4.523,5.108 C3.645,5.108 2.931,4.393 2.931,3.508 C2.931,2.627 3.645,1.911 4.523,1.911 C5.404,1.911 6.115,2.627 6.119,3.508 C6.115,4.395 5.404,5.108 4.523,5.108 L4.523,5.108 Z");
+
+ g.appendChild(path);
+ root.appendChild(g);
+
+ toolbarIcon.appendChild(root);
+
+ return toolbarIcon;
+ }
+}
+
+MetadataPlugin.prototype.pluginName = "metadata";
+MetadataPlugin.prototype.isPageTool = false;
+
+/**
+ * Make this plugin available in the global context
+ * as part of the 'Diva' namespace.
+ **/
+(function (global)
+{
+ global.Diva.MetadataPlugin = MetadataPlugin;
+})(window);
diff --git a/source/js/register-builtin-plugins.js b/source/js/register-builtin-plugins.js
deleted file mode 100644
index 5d1b6c14..00000000
--- a/source/js/register-builtin-plugins.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var diva = require('./diva-global');
-
-diva.registerPlugin(require('./plugins/autoscroll'));
-diva.registerPlugin(require('./plugins/canvas'));
-diva.registerPlugin(require('./plugins/download'));
-diva.registerPlugin(require('./plugins/highlight'));
-diva.registerPlugin(require('./plugins/iiif-highlight'));
-diva.registerPlugin(require('./plugins/iiif-metadata'));
diff --git a/source/js/renderer.js b/source/js/renderer.js
index 1a74b209..ee570c5f 100644
--- a/source/js/renderer.js
+++ b/source/js/renderer.js
@@ -1,614 +1,579 @@
-'use strict';
+const debug = require('debug')('diva:Renderer');
+const debugPaints = require('debug')('diva:Renderer:paints');
-var debug = require('debug')('diva:Renderer');
-var debugPaints = require('debug')('diva:Renderer:paints');
+import { elt, setAttributes } from './utils/elt';
+import CompositeImage from './composite-image';
+import DocumentLayout from './document-layout';
+import ImageCache from './image-cache';
+import ImageRequestHandler from './image-request-handler';
+import InterpolateAnimation from './interpolate-animation';
-var elt = require('./utils/elt');
+const REQUEST_DEBOUNCE_INTERVAL = 250;
-var CompositeImage = require('./composite-image');
-var DocumentLayout = require('./document-layout');
-var ImageCache = require('./image-cache');
-var ImageRequestHandler = require('./image-request-handler');
-var InterpolateAnimation = require('./interpolate-animation');
-
-var REQUEST_DEBOUNCE_INTERVAL = 250;
-
-
-module.exports = Renderer;
-
-function Renderer(options, hooks)
+export default class Renderer
{
- this._viewport = options.viewport;
- this._outerElement = options.outerElement;
- this._documentElement = options.innerElement;
-
- this._hooks = hooks || {};
+ constructor (options, hooks)
+ {
+ this._viewport = options.viewport;
+ this._outerElement = options.outerElement;
+ this._documentElement = options.innerElement;
- this._canvas = elt('canvas', { class: 'diva-viewer-canvas', tabindex: '1' });
- this._ctx = this._canvas.getContext('2d');
+ this._hooks = hooks || {};
- this.layout = null;
+ this._canvas = elt('canvas', { class: 'diva-viewer-canvas' });
+ this._ctx = this._canvas.getContext('2d');
- this._sourceResolver = null;
- this._renderedPages = null;
- this._config = null;
- this._zoomLevel = null;
- this._compositeImages = null;
- this._renderedTiles = null;
- this._animation = null;
+ this.layout = null;
- // FIXME(wabain): What level should this be maintained at?
- // Diva global?
- this._cache = new ImageCache();
- this._pendingRequests = {};
-}
+ this._sourceResolver = null;
+ this._renderedPages = null;
+ this._config = null;
+ this._zoomLevel = null;
+ this._compositeImages = null;
+ this._renderedTiles = null;
+ this._animation = null;
-Renderer.getCompatibilityErrors = function ()
-{
- if (typeof HTMLCanvasElement !== 'undefined')
- return null;
-
- return [
- 'Your browser lacks support for the ', elt('pre', 'canvas'),
- ' element. Please upgrade your browser.'
- ];
-};
-
-/*
-* Method supplied by Joseph Jezerinac, https://github.com/jezerinac
-*
-* https://github.com/DDMAL/diva.js/pull/370
-*
-* Given a pair of x,y co-ordinates, translate that to a position on a rendered
-* page. Returns an object containing the page index, a percentage of the w/h of
-* the image, and the absolute value of the hit point on the image, e.g., a click in
-* the top left corner of the image would return 0,0.
-*
-**/
-Renderer.prototype.getPageHit = function (clientX, clientY)
-{
- var bounds = this._outerElement.getBoundingClientRect();
- if (clientX < bounds.left || clientY < bounds.top ||
- clientX > bounds.left + bounds.width || clientY > bounds.top + bounds.height)
- {
- return null;
+ // FIXME(wabain): What level should this be maintained at?
+ // Diva global?
+ this._cache = new ImageCache();
+ this._pendingRequests = {};
}
- clientX -= bounds.left;
- clientY -= bounds.top;
-
- var numRenderedPages = this._renderedPages.length;
-
- for (var i = 0; i < numRenderedPages; i++)
+ static getCompatibilityErrors ()
{
- var pageIndex = this._renderedPages[i];
- var pageInfo = this.layout.getPageInfo(pageIndex);
- var pageOffset = this._getImageOffset(pageIndex);
-
- var viewportPaddingX = Math.max(0, (this._viewport.width - this.layout.dimensions.width) / 2);
- var viewportPaddingY = Math.max(0, (this._viewport.height - this.layout.dimensions.height) / 2);
-
- var viewportOffsetX = pageOffset.left - this._viewport.left + viewportPaddingX;
- var viewportOffsetY = pageOffset.top - this._viewport.top + viewportPaddingY;
-
- var destXOffset = viewportOffsetX < 0 ? -viewportOffsetX : 0;
- var destYOffset = viewportOffsetY < 0 ? -viewportOffsetY : 0;
+ if (typeof HTMLCanvasElement !== 'undefined')
+ {
+ return null;
+ }
- var canvasX = Math.max(0, viewportOffsetX);
- var canvasY = Math.max(0, viewportOffsetY);
+ return [
+ 'Your browser lacks support for the ', elt('pre', 'canvas'),
+ ' element. Please upgrade your browser.'
+ ];
+ }
- var destWidth = pageInfo.dimensions.width - destXOffset;
- var destHeight = pageInfo.dimensions.height - destYOffset;
+ load (config, viewportPosition, sourceResolver)
+ {
+ this._clearAnimation();
- if (clientX >= canvasX && clientX <= canvasX + destWidth && clientY >= canvasY && clientY <= canvasY + destHeight)
+ if (this._hooks.onViewWillLoad)
{
- var xhp = ((clientX + destXOffset) - canvasX);
- var yhp = ((clientY + destYOffset) - canvasY);
- /* To get the percentage x and y you need to adjust the by the scroll offset and the canvas position
- Also returns the absolute x and y at a given zoom level; these can be adjusted by clients later
- using the translateFromMaxZoomLevel / translateToMaxZoomLevel methods.
- */
- return {
- pg: pageIndex,
- pctx: xhp / pageInfo.dimensions.width,
- pcty: yhp / pageInfo.dimensions.height,
- x: xhp,
- y: yhp
- };
+ this._hooks.onViewWillLoad();
}
- }
- return null;
-};
+ this._sourceResolver = sourceResolver;
+ this._config = config;
+ this._compositeImages = {};
+ this._setLayoutToZoomLevel(viewportPosition.zoomLevel);
-Renderer.prototype.load = function (config, viewportPosition, sourceResolver)
-{
- this._clearAnimation();
+ // FIXME(wabain): Remove this when there's more confidence the check shouldn't be needed
+ if (!this.layout.getPageInfo(viewportPosition.anchorPage))
+ {
+ throw new Error('invalid page: ' + viewportPosition.anchorPage);
+ }
- if (this._hooks.onViewWillLoad)
- this._hooks.onViewWillLoad();
+ if (this._canvas.width !== this._viewport.width || this._canvas.height !== this._viewport.height)
+ {
+ debug('Canvas dimension change: (%s, %s) -> (%s, %s)', this._canvas.width, this._canvas.height,
+ this._viewport.width, this._viewport.height);
- this._sourceResolver = sourceResolver;
- this._config = config;
- this._compositeImages = {};
- this._setLayoutToZoomLevel(viewportPosition.zoomLevel);
+ this._canvas.width = this._viewport.width;
+ this._canvas.height = this._viewport.height;
+ }
+ else
+ {
+ debug('Reload, no size change');
+ }
- // FIXME(wabain): Remove this when there's more confidence the check shouldn't be needed
- if (!this.layout.getPageInfo(viewportPosition.anchorPage))
- throw new Error('invalid page: ' + viewportPosition.anchorPage);
+ // FIXME: What hooks should be called here?
+ this.goto(viewportPosition.anchorPage, viewportPosition.verticalOffset, viewportPosition.horizontalOffset);
- if (this._canvas.width !== this._viewport.width || this._canvas.height !== this._viewport.height)
- {
- debug('Canvas dimension change: (%s, %s) -> (%s, %s)', this._canvas.width, this._canvas.height,
- this._viewport.width, this._viewport.height);
+ if (this._canvas.parentNode !== this._outerElement)
+ {
+ this._outerElement.insertBefore(this._canvas, this._outerElement.firstChild);
+ }
- this._canvas.width = this._viewport.width;
- this._canvas.height = this._viewport.height;
- } else {
- debug('Reload, no size change');
+ if (this._hooks.onViewDidLoad)
+ {
+ this._hooks.onViewDidLoad();
+ }
}
- // FIXME: What hooks should be called here?
- this.goto(viewportPosition.anchorPage, viewportPosition.verticalOffset, viewportPosition.horizontalOffset);
+ _setViewportPosition (viewportPosition)
+ {
+ if (viewportPosition.zoomLevel !== this._zoomLevel)
+ {
+ if (this._zoomLevel === null)
+ {
+ throw new TypeError('The current view is not zoomable');
+ }
+ else if (viewportPosition.zoomLevel === null)
+ {
+ throw new TypeError('The current view requires a zoom level');
+ }
- if (this._canvas.parentNode !== this._outerElement)
- this._outerElement.insertBefore(this._canvas, this._outerElement.firstChild);
+ this._setLayoutToZoomLevel(viewportPosition.zoomLevel);
+ }
- if (this._hooks.onViewDidLoad)
- this._hooks.onViewDidLoad();
-};
+ this._goto(viewportPosition.anchorPage, viewportPosition.verticalOffset, viewportPosition.horizontalOffset);
+ }
-Renderer.prototype._setViewportPosition = function (viewportPosition)
-{
- if (viewportPosition.zoomLevel !== this._zoomLevel)
+ _setLayoutToZoomLevel (zoomLevel)
{
- if (this._zoomLevel === null)
- throw new TypeError('The current view is not zoomable');
- else if (viewportPosition.zoomLevel === null)
- throw new TypeError('The current view requires a zoom level');
+ this.layout = new DocumentLayout(this._config, zoomLevel);
+ this._zoomLevel = zoomLevel;
- this._setLayoutToZoomLevel(viewportPosition.zoomLevel);
+ setAttributes(this._documentElement, {
+ style: {
+ height: this.layout.dimensions.height + 'px',
+ width: this.layout.dimensions.width + 'px'
+ }
+ });
+
+ this._viewport.setInnerDimensions(this.layout.dimensions);
}
- this._goto(viewportPosition.anchorPage, viewportPosition.verticalOffset, viewportPosition.horizontalOffset);
-};
+ adjust ()
+ {
+ this._clearAnimation();
-Renderer.prototype._setLayoutToZoomLevel = function (zoomLevel)
-{
- this.layout = new DocumentLayout(this._config, zoomLevel);
- this._zoomLevel = zoomLevel;
+ this._render();
- elt.setAttributes(this._documentElement, {
- style: {
- height: this.layout.dimensions.height + 'px',
- width: this.layout.dimensions.width + 'px'
+ if (this._hooks.onViewDidUpdate)
+ {
+ this._hooks.onViewDidUpdate(this._renderedPages.slice(), null);
}
- });
-
- this._viewport.setInnerDimensions(this.layout.dimensions);
-};
-
-Renderer.prototype.adjust = function (direction)
-{
- this._clearAnimation();
-
- this._render(direction);
+ }
- if (this._hooks.onViewDidUpdate)
+ _render ()
{
- this._hooks.onViewDidUpdate(this._renderedPages.slice(), null);
- }
-};
+ const newRenderedPages = [];
+ this.layout.pageGroups.forEach((group) =>
+ {
+ if (!this._viewport.intersectsRegion(group.region))
+ {
+ return;
+ }
+ const visiblePages = group.pages
+ .filter(function (page)
+ {
+ return this.isPageVisible(page.index);
+ }, this)
+ .map(page => page.index);
+ newRenderedPages.push.apply(newRenderedPages, visiblePages);
+ }, this);
-// FIXME(wabain): Remove the direction argument if it doesn't end up being needed.
-Renderer.prototype._render = function (direction) // jshint ignore:line
-{
- var newRenderedPages = [];
- this.layout.pageGroups.forEach(function (group)
- {
- if (!this._viewport.intersectsRegion(group.region))
- return;
+ this._ctx.clearRect(0, 0, this._canvas.width, this._canvas.height);
+ this._paintOutline(newRenderedPages);
- var visiblePages = group.pages
- .filter(function (page)
- {
- return this.isPageVisible(page.index);
- }, this)
- .map(function (page)
+ newRenderedPages.forEach((pageIndex) =>
+ {
+ if (!this._compositeImages[pageIndex])
{
- return page.index;
- });
+ const page = this.layout.getPageInfo(pageIndex);
+ const zoomLevels = this._sourceResolver.getAllZoomLevelsForPage(page);
+ const composite = new CompositeImage(zoomLevels);
+ composite.updateFromCache(this._cache);
+ this._compositeImages[pageIndex] = composite;
+ }
+ }, this);
- newRenderedPages.push.apply(newRenderedPages, visiblePages);
- }, this);
+ this._initiateTileRequests(newRenderedPages);
- this._ctx.clearRect(0, 0, this._canvas.width, this._canvas.height);
- this._paintOutline(newRenderedPages);
+ const changes = findChanges(this._renderedPages || [], newRenderedPages);
- newRenderedPages.forEach(function (pageIndex)
- {
- if (!this._compositeImages[pageIndex])
+ changes.removed.forEach((pageIndex) =>
{
- var page = this.layout.getPageInfo(pageIndex);
- var zoomLevels = this._sourceResolver.getAllZoomLevelsForPage(page);
- var composite = new CompositeImage(zoomLevels);
- composite.updateFromCache(this._cache);
- this._compositeImages[pageIndex] = composite;
- }
- }, this);
+ delete this._compositeImages[pageIndex];
+ }, this);
- this._initiateTileRequests(newRenderedPages);
+ this._renderedPages = newRenderedPages;
+ this._paint();
- var changes = findChanges(this._renderedPages || [], newRenderedPages);
+ if (this._hooks.onPageWillLoad)
+ {
+ changes.added.forEach((pageIndex) =>
+ {
+ this._hooks.onPageWillLoad(pageIndex);
+ }, this);
+ }
+ }
- changes.removed.forEach(function (pageIndex)
+ _paint ()
{
- delete this._compositeImages[pageIndex];
- }, this);
+ debug('Repainting');
- this._renderedPages = newRenderedPages;
- this._paint();
+ const renderedTiles = [];
- if (this._hooks.onPageWillLoad)
- {
- changes.added.forEach(function (pageIndex)
+ this._renderedPages.forEach(function (pageIndex)
{
- this._hooks.onPageWillLoad(pageIndex);
+ this._compositeImages[pageIndex].getTiles(this._zoomLevel).forEach((source) =>
+ {
+ const scaled = getScaledTileRecord(source, this._zoomLevel);
+
+ if (this._isTileVisible(pageIndex, scaled))
+ {
+ renderedTiles.push(source.url);
+ this._drawTile(pageIndex, scaled, this._cache.get(source.url));
+ }
+ }, this);
}, this);
- }
-};
-Renderer.prototype._paint = function ()
-{
- debug('Repainting');
+ const cache = this._cache;
- var renderedTiles = [];
+ const changes = findChanges(this._renderedTiles || [], renderedTiles);
- this._renderedPages.forEach(function (pageIndex)
- {
- this._compositeImages[pageIndex].getTiles(this._zoomLevel).forEach(function (source)
+ changes.added.forEach(url =>
{
- var scaled = getScaledTileRecord(source, this._zoomLevel);
+ cache.acquire(url);
+ });
- if (this._isTileVisible(pageIndex, scaled))
- {
- renderedTiles.push(source.url);
- this._drawTile(pageIndex, scaled, this._cache.get(source.url));
- }
- }, this);
- }, this);
+ changes.removed.forEach(url =>
+ {
+ cache.release(url);
+ });
- var cache = this._cache;
+ if (changes.removed)
+ {
+ // FIXME: Should only need to update the composite images
+ // for which tiles were removed
+ this._renderedPages.forEach((pageIndex) =>
+ {
+ this._compositeImages[pageIndex].updateFromCache(this._cache);
+ }, this);
+ }
- var changes = findChanges(this._renderedTiles || [], renderedTiles);
+ this._renderedTiles = renderedTiles;
+ }
- changes.added.forEach(function (url)
+ // Paint a page outline while the tiles are loading.
+ _paintOutline (pages)
{
- cache.acquire(url);
- });
+ pages.forEach(function (pageIndex)
+ {
+ const pageInfo = this.layout.getPageInfo(pageIndex);
+ const pageOffset = this._getImageOffset(pageIndex);
- changes.removed.forEach(function (url)
- {
- cache.release(url);
- });
+ // Ensure the document is drawn to the center of the viewport
+ const viewportPaddingX = Math.max(0, (this._viewport.width - this.layout.dimensions.width) / 2);
+ const viewportPaddingY = Math.max(0, (this._viewport.height - this.layout.dimensions.height) / 2);
- if (changes.removed)
- {
- // FIXME: Should only need to update the composite images
- // for which tiles were removed
- this._renderedPages.forEach(function (pageIndex)
- {
- this._compositeImages[pageIndex].updateFromCache(this._cache);
- }, this);
- }
+ const viewportOffsetX = pageOffset.left - this._viewport.left + viewportPaddingX;
+ const viewportOffsetY = pageOffset.top - this._viewport.top + viewportPaddingY;
- this._renderedTiles = renderedTiles;
-};
+ const destXOffset = viewportOffsetX < 0 ? -viewportOffsetX : 0;
+ const destYOffset = viewportOffsetY < 0 ? -viewportOffsetY : 0;
-// Paint a page outline while the tiles are loading.
-Renderer.prototype._paintOutline = function (pages)
-{
- pages.forEach(function (pageIndex)
- {
- var pageInfo = this.layout.getPageInfo(pageIndex);
- var pageOffset = this._getImageOffset(pageIndex);
+ const canvasX = Math.max(0, viewportOffsetX);
+ const canvasY = Math.max(0, viewportOffsetY);
- // Ensure the document is drawn to the center of the viewport
- var viewportPaddingX = Math.max(0, (this._viewport.width - this.layout.dimensions.width) / 2);
- var viewportPaddingY = Math.max(0, (this._viewport.height - this.layout.dimensions.height) / 2);
-
- var viewportOffsetX = pageOffset.left - this._viewport.left + viewportPaddingX;
- var viewportOffsetY = pageOffset.top - this._viewport.top + viewportPaddingY;
-
- var destXOffset = viewportOffsetX < 0 ? -viewportOffsetX : 0;
- var destYOffset = viewportOffsetY < 0 ? -viewportOffsetY : 0;
-
- var canvasX = Math.max(0, viewportOffsetX);
- var canvasY = Math.max(0, viewportOffsetY);
-
- var destWidth = pageInfo.dimensions.width - destXOffset;
- var destHeight = pageInfo.dimensions.height - destYOffset;
-
- this._ctx.strokeStyle = '#AAA';
- // In order to get a 1px wide line using strokes, we need to start at a 'half pixel'
- this._ctx.strokeRect(canvasX + 0.5, canvasY + 0.5, destWidth, destHeight);
- }, this);
-};
-
-// This method should be sent all visible pages at once because it will initiate
-// all image requests and cancel any remaining image requests. In the case that
-// a request is ongoing and the tile is still visible in the viewport, the old request
-// is kept active instead of restarting it. The image requests are given a timeout
-// before loading in order to debounce them and have a small reaction time
-// to cancel them and avoid useless requests.
-Renderer.prototype._initiateTileRequests = function(pages)
-{
- // Only requests in this object are kept alive, since all others are not visible in the viewport
- var newPendingRequests = {};
+ const destWidth = pageInfo.dimensions.width - destXOffset;
+ const destHeight = pageInfo.dimensions.height - destYOffset;
- // Used later as a closure to initiate the image requests with the right source and pageIndex
- var initiateRequest = function (source, pageIndex)
+ this._ctx.strokeStyle = '#AAA';
+ // In order to get a 1px wide line using strokes, we need to start at a 'half pixel'
+ this._ctx.strokeRect(canvasX + 0.5, canvasY + 0.5, destWidth, destHeight);
+ }, this);
+ }
+
+ // This method should be sent all visible pages at once because it will initiate
+ // all image requests and cancel any remaining image requests. In the case that
+ // a request is ongoing and the tile is still visible in the viewport, the old request
+ // is kept active instead of restarting it. The image requests are given a timeout
+ // before loading in order to debounce them and have a small reaction time
+ // to cancel them and avoid useless requests.
+ _initiateTileRequests (pages)
{
- var composite = this._compositeImages[pageIndex];
+ // Only requests in this object are kept alive, since all others are not visible in the viewport
+ const newPendingRequests = {};
- newPendingRequests[source.url] = new ImageRequestHandler({
- url: source.url,
- timeoutTime: REQUEST_DEBOUNCE_INTERVAL,
- load: function (img)
- {
- delete this._pendingRequests[source.url];
- this._cache.put(source.url, img);
+ // Used later as a closure to initiate the image requests with the right source and pageIndex
+ const initiateRequest = (source, pageIndex) =>
+ {
+ const composite = this._compositeImages[pageIndex];
- // Awkward way to check for updates
- if (composite === this._compositeImages[pageIndex])
+ newPendingRequests[source.url] = new ImageRequestHandler({
+ url: source.url,
+ timeoutTime: REQUEST_DEBOUNCE_INTERVAL,
+ load: img =>
{
- composite.updateWithLoadedUrls([source.url]);
-
- if (this._isTileForSourceVisible(pageIndex, source))
- this._paint();
+ delete this._pendingRequests[source.url];
+ this._cache.put(source.url, img);
+
+ // Awkward way to check for updates
+ if (composite === this._compositeImages[pageIndex])
+ {
+ composite.updateWithLoadedUrls([source.url]);
+
+ if (this._isTileForSourceVisible(pageIndex, source))
+ {
+ this._paint();
+ }
+ else
+ {
+ debugPaints('Page %s, tile %s no longer visible on image load', pageIndex, source.url);
+ }
+ }
else
- debugPaints('Page %s, tile %s no longer visible on image load', pageIndex, source.url);
+ {
+ if (this._isTileForSourceVisible(pageIndex, source))
+ this._paint();
+ else
+ debugPaints('Page %s, tile %s no longer visible on image load', pageIndex, source.url);
+ }
+ },
+ error: () =>
+ {
+ // TODO: Could make a limited number of retries, etc.
+ delete this._pendingRequests[source.url];
}
- }.bind(this),
- error: function ()
- {
- // TODO: Could make a limited number of retries, etc.
- delete this._pendingRequests[source.url];
- }.bind(this)
- });
- }.bind(this);
-
- for (var i = 0; i < pages.length; i++)
- {
- var pageIndex = pages[i];
- var tiles = this._sourceResolver.getBestZoomLevelForPage(this.layout.getPageInfo(pageIndex)).tiles;
+ });
+ };
- for (var j = 0; j < tiles.length; j++)
+ for (let i = 0; i < pages.length; i++)
{
- var source = tiles[j];
- if (this._cache.has(source.url) || !this._isTileForSourceVisible(pageIndex, source))
- continue;
+ const pageIndex = pages[i];
+ const tiles = this._sourceResolver.getBestZoomLevelForPage(this.layout.getPageInfo(pageIndex)).tiles;
- // Don't create a new request if the tile is already being loaded
- if (this._pendingRequests[source.url])
+ for (let j = 0; j < tiles.length; j++)
{
- newPendingRequests[source.url] = this._pendingRequests[source.url];
- delete this._pendingRequests[source.url];
- continue;
+ const source = tiles[j];
+ if (this._cache.has(source.url) || !this._isTileForSourceVisible(pageIndex, source))
+ {
+ continue;
+ }
+
+ // Don't create a new request if the tile is already being loaded
+ if (this._pendingRequests[source.url])
+ {
+ newPendingRequests[source.url] = this._pendingRequests[source.url];
+ delete this._pendingRequests[source.url];
+ continue;
+ }
+
+ // Use a closure since the load and error methods are going to be called later and
+ // we need to keep the right reference to the source and the page index
+ initiateRequest(source, pageIndex);
}
+ }
- // Use a closure since the load and error methods are going to be called later and
- // we need to keep the right reference to the source and the page index
- initiateRequest(source, pageIndex);
+ for (const url in this._pendingRequests)
+ {
+ this._pendingRequests[url].abort();
}
+ this._pendingRequests = newPendingRequests;
}
- for (var url in this._pendingRequests)
- this._pendingRequests[url].abort();
- this._pendingRequests = newPendingRequests;
-};
-
-Renderer.prototype._drawTile = function (pageIndex, scaledTile, img)
-{
- var tileOffset = this._getTileToDocumentOffset(pageIndex, scaledTile);
+ _drawTile (pageIndex, scaledTile, img)
+ {
+ const tileOffset = this._getTileToDocumentOffset(pageIndex, scaledTile);
- // Ensure the document is drawn to the center of the viewport
- var viewportPaddingX = Math.max(0, (this._viewport.width - this.layout.dimensions.width) / 2);
- var viewportPaddingY = Math.max(0, (this._viewport.height - this.layout.dimensions.height) / 2);
+ // Ensure the document is drawn to the center of the viewport
+ const viewportPaddingX = Math.max(0, (this._viewport.width - this.layout.dimensions.width) / 2);
+ const viewportPaddingY = Math.max(0, (this._viewport.height - this.layout.dimensions.height) / 2);
- var viewportOffsetX = tileOffset.left - this._viewport.left + viewportPaddingX;
- var viewportOffsetY = tileOffset.top - this._viewport.top + viewportPaddingY;
+ const viewportOffsetX = tileOffset.left - this._viewport.left + viewportPaddingX;
+ const viewportOffsetY = tileOffset.top - this._viewport.top + viewportPaddingY;
- var destXOffset = viewportOffsetX < 0 ? -viewportOffsetX : 0;
- var destYOffset = viewportOffsetY < 0 ? -viewportOffsetY : 0;
+ const destXOffset = viewportOffsetX < 0 ? -viewportOffsetX : 0;
+ const destYOffset = viewportOffsetY < 0 ? -viewportOffsetY : 0;
- var sourceXOffset = destXOffset / scaledTile.scaleRatio;
- var sourceYOffset = destYOffset / scaledTile.scaleRatio;
+ const sourceXOffset = destXOffset / scaledTile.scaleRatio;
+ const sourceYOffset = destYOffset / scaledTile.scaleRatio;
- var canvasX = Math.max(0, viewportOffsetX);
- var canvasY = Math.max(0, viewportOffsetY);
+ const canvasX = Math.max(0, viewportOffsetX);
+ const canvasY = Math.max(0, viewportOffsetY);
- // Ensure that the specified dimensions are no greater than the actual
- // size of the image. Safari won't display the tile if they are.
- var destWidth = Math.min(scaledTile.dimensions.width, img.width * scaledTile.scaleRatio) - destXOffset;
- var destHeight = Math.min(scaledTile.dimensions.height, img.height * scaledTile.scaleRatio) - destYOffset;
+ // Ensure that the specified dimensions are no greater than the actual
+ // size of the image. Safari won't display the tile if they are.
+ const destWidth = Math.min(scaledTile.dimensions.width, img.width * scaledTile.scaleRatio) - destXOffset;
+ const destHeight = Math.min(scaledTile.dimensions.height, img.height * scaledTile.scaleRatio) - destYOffset;
- destWidth = Math.max(1, destWidth);
- destHeight = Math.max(1, destHeight);
+ const sourceWidth = destWidth / scaledTile.scaleRatio;
+ const sourceHeight = destHeight / scaledTile.scaleRatio;
- var sourceWidth = Math.abs(destWidth / scaledTile.scaleRatio);
- var sourceHeight = Math.abs(destHeight / scaledTile.scaleRatio);
+ if (debugPaints.enabled)
+ {
+ debugPaints('Drawing page %s, tile %sx (%s, %s) from %s, %s to viewport at %s, %s, scale %s%%',
+ pageIndex,
+ scaledTile.sourceZoomLevel, scaledTile.row, scaledTile.col,
+ sourceXOffset, sourceYOffset,
+ canvasX, canvasY,
+ Math.round(scaledTile.scaleRatio * 100));
+ }
- if (debugPaints.enabled)
- {
- debugPaints('Drawing page %s, tile %sx (%s, %s) from %s, %s to viewport at %s, %s, scale %s%%',
- pageIndex,
- scaledTile.sourceZoomLevel, scaledTile.row, scaledTile.col,
+ this._ctx.drawImage(
+ img,
sourceXOffset, sourceYOffset,
+ sourceWidth, sourceHeight,
canvasX, canvasY,
- Math.round(scaledTile.scaleRatio * 100));
+ destWidth, destHeight);
}
- this._ctx.drawImage(
- img,
- sourceXOffset, sourceYOffset,
- sourceWidth, sourceHeight,
- canvasX, canvasY,
- destWidth, destHeight);
-};
-
-Renderer.prototype._isTileForSourceVisible = function (pageIndex, tileSource)
-{
- return this._isTileVisible(pageIndex, getScaledTileRecord(tileSource, this._zoomLevel));
-};
+ _isTileForSourceVisible (pageIndex, tileSource)
+ {
+ return this._isTileVisible(pageIndex, getScaledTileRecord(tileSource, this._zoomLevel));
+ }
-Renderer.prototype._isTileVisible = function (pageIndex, scaledTile)
-{
- var tileOffset = this._getTileToDocumentOffset(pageIndex, scaledTile);
-
- // FIXME(wabain): This check is insufficient during a zoom transition
- return this._viewport.intersectsRegion({
- top: tileOffset.top,
- bottom: tileOffset.top + scaledTile.dimensions.height,
- left: tileOffset.left,
- right: tileOffset.left + scaledTile.dimensions.width
- });
-};
-
-Renderer.prototype._getTileToDocumentOffset = function (pageIndex, scaledTile)
-{
- var imageOffset = this._getImageOffset(pageIndex);
+ _isTileVisible (pageIndex, scaledTile)
+ {
+ const tileOffset = this._getTileToDocumentOffset(pageIndex, scaledTile);
+
+ // FIXME(wabain): This check is insufficient during a zoom transition
+ return this._viewport.intersectsRegion({
+ top: tileOffset.top,
+ bottom: tileOffset.top + scaledTile.dimensions.height,
+ left: tileOffset.left,
+ right: tileOffset.left + scaledTile.dimensions.width
+ });
+ }
- return {
- top: imageOffset.top + scaledTile.offset.top,
- left: imageOffset.left + scaledTile.offset.left
- };
-};
+ _getTileToDocumentOffset (pageIndex, scaledTile)
+ {
+ const imageOffset = this._getImageOffset(pageIndex);
-Renderer.prototype._getImageOffset = function (pageIndex)
-{
- return this.layout.getPageOffset(pageIndex, {excludePadding: true});
-};
+ return {
+ top: imageOffset.top + scaledTile.offset.top,
+ left: imageOffset.left + scaledTile.offset.left
+ };
+ }
-// TODO: Update signature
-Renderer.prototype.goto = function (pageIndex, verticalOffset, horizontalOffset)
-{
- this._clearAnimation();
- this._goto(pageIndex, verticalOffset, horizontalOffset);
- if (this._hooks.onViewDidUpdate)
+ _getImageOffset (pageIndex)
{
- this._hooks.onViewDidUpdate(this._renderedPages.slice(), pageIndex);
+ return this.layout.getPageOffset(pageIndex, {includePadding: true});
}
-};
-Renderer.prototype._goto = function (pageIndex, verticalOffset, horizontalOffset)
-{
- // FIXME(wabain): Move this logic to the viewer
- var pageOffset = this.layout.getPageOffset(pageIndex);
-
- var desiredVerticalCenter = pageOffset.top + verticalOffset;
- var top = desiredVerticalCenter - parseInt(this._viewport.height / 2, 10);
+ // TODO: Update signature
+ goto (pageIndex, verticalOffset, horizontalOffset)
+ {
+ this._clearAnimation();
+ this._goto(pageIndex, verticalOffset, horizontalOffset);
+ if (this._hooks.onViewDidUpdate)
+ {
+ this._hooks.onViewDidUpdate(this._renderedPages.slice(), pageIndex);
+ }
+ }
- var desiredHorizontalCenter = pageOffset.left + horizontalOffset;
- var left = desiredHorizontalCenter - parseInt(this._viewport.width / 2, 10);
+ _goto (pageIndex, verticalOffset, horizontalOffset)
+ {
+ // FIXME(wabain): Move this logic to the viewer
+ const pageOffset = this.layout.getPageOffset(pageIndex);
- this._viewport.top = top;
- this._viewport.left = left;
+ const desiredVerticalCenter = pageOffset.top + verticalOffset;
+ const top = desiredVerticalCenter - parseInt(this._viewport.height / 2, 10);
- this._render(0);
-};
+ const desiredHorizontalCenter = pageOffset.left + horizontalOffset;
+ const left = desiredHorizontalCenter - parseInt(this._viewport.width / 2, 10);
-Renderer.prototype.transitionViewportPosition = function (options)
-{
- this._clearAnimation();
+ this._viewport.top = top;
+ this._viewport.left = left;
- var getPosition = options.getPosition;
- var self = this;
+ this._render();
+ }
- var onViewDidTransition = this._hooks.onViewDidTransition;
+ transitionViewportPosition (options)
+ {
+ this._clearAnimation();
- this._animation = InterpolateAnimation.animate({
- duration: options.duration,
- parameters: options.parameters,
- onUpdate: function (values)
- {
- // TODO: Do image preloading, work with that
- self._setViewportPosition(getPosition(values));
+ const getPosition = options.getPosition;
+ const onViewDidTransition = this._hooks.onViewDidTransition;
- if (onViewDidTransition)
- onViewDidTransition();
- },
- onEnd: function (info)
- {
- if (options.onEnd)
- options.onEnd(info);
+ this._animation = InterpolateAnimation.animate({
+ duration: options.duration,
+ parameters: options.parameters,
+ onUpdate: (values) =>
+ {
+ // TODO: Do image preloading, work with that
+ this._setViewportPosition(getPosition(values));
+ this._hooks.onZoomLevelWillChange(values.zoomLevel);
- if (self._hooks.onViewDidUpdate && !info.interrupted)
+ if (onViewDidTransition)
+ {
+ onViewDidTransition();
+ }
+ },
+ onEnd: (info) =>
{
- self._hooks.onViewDidUpdate(self._renderedPages.slice(), null);
+ if (options.onEnd)
+ {
+ options.onEnd(info);
+ }
+
+ if (this._hooks.onViewDidUpdate && !info.interrupted)
+ {
+ this._hooks.onViewDidUpdate(this._renderedPages.slice(), null);
+ }
}
- }
- });
-};
+ });
+ }
-Renderer.prototype._clearAnimation = function ()
-{
- if (this._animation)
+ _clearAnimation ()
{
- this._animation.cancel();
- this._animation = null;
+ if (this._animation)
+ {
+ this._animation.cancel();
+ this._animation = null;
+ }
}
-};
-Renderer.prototype.preload = function ()
-{
- // TODO
-};
-
-Renderer.prototype.isPageVisible = function (pageIndex)
-{
- if (!this.layout)
- return false;
+ preload ()
+ {
+ // TODO
+ }
- var page = this.layout.getPageInfo(pageIndex);
+ isPageVisible (pageIndex)
+ {
+ if (!this.layout)
+ {
+ return false;
+ }
- if (!page)
- return false;
+ const page = this.layout.getPageInfo(pageIndex);
- return this._viewport.intersectsRegion(this.layout.getPageRegion(pageIndex));
-};
+ if (!page)
+ {
+ return false;
+ }
-Renderer.prototype.getRenderedPages = function ()
-{
- return this._renderedPages.slice();
-};
+ return this._viewport.intersectsRegion(this.layout.getPageRegion(pageIndex));
+ }
-Renderer.prototype.destroy = function ()
-{
- this._clearAnimation();
+ getRenderedPages ()
+ {
+ return this._renderedPages.slice();
+ }
- // FIXME(wabain): I don't know if we should actually do this
- Object.keys(this._pendingRequests).forEach(function (req)
+ destroy ()
{
- var handler = this._pendingRequests[req];
- delete this._pendingRequests[req];
+ this._clearAnimation();
+
+ // FIXME(wabain): I don't know if we should actually do this
+ Object.keys(this._pendingRequests).forEach((req) =>
+ {
+ const handler = this._pendingRequests[req];
+ delete this._pendingRequests[req];
- handler.abort();
- }, this);
+ handler.abort();
+ }, this);
- this._canvas.parentNode.removeChild(this._canvas);
-};
+ this._canvas.parentNode.removeChild(this._canvas);
+ }
+}
-function getScaledTileRecord(source, scaleFactor)
+function getScaledTileRecord (source, scaleFactor)
{
- var scaleRatio;
+ let scaleRatio;
if (scaleFactor === null)
+ {
scaleRatio = 1;
+ }
else
+ {
scaleRatio = Math.pow(2, scaleFactor - source.zoomLevel);
+ }
return {
sourceZoomLevel: source.zoomLevel,
@@ -627,7 +592,7 @@ function getScaledTileRecord(source, scaleFactor)
};
}
-function findChanges(oldArray, newArray)
+function findChanges (oldArray, newArray)
{
if (oldArray === newArray)
{
@@ -637,15 +602,9 @@ function findChanges(oldArray, newArray)
};
}
- var removed = oldArray.filter(function (oldEntry)
- {
- return newArray.indexOf(oldEntry) === -1;
- });
+ const removed = oldArray.filter(oldEntry => newArray.indexOf(oldEntry) === -1);
- var added = newArray.filter(function (newEntry)
- {
- return oldArray.indexOf(newEntry) === -1;
- });
+ const added = newArray.filter(newEntry => oldArray.indexOf(newEntry) === -1);
return {
added: added,
diff --git a/source/js/settings-view.js b/source/js/settings-view.js
index 1b4c032b..5bef48f7 100644
--- a/source/js/settings-view.js
+++ b/source/js/settings-view.js
@@ -1,10 +1,9 @@
-module.exports = createSettingsView;
-function createSettingsView(sources)
+export default function createSettingsView(sources)
{
- var obj = {};
+ const obj = {};
- sources.forEach(function (source)
+ sources.forEach( (source) =>
{
registerMixin(obj, source);
});
@@ -14,14 +13,14 @@ function createSettingsView(sources)
function registerMixin(obj, mixin)
{
- Object.keys(mixin).forEach(function (key)
+ Object.keys(mixin).forEach( (key) =>
{
Object.defineProperty(obj, key, {
- get: function ()
+ get: () =>
{
return mixin[key];
},
- set: function ()
+ set: () =>
{
// TODO: Make everything strict mode so this isn't needed
throw new TypeError('Cannot set settings.' + key);
diff --git a/source/js/tile-coverage-map.js b/source/js/tile-coverage-map.js
new file mode 100644
index 00000000..c30b61fc
--- /dev/null
+++ b/source/js/tile-coverage-map.js
@@ -0,0 +1,25 @@
+export default class TileCoverageMap
+{
+ constructor (rows, cols)
+ {
+ this._rows = rows;
+ this._cols = cols;
+ this._map = new Array(rows).fill(null).map(() => new Array(cols).fill(false));
+ }
+
+ isLoaded (row, col)
+ {
+ // Return true for out of bounds tiles because they
+ // don't need to load. (Unfortunately this will also
+ // mask logical errors.)
+ if (row >= this._rows || col >= this._cols)
+ return true;
+
+ return this._map[row][col];
+ }
+
+ set(row, col, value)
+ {
+ this._map[row][col] = value;
+ }
+}
\ No newline at end of file
diff --git a/source/js/toolbar.js b/source/js/toolbar.js
index 5d498b9c..9ec342ab 100644
--- a/source/js/toolbar.js
+++ b/source/js/toolbar.js
@@ -1,373 +1,170 @@
-var $ = require('jquery');
+import diva from './diva-global';
+import { elt } from './utils/elt';
-var diva = require('./diva-global');
-var elt = require('./utils/elt');
-
-module.exports = createToolbar;
-
-function createToolbar(viewer)
+export default class Toolbar
{
- var settings = viewer.getSettings();
+ constructor (viewer)
+ {
+ this.viewer = viewer;
+ this.settings = viewer.settings;
+ }
- // FIXME(wabain): Temporarily copied from within Diva
- var elemAttrs = function (ident, base)
+ _elemAttrs (ident, base)
{
- var attrs = {
- id: settings.ID + ident,
+ const attrs = {
+ id: this.settings.ID + ident,
class: 'diva-' + ident
};
if (base)
- return $.extend(attrs, base);
+ return Object.assign(attrs, base);
else
return attrs;
- };
+ }
+
/** Convenience function to subscribe to a Diva event */
- var subscribe = function (event, callback)
+ _subscribe (event, callback)
{
- diva.Events.subscribe(event, callback, settings.ID);
- };
+ diva.Events.subscribe(event, callback, this.settings.ID);
+ }
- // Creates a toolbar button
- var createButtonElement = function(name, label, callback)
+
+ createButton (name, label, callback, icon)
{
- var button = elt('button', {
+ const button = elt('button', {
type: 'button',
- id: settings.ID + name,
+ id: this.settings.ID + name,
class: 'diva-' + name + ' diva-button',
title: label
});
+ if (icon)
+ button.appendChild(icon);
+
if (callback)
- button.addEventListener('click', callback, false);
+ button.addEventListener('click', callback);
return button;
- };
+ }
- // Higher-level function for creators of zoom and grid controls
- var getResolutionControlCreator = function (config)
+ createLabel (name, id, label, innerName, innerValue)
{
- return function ()
- {
- var controls;
-
- switch (settings[config.controllerSetting])
- {
- case 'slider':
- controls = config.createSlider();
- break;
-
- case 'buttons':
- controls = config.createButtons();
- break;
-
- default:
- // Don't display anything
- return null;
- }
-
- var wrapper = elt('span',
- controls,
- config.createLabel()
- );
-
- var updateWrapper = function ()
- {
- if (settings.inGrid === config.showInGrid)
- wrapper.style.display = 'inline';
- else
- wrapper.style.display = 'none';
- };
-
- subscribe('ViewDidSwitch', updateWrapper);
- subscribe('ObjectDidLoad', updateWrapper);
-
- // Set initial value
- updateWrapper();
-
- return wrapper;
- };
- };
-
- // Zoom controls
- var createZoomControls = getResolutionControlCreator({
- controllerSetting: 'enableZoomControls',
- showInGrid: false,
-
- createSlider: function ()
- {
- var elem = createSlider('zoom-slider', {
- step: 0.1,
- value: settings.zoomLevel,
- min: settings.minZoomLevel,
- max: settings.maxZoomLevel
- });
- var $elem = $(elem);
-
- $elem.on('input', function()
- {
- var floatValue = parseFloat(this.value);
- viewer.setZoomLevel(floatValue);
- });
-
- $elem.on('change', function ()
- {
- var floatValue = parseFloat(this.value);
- if (floatValue !== settings.zoomLevel)
- viewer.setZoomLevel(floatValue);
- });
+ return elt('div', { id: this.settings.ID + id, class: name + ' diva-label'},
+ [ label, elt('span', { id: this.settings.ID + innerName }, innerValue)
+ ]);
+ }
- var updateSlider = function ()
- {
- if (settings.zoomLevel !== $elem.val())
- $elem.val(settings.zoomLevel);
- };
-
- subscribe('ZoomLevelDidChange', updateSlider);
- subscribe('ViewerDidLoad', function ()
- {
- elt.setAttributes(elem, {
- min: settings.minZoomLevel,
- max: settings.maxZoomLevel
- });
-
- updateSlider();
- });
-
- return elem;
- },
-
- createButtons: function ()
- {
- return elt('span',
- createButtonElement('zoom-out-button', 'Zoom Out', function ()
- {
- viewer.setZoomLevel(settings.zoomLevel - 1);
- }),
- createButtonElement('zoom-in-button', 'Zoom In', function ()
- {
- viewer.setZoomLevel(settings.zoomLevel + 1);
- })
- );
- },
-
- createLabel: function ()
- {
- var elem = createLabel('diva-zoom-label', 'zoom-label', 'Zoom level: ', 'zoom-level', settings.zoomLevel);
- var textSpan = $(elem).find(settings.selector + 'zoom-level')[0];
-
- var updateText = function ()
- {
- textSpan.textContent = settings.zoomLevel.toFixed(2);
- };
-
- subscribe('ZoomLevelDidChange', updateText);
- subscribe('ViewerDidLoad', updateText);
-
- return elem;
- }
- });
-
- // Grid controls
- var createGridControls = getResolutionControlCreator({
- controllerSetting: 'enableGridControls',
- showInGrid: true,
-
- createSlider: function ()
+ createZoomButtons ()
+ {
+ let zoomOutIcon = this._createZoomOutIcon();
+ let zoomInIcon = this._createZoomInIcon();
+
+ let zoomButtons = [
+ this.createButton('zoom-out-button', 'Zoom Out', () => {
+ this.viewer.setZoomLevel(this.settings.zoomLevel - 1);
+ }, zoomOutIcon),
+ this.createButton('zoom-in-button', 'Zoom In', () => {
+ this.viewer.setZoomLevel(this.settings.zoomLevel + 1);
+ }, zoomInIcon),
+ this.createLabel('diva-zoom-label', 'zoom-label', 'Zoom level: ', 'zoom-level', this.settings.zoomLevel + 1)
+ ];
+
+ let zoomHandler = function ()
{
- var elem = createSlider('grid-slider', {
- value: settings.pagesPerRow,
- min: settings.minPagesPerRow,
- max: settings.maxPagesPerRow
- });
- var $elem = $(elem);
-
- $elem.on('input', function()
- {
- var intValue = parseInt(elem.value, 10);
- viewer.setGridPagesPerRow(intValue);
- });
-
- $elem.on('change', function ()
- {
- var intValue = parseInt(elem.value, 10);
- if (intValue !== settings.pagesPerRow)
- viewer.setGridPagesPerRow(intValue);
- });
-
- subscribe('GridRowNumberDidChange', function ()
- {
- // Update the position of the handle within the slider
- if (settings.pagesPerRow !== $elem.val())
- $elem.val(settings.pagesPerRow);
- });
+ let labelEl = document.getElementById(this.settings.ID + 'zoom-level');
+ labelEl.textContent = this.settings.zoomLevel + 1;
+ };
- return elem;
- },
+ this._subscribe('ZoomLevelDidChange', zoomHandler);
+ this._subscribe('ViewerDidLoad', zoomHandler);
- createButtons: function ()
- {
- return elt('span',
- createButtonElement('grid-out-button', 'Zoom Out', function ()
- {
- viewer.setGridPagesPerRow(settings.pagesPerRow - 1);
- }),
- createButtonElement('grid-in-button', 'Zoom In', function ()
- {
- viewer.setGridPagesPerRow(settings.pagesPerRow + 1);
- })
- );
- },
+ return elt('div', { id: this.settings.ID + "zoom-controls", style: "display: none"}, zoomButtons);
+ }
- createLabel: function ()
+ createGridControls ()
+ {
+ let gridMoreIcon = this._createGridMoreIcon();
+ let gridFewerIcon = this._createGridFewerIcon();
+
+ let gridButtons = [
+ this.createButton('grid-out-button', 'Fewer', () => {
+ this.viewer.setGridPagesPerRow(this.settings.pagesPerRow - 1);
+ }, gridFewerIcon),
+ this.createButton('grid-in-button', 'More', () => {
+ this.viewer.setGridPagesPerRow(this.settings.pagesPerRow + 1);
+ }, gridMoreIcon),
+ this.createLabel('diva-grid-label', 'grid-label', 'Pages per row: ', 'pages-per-row', this.settings.pagesPerRow)
+ ];
+
+ let gridChangeHandler = function ()
{
- var elem = createLabel('diva-grid-label', 'grid-label', 'Pages per row: ', 'pages-per-row', settings.pagesPerRow);
- var textSpan = $(elem).find(settings.selector + 'pages-per-row')[0];
+ let labelEl = document.getElementById(this.settings.ID + 'pages-per-row');
+ labelEl.textContent = this.settings.pagesPerRow;
+ };
- subscribe('GridRowNumberDidChange', function ()
- {
- textSpan.textContent = settings.pagesPerRow;
- });
+ this._subscribe('GridRowNumberDidChange', gridChangeHandler);
- return elem;
- }
- });
+ return elt('div', {id: this.settings.ID + "grid-controls", style: "display:none" }, gridButtons);
+ }
- var createViewMenu = function()
+ createPageLabel ()
{
- var viewOptionsList = elt('div', elemAttrs('view-options'));
-
- var changeViewButton = createButtonElement('view-icon', 'Change view', function ()
- {
- $(viewOptionsList).toggle();
- });
-
- $(document).mouseup(function (event)
- {
- var container = $(viewOptionsList);
-
- if (!container.is(event.target) && container.has(event.target).length === 0 && event.target.id !== settings.ID + 'view-icon')
- {
- container.hide();
- }
+ // Current page
+ const currentPage = elt('span', {
+ id: this.settings.ID + 'current-page'
});
- var selectView = function (view)
- {
- viewer.changeView(view);
-
- //hide view menu
- $(viewOptionsList).hide();
- };
-
- var updateViewMenu = function()
+ const updateCurrentPage = () =>
{
- var viewIconClasses = ' diva-view-icon diva-button';
-
- // display the icon of the mode we're currently in (?)
- if (settings.inGrid)
- {
- changeViewButton.className = 'diva-grid-icon' + viewIconClasses;
- }
- else if (settings.inBookLayout)
- {
- changeViewButton.className = 'diva-book-icon' + viewIconClasses;
- }
+ // get labels for index range
+ let indices = this.viewer.getCurrentPageIndices();
+ let startIndex = indices[0];
+ let endIndex = indices[indices.length - 1];
+ let startLabel = this.settings.manifest.pages[startIndex].l;
+ let endLabel = this.settings.manifest.pages[endIndex].l;
+
+ if (startIndex !== endIndex)
+ currentPage.textContent = startLabel + " - " + endLabel;
else
- {
- changeViewButton.className = 'diva-document-icon' + viewIconClasses;
- }
-
- var viewOptions = document.createDocumentFragment();
-
- // then display document, book, and grid buttons in that order, excluding the current view
- if (settings.inGrid || settings.inBookLayout)
- viewOptions.appendChild(createButtonElement('document-icon', 'Document View', selectView.bind(null, 'document')));
-
- if (settings.inGrid || !settings.inBookLayout)
- viewOptions.appendChild(createButtonElement('book-icon', 'Book View', selectView.bind(null, 'book')));
-
- if (!settings.inGrid)
- viewOptions.appendChild(createButtonElement('grid-icon', 'Grid View', selectView.bind(null, 'grid')));
-
- // remove old menu
- while (viewOptionsList.firstChild)
- {
- viewOptionsList.removeChild(viewOptionsList.firstChild);
- }
-
- // insert new menu
- viewOptionsList.appendChild(viewOptions);
+ currentPage.textContent = startLabel;
};
- subscribe('ViewDidSwitch', updateViewMenu);
- subscribe('ObjectDidLoad', updateViewMenu);
-
- return elt('div', elemAttrs('view-menu'),
- changeViewButton,
- viewOptionsList
- );
- };
-
- var createSlider = function(name, options)
- {
- return elt('input', options, {
- id: settings.ID + name,
- class: 'diva-' + name + ' diva-slider',
- type: 'range'
- });
- };
+ this._subscribe('VisiblePageDidChange', updateCurrentPage);
+ this._subscribe('ViewerDidLoad', updateCurrentPage);
+ this._subscribe('ViewDidSwitch', updateCurrentPage);
- var createLabel = function(name, id, label, innerName, innerValue)
- {
- return elt('div', {
- id: settings.ID + id,
- class: name + ' diva-label'
+ return elt('span', {
+ class: 'diva-page-label diva-label'
},
- [
- label,
- elt('span', {
- id: settings.ID + innerName
- }, innerValue)
- ]);
- };
-
- var createPageNavigationControls = function ()
- {
- // Go to page form
- var gotoForm = settings.enableGotoPage ? createGotoPageForm() : null;
-
- return elt('span', elemAttrs('page-nav'),
- createPageLabel(), // 'Page x of y' label
- gotoForm
+ currentPage
);
- };
+ }
- var createGotoPageForm = function ()
+ createGotoPageForm ()
{
- var gotoPageInput = elt('input', {
- id: settings.ID + 'goto-page-input',
+ const gotoPageInput = elt('input', {
+ id: this.settings.ID + 'goto-page-input',
class: 'diva-input diva-goto-page-input',
autocomplete: 'off',
type: 'text'
});
- var gotoPageSubmit = elt('input', {
- id: settings.ID + 'goto-page-submit',
+ const gotoPageSubmit = elt('input', {
+ id: this.settings.ID + 'goto-page-submit',
class: 'diva-button diva-button-text',
type: 'submit',
value: 'Go'
});
- var inputSuggestions = elt('div', {
- id: settings.ID + 'input-suggestions',
+ const inputSuggestions = elt('div', {
+ id: this.settings.ID + 'input-suggestions',
class: 'diva-input-suggestions'
}
);
- var gotoForm = elt('form', {
- id: settings.ID + 'goto-page',
+ const gotoForm = elt('form', {
+ id: this.settings.ID + 'goto-page',
class: 'diva-goto-form'
},
gotoPageInput,
@@ -375,21 +172,23 @@ function createToolbar(viewer)
inputSuggestions
);
- $(gotoForm).on('submit', function ()
+ gotoForm.addEventListener('submit', (e) =>
{
- var desiredPageLabel = gotoPageInput.value;
+ e.preventDefault();
+
+ const desiredPageLabel = gotoPageInput.value;
- if (settings.onGotoSubmit && typeof settings.onGotoSubmit === "function")
+ if (this.settings.onGotoSubmit && typeof this.settings.onGotoSubmit === "function")
{
- var pageIndex = settings.onGotoSubmit(desiredPageLabel);
- if (!viewer.gotoPageByIndex(pageIndex))
- alert("No page could be found with that label or page number");
+ const pageIndex = this.settings.onGotoSubmit(desiredPageLabel);
+ if (!this.viewer.gotoPageByIndex(pageIndex))
+ window.alert("No page could be found with that label or page number");
}
else // Default if no function is specified in the settings
{
- if (!viewer.gotoPageByLabel(desiredPageLabel))
- alert("No page could be found with that label or page number");
+ if (!this.viewer.gotoPageByLabel(desiredPageLabel))
+ window.alert("No page could be found with that label or page number");
}
// Hide the suggestions
@@ -399,306 +198,1009 @@ function createToolbar(viewer)
return false;
});
- $(gotoPageInput).on('input focus', function ()
+ ['input', 'focus'].forEach(event =>
{
- inputSuggestions.innerHTML = ''; // Remove all previous suggestions
+ gotoPageInput.addEventListener(event, () => {
+ inputSuggestions.innerHTML = ''; // Remove all previous suggestions
- var value = gotoPageInput.value;
- var numSuggestions = 0;
- if (settings.enableGotoSuggestions && value)
- {
- var pages = settings.manifest.pages;
- for (var i = 0, len = pages.length; i < len && numSuggestions < 10; i++)
+ const value = gotoPageInput.value;
+ let numSuggestions = 0;
+ if (this.settings.enableGotoSuggestions && value)
{
- if (pages[i].l.toLowerCase().indexOf(value.toLowerCase()) > -1)
+ const pages = this.settings.manifest.pages;
+ for (let i = 0, len = pages.length; i < len && numSuggestions < 10; i++)
{
- var newInputSuggestion = elt('div', {
- class: 'diva-input-suggestion'
- },
- pages[i].l
- );
-
- inputSuggestions.appendChild(newInputSuggestion);
-
- numSuggestions++;
+ if (pages[i].l.toLowerCase().indexOf(value.toLowerCase()) > -1)
+ {
+ const newInputSuggestion = elt('div', {
+ class: 'diva-input-suggestion'
+ },
+ pages[i].l
+ );
+
+ inputSuggestions.appendChild(newInputSuggestion);
+
+ numSuggestions++;
+ }
}
- }
- // Show label suggestions
- if (numSuggestions > 0)
- inputSuggestions.style.display = 'block';
- }
- else
- inputSuggestions.style.display = 'none';
+ // Show label suggestions
+ if (numSuggestions > 0)
+ inputSuggestions.style.display = 'block';
+ }
+ else
+ inputSuggestions.style.display = 'none';
+ });
});
- $(gotoPageInput).on('keydown', function (e)
- {
- var el;
+ gotoPageInput.addEventListener('keydown', e => {
+ let el;
if (e.keyCode === 13) // 'Enter' key
{
- var active = $('.active', inputSuggestions);
- if (active.length)
- gotoPageInput.value = active.text();
-
+ const active = document.getElementsByClassName('active')[0];
+ if (typeof active !== 'undefined')
+ gotoPageInput.value = active.innerText;
}
if (e.keyCode === 38) // Up arrow key
{
- el = $('.active', inputSuggestions);
- var prevEl = el.prev();
- if (prevEl.length)
+ el = document.getElementsByClassName('active')[0];
+ const prevEl = el ? el.previousSibling : undefined;
+ if (typeof prevEl !== 'undefined')
{
- el.removeClass('active');
- prevEl.addClass('active');
+ el.classList.remove('active');
+ if (prevEl !== null)
+ prevEl.classList.add('active');
}
else
{
- el.removeClass('active');
- $('.diva-input-suggestion:last', inputSuggestions).addClass('active');
+ let last = document.getElementsByClassName('diva-input-suggestion').length - 1;
+ document.getElementsByClassName('diva-input-suggestion')[last].classList.add('active');
}
}
else if (e.keyCode === 40) // Down arrow key
{
- el = $('.active', inputSuggestions);
- var nextEl = el.next();
- if (nextEl.length)
+ el = document.getElementsByClassName('active')[0];
+ const nextEl = el ? el.nextSibling : undefined;
+ if (typeof nextEl !== 'undefined')
{
- el.removeClass('active');
- nextEl.addClass('active');
+ el.classList.remove('active');
+ if (nextEl !== null)
+ nextEl.classList.add('active');
}
else
{
- el.removeClass('active');
- $('.diva-input-suggestion:first', inputSuggestions).addClass('active');
+ document.getElementsByClassName('diva-input-suggestion')[0].classList.add('active');
}
}
});
- $(inputSuggestions).on('mousedown', '.diva-input-suggestion', function()
+ onEvent(inputSuggestions, 'mousedown', '.diva-input-suggestion', function ()
{
gotoPageInput.value = this.textContent;
inputSuggestions.style.display = 'none';
- $(gotoPageInput).trigger('submit');
+
+ let submitEvent = new Event('submit');
+ gotoForm.dispatchEvent(submitEvent);
});
- $(gotoPageInput).on('blur', function ()
+ // javascript equivalent to jquery .on(event, selector, function)
+ function onEvent (elem, evt, sel, handler)
{
+ elem.addEventListener(evt, function (event)
+ {
+ var t = event.target;
+ while (t && t !== this)
+ {
+ if (t.matches(sel))
+ handler.call(t, event);
+ t = t.parentNode;
+ }
+ });
+ }
+
+ gotoPageInput.addEventListener('blur', () => {
// Hide label suggestions
inputSuggestions.style.display = 'none';
});
return gotoForm;
- };
+ }
- var createPageLabel = function()
+ createViewMenu ()
{
- // Current page
- var currentPage = elt('span', {
- id: settings.ID + 'current-page'
- });
+ const viewOptionsList = elt('div', this._elemAttrs('view-options'));
+ const gridViewIcon = this._createGridViewIcon();
+ const bookViewIcon = this._createBookViewIcon();
+ const pageViewIcon = this._createPageViewIcon();
- var updateCurrentPage = function ()
+ const viewOptionsToggle = () =>
{
- currentPage.textContent = viewer.getCurrentAliasedPageIndex();
+ viewOptionsList.style.display = viewOptionsList.style.display === "none" ? "block" : "none";
};
- subscribe('VisiblePageDidChange', updateCurrentPage);
- subscribe('ViewerDidLoad', updateCurrentPage);
+ const changeViewButton = this.createButton('view-icon', 'Change view', viewOptionsToggle);
- // Number of pages
- var numPages = elt('span', {
- id: settings.ID + 'num-pages'
- });
-
- var updateNumPages = function ()
+ const selectView = (view) =>
{
- numPages.textContent = settings.numPages;
- };
+ this.viewer.changeView(view);
- subscribe('NumberOfPagesDidChange', updateNumPages);
- subscribe('ObjectDidLoad', updateNumPages);
+ //hide view menu
+ viewOptionsList.style.display = "none";
+ };
- return elt('span', {
- class: 'diva-page-label diva-label'
- },
- 'Page ', currentPage, ' of ', numPages
- );
- };
+ const updateViewMenu = () =>
+ {
+ const viewIconClasses = ' diva-view-icon diva-button';
- var createToolbarButtonGroup = function ()
- {
- var buttons = [createViewMenu()];
- if (settings.enableLinkIcon)
- buttons.push(createLinkIcon());
+ // display the icon of the mode we're currently in (?)
+ if (this.settings.inGrid)
+ {
+ changeViewButton.appendChild(gridViewIcon);
+ changeViewButton.className = 'diva-grid-icon' + viewIconClasses;
+ }
+ else if (this.settings.inBookLayout)
+ {
+ changeViewButton.appendChild(bookViewIcon);
+ changeViewButton.className = 'diva-book-icon' + viewIconClasses;
+ }
+ else
+ {
+ changeViewButton.appendChild(pageViewIcon);
+ changeViewButton.className = 'diva-document-icon' + viewIconClasses;
+ }
- if (settings.enableNonPagedVisibilityIcon)
- buttons.push(createToggleNonPagedButton());
+ const viewOptions = document.createDocumentFragment();
- if (settings.enableFullscreen)
- buttons.push(createFullscreenButton());
+ // then display document, book, and grid buttons in that order, excluding the current view
+ if (this.settings.inGrid || this.settings.inBookLayout)
+ viewOptions.appendChild(this.createButton('document-icon', 'Document View', selectView.bind(null, 'document'), pageViewIcon));
- return elt('span', elemAttrs('toolbar-button-group'), buttons);
- };
+ if (this.settings.inGrid || !this.settings.inBookLayout)
+ viewOptions.appendChild(this.createButton('book-icon', 'Book View', selectView.bind(null, 'book'), bookViewIcon));
- var createLinkIcon = function ()
- {
- var elem = createButtonElement('link-icon', 'Link to this page');
- var linkIcon = $(elem);
+ if (!this.settings.inGrid)
+ viewOptions.appendChild(this.createButton('grid-icon', 'Grid View', selectView.bind(null, 'grid'), gridViewIcon));
- linkIcon.on('click', function ()
- {
- $('body').prepend(
- elt('div', {
- id: settings.ID + 'link-popup',
- class: 'diva-popup diva-link-popup'
- }, [
- elt('input', {
- id: settings.ID + 'link-popup-input',
- class: 'diva-input',
- type: 'text',
- value: viewer.getCurrentURL()
- })
- ])
- );
-
- if (settings.inFullscreen)
- {
- $(settings.selector + 'link-popup').addClass('in-fullscreen');
- }
- else
+ // remove old menu
+ while (viewOptionsList.firstChild)
{
- // Calculate the left and top offsets
- var leftOffset = linkIcon.offset().left - 222 + linkIcon.outerWidth();
- var topOffset = linkIcon.offset().top + linkIcon.outerHeight() - 1;
-
- $(settings.selector + 'link-popup').css({
- 'top': topOffset + 'px',
- 'left': leftOffset + 'px'
- });
+ viewOptionsList.removeChild(viewOptionsList.firstChild);
}
- // Catch onmouseup events outside of this div
- $('body').mouseup(function (event)
+ // insert new menu
+ viewOptionsList.appendChild(viewOptions);
+ };
+
+ document.addEventListener('mouseup', event =>
+ {
+ if (viewOptionsList !== event.target)
{
- var targetID = event.target.id;
+ viewOptionsList.style.display = 'none';
+ }
+ });
- if (targetID !== settings.ID + 'link-popup' && targetID !== settings.ID + 'link-popup-input')
- $(settings.selector + 'link-popup').remove();
- });
+ this._subscribe('ViewDidSwitch', updateViewMenu);
+ this._subscribe('ObjectDidLoad', updateViewMenu);
- // Also delete it upon scroll and page up/down key events
- // FIXME(wabain): This is aggressive
- settings.viewportObject.scroll(function ()
- {
- $(settings.selector + 'link-popup').remove();
- });
- $(settings.selector + 'link-popup input').click(function ()
- {
- $(this).focus().select();
- });
+ return elt('div', this._elemAttrs('view-menu'),
+ changeViewButton,
+ viewOptionsList
+ );
+ }
- return false;
- });
+ createFullscreenButton ()
+ {
+ let fullscreenIcon = this._createFullscreenIcon();
- return elem;
- };
+ return this.createButton('fullscreen-icon', 'Toggle fullscreen mode', () => {
+ this.viewer.toggleFullscreenMode();
+ }, fullscreenIcon);
+ }
- var createFullscreenButton = function ()
+ toggleZoomGridControls ()
{
- return createButtonElement('fullscreen-icon', 'Toggle fullscreen mode', function ()
+ if (!this.settings.inGrid)
{
- viewer.toggleFullscreenMode();
- });
- };
+ document.getElementById(this.settings.ID + "zoom-controls").style.display = "block";
+ document.getElementById(this.settings.ID + "grid-controls").style.display = "none";
+ }
+ else
+ {
+ document.getElementById(this.settings.ID + "zoom-controls").style.display = "none";
+ document.getElementById(this.settings.ID + "grid-controls").style.display = "block";
+ }
- var createToggleNonPagedButton = function ()
+ }
+
+ render ()
{
- var getClassName = function()
+ this._subscribe("ViewDidSwitch", this.toggleZoomGridControls);
+ this._subscribe("ObjectDidLoad", this.toggleZoomGridControls);
+
+ let leftTools = [
+ this.createZoomButtons(),
+ this.createGridControls()
+ ];
+ let rightTools = [
+ this.createPageLabel(),
+ this.createViewMenu()
+ ];
+ if (this.settings.enableFullscreen)
+ rightTools.push(this.createFullscreenButton());
+ if (this.settings.enableGotoPage)
+ rightTools.splice(1, 0, this.createGotoPageForm());
+
+ // assign toolbar plugins to proper side
+ let plugins = this.viewer.viewerState.pluginInstances;
+ for (var i = 0, len = plugins.length; i < len; i++)
{
- return 'toggle-nonpaged-icon' + (viewer.getSettings().showNonPagedPages ? '-active' : '');
- };
+ let plugin = plugins[i];
- var toggleNonPagedButton = createButtonElement(getClassName(), 'Toggle visibility of non-paged pages', function()
+ if (!plugin.toolbarSide) // not a toolbar tool
+ continue;
+
+ plugin.toolbarIcon = plugin.createIcon();
+ if (!plugin.toolbarIcon) // icon couldn't be created
+ continue;
+
+ // add plugin tools after the go-to-page and page-label tools
+ if (plugin.toolbarSide === 'right')
+ rightTools.splice(2, 0, plugin.toolbarIcon);
+ else if (plugin.toolbarSide === 'left')
+ leftTools.splice(2, 0, plugin.toolbarIcon);
+
+ plugin.toolbarIcon.addEventListener('click', handlePluginClick.bind(this, plugin));
+ }
+
+ function handlePluginClick (plugin)
{
- viewer.toggleNonPagedPagesVisibility();
- var newClassName = 'diva-' + getClassName();
- this.className = this.className.replace(/diva-toggle-nonpaged-icon(-active)?/, newClassName);
- });
+ plugin.handleClick(this.viewer);
+ }
+
+ const tools = elt('div', this._elemAttrs('tools'),
+ elt('div', this._elemAttrs('tools-left'), leftTools),
+ elt('div', this._elemAttrs('tools-right'), rightTools)
+ );
- var updateNonPagedButtonVisibility = function ()
+ this.settings.toolbarParentObject.insertBefore(
+ tools,
+ this.settings.toolbarParentObject.firstChild
+ );
+ }
+
+ _createToolbarIcon (paths)
+ {
+ let icon = document.createElementNS("http://www.w3.org/2000/svg", "svg");
+ icon.setAttributeNS(null, 'viewBox', "0 0 25 25");
+ icon.setAttributeNS(null, 'x', '0px');
+ icon.setAttributeNS(null, 'y', '0px');
+ icon.setAttributeNS(null, 'style', "enable-background:new 0 0 48 48;");
+
+ let glyph = document.createElementNS("http://www.w3.org/2000/svg", "g");
+ glyph.setAttributeNS(null, "transform", "matrix(1, 0, 0, 1, -12, -12)");
+
+ paths.forEach( (path) =>
{
- var pages = settings.manifest.pages;
- for (var i = 0; i < pages.length; i++)
- {
- if (settings.manifest.paged && !pages[i].paged)
- {
- // Show the button, there is at least one non-paged page
- toggleNonPagedButton.style.display = 'inline-block';
- return;
- }
- }
+ let pEl = document.createElementNS("http://www.w3.org/2000/svg", "path");
+ pEl.setAttributeNS(null, "d", path);
+ glyph.appendChild(pEl);
+ });
- // No non-paged pages were found, hide the button
- toggleNonPagedButton.style.display = 'none';
- };
- subscribe('ObjectDidLoad', updateNonPagedButtonVisibility);
+ icon.appendChild(glyph);
+ return icon;
+ }
- return toggleNonPagedButton;
- };
+ _createZoomOutIcon ()
+ {
+ let paths = [
+ "M19.5,23c-0.275,0-0.5-0.225-0.5-0.5v-1c0-0.275,0.225-0.5,0.5-0.5h7c0.275,0,0.5,0.225,0.5,0.5v1c0,0.275-0.225,0.5-0.5,0.5H19.5z",
+ "M37.219,34.257l-2.213,2.212c-0.202,0.202-0.534,0.202-0.736,0l-6.098-6.099c-1.537,0.993-3.362,1.577-5.323,1.577c-5.431,0-9.849-4.418-9.849-9.849c0-5.431,4.418-9.849,9.849-9.849c5.431,0,9.849,4.418,9.849,9.849c0,1.961-0.584,3.786-1.576,5.323l6.098,6.098C37.422,33.722,37.422,34.054,37.219,34.257z M29.568,22.099c0-3.706-3.014-6.72-6.72-6.72c-3.706,0-6.72,3.014-6.72,6.72c0,3.706,3.014,6.72,6.72,6.72C26.555,28.818,29.568,25.805,29.568,22.099z"
+ ];
+
+ return this._createToolbarIcon(paths);
+ }
- // Handles all status updating etc (both fullscreen and not)
- var init = function ()
+ _createZoomInIcon ()
{
- var leftTools = [createZoomControls(), createGridControls()];
- var rightTools = [createPageNavigationControls(), createToolbarButtonGroup()];
+ let paths = [
+ "M37.469,34.257l-2.213,2.212c-0.202,0.202-0.534,0.202-0.736,0l-6.098-6.099c-1.537,0.993-3.362,1.577-5.323,1.577c-5.431,0-9.849-4.418-9.849-9.849c0-5.431,4.418-9.849,9.849-9.849c5.431,0,9.849,4.418,9.849,9.849c0,1.961-0.584,3.786-1.576,5.323l6.098,6.098C37.672,33.722,37.672,34.054,37.469,34.257z M29.818,22.099c0-3.706-3.014-6.72-6.72-6.72c-3.706,0-6.72,3.014-6.72,6.72c0,3.706,3.014,6.72,6.72,6.72C26.805,28.818,29.818,25.805,29.818,22.099z M26.5,21H24v-2.5c0-0.275-0.225-0.5-0.5-0.5h-1c-0.275,0-0.5,0.225-0.5,0.5V21h-2.5c-0.275,0-0.5,0.225-0.5,0.5v1c0,0.275,0.225,0.5,0.5,0.5H22v2.5c0,0.275,0.225,0.5,0.5,0.5h1c0.275,0,0.5-0.225,0.5-0.5V23h2.5c0.275,0,0.5-0.225,0.5-0.5v-1C27,21.225,26.775,21,26.5,21z"
+ ];
+ return this._createToolbarIcon(paths);
+ }
- var tools = elt('div', elemAttrs('tools'),
- elt('div', elemAttrs('tools-left'), leftTools),
- elt('div', elemAttrs('tools-right'), rightTools)
- );
+ _createGridMoreIcon ()
+ {
+ let paths = [
+ "M29.5,35c-0.275,0-0.5-0.225-0.5-0.5v-5c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5v5c0,0.275-0.225,0.5-0.5,0.5H29.5z M21.5,35c-0.275,0-0.5-0.225-0.5-0.5v-5c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5v5c0,0.275-0.225,0.5-0.5,0.5H21.5z M13.5,35c-0.275,0-0.5-0.225-0.5-0.5v-5c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5v5c0,0.275-0.225,0.5-0.5,0.5H13.5z M29.5,27c-0.275,0-0.5-0.225-0.5-0.5v-5c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5v5c0,0.275-0.225,0.5-0.5,0.5H29.5z M21.5,27c-0.275,0-0.5-0.225-0.5-0.5v-5c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5v5c0,0.275-0.225,0.5-0.5,0.5H21.5z M13.5,27c-0.275,0-0.5-0.225-0.5-0.5v-5c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5v5c0,0.275-0.225,0.5-0.5,0.5H13.5z M29.5,19c-0.275,0-0.5-0.225-0.5-0.5v-5c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5v5c0,0.275-0.225,0.5-0.5,0.5H29.5z M21.5,19c-0.275,0-0.5-0.225-0.5-0.5v-5c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5v5c0,0.275-0.225,0.5-0.5,0.5H21.5z M13.5,19c-0.275,0-0.5-0.225-0.5-0.5v-5c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5v5c0,0.275-0.225,0.5-0.5,0.5H13.5z"
+ ];
+ return this._createToolbarIcon(paths);
+ }
- settings.toolbarParentObject.prepend(tools);
+ _createGridFewerIcon ()
+ {
+ let paths = [
+ "M25.5,35c-0.275,0-0.5-0.225-0.5-0.5v-9c0-0.275,0.225-0.5,0.5-0.5h9c0.275,0,0.5,0.225,0.5,0.5v9c0,0.275-0.225,0.5-0.5,0.5H25.5z M22.5,35c0.275,0,0.5-0.225,0.5-0.5v-9c0-0.275-0.225-0.5-0.5-0.5h-9c-0.275,0-0.5,0.225-0.5,0.5v9c0,0.275,0.225,0.5,0.5,0.5H22.5z M34.5,23c0.275,0,0.5-0.225,0.5-0.5v-9c0-0.275-0.225-0.5-0.5-0.5h-9c-0.275,0-0.5,0.225-0.5,0.5v9c0,0.275,0.225,0.5,0.5,0.5H34.5z M22.5,23c0.275,0,0.5-0.225,0.5-0.5v-9c0-0.275-0.225-0.5-0.5-0.5h-9c-0.275,0-0.5,0.225-0.5,0.5v9c0,0.275,0.225,0.5,0.5,0.5H22.5z"
+ ];
+ return this._createToolbarIcon(paths);
+ }
- // Handle entry to and exit from fullscreen mode
- var switchMode = function ()
- {
- var toolsRightElement = document.getElementById(settings.ID + 'tools-right');
- var pageNavElement = document.getElementById(settings.ID + 'page-nav');
+ _createGridViewIcon ()
+ {
+ let paths = [
+ "M29.5,35c-0.275,0-0.5-0.225-0.5-0.5v-5c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5v5c0,0.275-0.225,0.5-0.5,0.5H29.5z M21.5,35c-0.275,0-0.5-0.225-0.5-0.5v-5c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5v5c0,0.275-0.225,0.5-0.5,0.5H21.5z M13.5,35c-0.275,0-0.5-0.225-0.5-0.5v-5c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5v5c0,0.275-0.225,0.5-0.5,0.5H13.5z M29.5,27c-0.275,0-0.5-0.225-0.5-0.5v-5c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5v5c0,0.275-0.225,0.5-0.5,0.5H29.5z M21.5,27c-0.275,0-0.5-0.225-0.5-0.5v-5c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5v5c0,0.275-0.225,0.5-0.5,0.5H21.5z M13.5,27c-0.275,0-0.5-0.225-0.5-0.5v-5c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5v5c0,0.275-0.225,0.5-0.5,0.5H13.5z M29.5,19c-0.275,0-0.5-0.225-0.5-0.5v-5c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5v5c0,0.275-0.225,0.5-0.5,0.5H29.5z M21.5,19c-0.275,0-0.5-0.225-0.5-0.5v-5c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5v5c0,0.275-0.225,0.5-0.5,0.5H21.5z M13.5,19c-0.275,0-0.5-0.225-0.5-0.5v-5c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5v5c0,0.275-0.225,0.5-0.5,0.5H13.5z"
+ ];
+ return this._createToolbarIcon(paths);
+ }
- if (!settings.inFullscreen)
- {
- // Leaving fullscreen
- $(tools).removeClass('diva-fullscreen-tools');
+ _createBookViewIcon ()
+ {
+ let paths = [
+ "M35,16.8v-1.323c0,0-2.292-1.328-5.74-1.328c-3.448,0-5.26,1.25-5.26,1.25s-1.813-1.25-5.26-1.25c-3.448,0-5.74,1.328-5.74,1.328V16.8l-1,0.531v0.021v15.687c0,0,4.531-1.578,6.999-1.578c2.468,0,5.001,0.885,5.001,0.885s2.532-0.885,5-0.885c0.306,0,0.643,0.024,1,0.066v4.325l1.531-2.016L33,35.852v-3.72c2,0.43,3,0.906,3,0.906V17.352v-0.021L35,16.8z M23,29.03c-1-0.292-2.584-0.679-3.981-0.679c-2.246,0-3.019,0.404-4.019,0.699V16.634c0,0,1.125-0.699,4.019-0.699c1.694,0,2.981,0.417,3.981,1.126V29.03z M33,29.051c-1-0.295-1.773-0.699-4.02-0.699c-1.396,0-2.981,0.387-3.98,0.679V17.06c1-0.709,2.286-1.126,3.98-1.126c2.895,0,4.02,0.699,4.02,0.699V29.051z"
+ ];
+ return this._createToolbarIcon(paths);
+ }
- //move ID-page-nav to beginning of tools right
- toolsRightElement.removeChild(pageNavElement);
- toolsRightElement.insertBefore(pageNavElement, toolsRightElement.firstChild);
- }
- else
- {
- // Entering fullscreen
- $(tools).addClass('diva-fullscreen-tools');
+ _createPageViewIcon ()
+ {
+ let paths = [
+ "M29.425,29h4.47L29,33.934v-4.47C29,29.19,29.151,29,29.425,29z M34,14.563V28h-5.569C28.157,28,28,28.196,28,28.47V34H14.497C14.223,34,14,33.71,14,33.437V14.563C14,14.29,14.223,14,14.497,14h18.9C33.672,14,34,14.29,34,14.563z M25.497,26.497C25.497,26.223,25.275,26,25,26h-7c-0.275,0-0.497,0.223-0.497,0.497v1.006C17.503,27.777,17.725,28,18,28h7c0.275,0,0.497-0.223,0.497-0.497V26.497z M30.497,22.497C30.497,22.223,30.275,22,30,22H18c-0.275,0-0.497,0.223-0.497,0.497v1.006C17.503,23.777,17.725,24,18,24h12c0.275,0,0.497-0.223,0.497-0.497V22.497z M30.497,18.497C30.497,18.223,30.275,18,30,18H18c-0.275,0-0.497,0.223-0.497,0.497v1.006C17.503,19.777,17.725,20,18,20h12c0.275,0,0.497-0.223,0.497-0.497V18.497z"
+ ];
- //move ID-page-nav to end of tools right
- toolsRightElement.removeChild(pageNavElement);
- toolsRightElement.appendChild(pageNavElement);
- }
- };
+ return this._createToolbarIcon(paths);
+ }
- subscribe('ModeDidSwitch', switchMode);
- subscribe('ViewerDidLoad', switchMode);
+ _createFullscreenIcon ()
+ {
+ let paths = [
+ "M35,12H13c-0.55,0-1,0.45-1,1v22c0,0.55,0.45,1,1,1h22c0.55,0,1-0.45,1-1V13C36,12.45,35.55,12,35,12z M34,34H14V14h20V34z",
+ "M17,21.75v-4.5c0-0.138,0.112-0.25,0.25-0.25h4.5c0.138,0,0.17,0.08,0.073,0.177l-1.616,1.616l1.823,1.823c0.097,0.097,0.097,0.256,0,0.354l-1.061,1.06c-0.097,0.097-0.256,0.097-0.354,0l-1.823-1.823l-1.616,1.616C17.08,21.92,17,21.888,17,21.75z M20.97,25.97c-0.097-0.097-0.256-0.097-0.354,0l-1.823,1.823l-1.616-1.616C17.08,26.08,17,26.112,17,26.25v4.5c0,0.138,0.112,0.25,0.25,0.25h4.5c0.138,0,0.17-0.08,0.073-0.177l-1.616-1.616l1.823-1.823c0.097-0.097,0.097-0.256,0-0.354L20.97,25.97z M30.75,17h-4.5c-0.138,0-0.17,0.08-0.073,0.177l1.616,1.616l-1.823,1.823c-0.097,0.097-0.097,0.256,0,0.354l1.061,1.06c0.097,0.097,0.256,0.097,0.354,0l1.823-1.823l1.616,1.616C30.92,21.92,31,21.888,31,21.75v-4.5C31,17.112,30.888,17,30.75,17z M30.823,26.177l-1.616,1.616l-1.823-1.823c-0.097-0.097-0.256-0.097-0.354,0l-1.061,1.06c-0.097,0.097-0.097,0.256,0,0.354l1.823,1.823l-1.616,1.616C26.08,30.92,26.112,31,26.25,31h4.5c0.138,0,0.25-0.112,0.25-0.25v-4.5C31,26.112,30.92,26.08,30.823,26.177z M26,22.5c0-0.275-0.225-0.5-0.5-0.5h-3c-0.275,0-0.5,0.225-0.5,0.5v3c0,0.275,0.225,0.5,0.5,0.5h3c0.275,0,0.5-0.225,0.5-0.5V22.5z"
+ ];
- var toolbar = {
- element: tools,
- closePopups: function ()
- {
- $('.diva-popup').css('display', 'none');
- }
- };
+ return this._createToolbarIcon(paths);
+ }
- return toolbar;
- };
- return init();
}
+
+
+// export default function createToolbar (viewer)
+// {
+// const settings = viewer.getSettings();
+//
+// // FIXME(wabain): Temporarily copied from within Diva
+// const elemAttrs = (ident, base) => {
+// const attrs = {
+// id: settings.ID + ident,
+// class: 'diva-' + ident
+// };
+//
+// if (base)
+// return Object.assign(attrs, base);
+// else
+// return attrs;
+// };
+//
+// /** Convenience function to subscribe to a Diva event */
+// const subscribe = (event, callback) => {
+// diva.Events.subscribe(event, callback, settings.ID);
+// };
+//
+// // Creates a toolbar button
+// const createButtonElement = (name, label, callback) => {
+// const button = elt('button', {
+// type: 'button',
+// id: settings.ID + name,
+// class: 'diva-' + name + ' diva-button',
+// title: label
+// });
+//
+// if (callback)
+// button.addEventListener('click', callback, false);
+//
+// return button;
+// };
+//
+// // Higher-level function for creators of zoom and grid controls
+// const getResolutionControlCreator = config => () => {
+// let controls;
+//
+// switch (settings[config.controllerSetting])
+// {
+// case 'slider':
+// controls = config.createSlider();
+// break;
+//
+// case 'buttons':
+// controls = config.createButtons();
+// break;
+//
+// default:
+// // Don't display anything
+// return null;
+// }
+//
+// const wrapper = elt('span',
+// controls,
+// config.createLabel()
+// );
+//
+// const updateWrapper = () => {
+// if (settings.inGrid === config.showInGrid)
+// wrapper.style.display = 'inline';
+// else
+// wrapper.style.display = 'none';
+// };
+//
+// subscribe('ViewDidSwitch', updateWrapper);
+// subscribe('ObjectDidLoad', updateWrapper);
+//
+// // Set initial value
+// updateWrapper();
+//
+// return wrapper;
+// };
+//
+// // Zoom controls
+// const createZoomControls = getResolutionControlCreator({
+// controllerSetting: 'enableZoomControls',
+// showInGrid: false,
+//
+// createSlider: function ()
+// {
+// const elem = createSlider('zoom-slider', {
+// step: 0.1,
+// value: settings.zoomLevel,
+// min: settings.minZoomLevel,
+// max: settings.maxZoomLevel
+// });
+//
+// elem.addEventListener('input', () =>
+// {
+// const floatValue = parseFloat(this.value);
+// viewer.setZoomLevel(floatValue);
+// });
+//
+// elem.addEventListener('change', () =>
+// {
+// const floatValue = parseFloat(this.value);
+// if (floatValue !== settings.zoomLevel)
+// viewer.setZoomLevel(floatValue);
+// });
+//
+// const updateSlider = () => {
+// if (settings.zoomLevel !== $elem.val())
+// $elem.val(settings.zoomLevel);
+// };
+//
+// subscribe('ZoomLevelDidChange', updateSlider);
+// subscribe('ViewerDidLoad', () => {
+// elt.setAttributes(elem, {
+// min: settings.minZoomLevel,
+// max: settings.maxZoomLevel
+// });
+//
+// updateSlider();
+// });
+//
+// return elem;
+// },
+//
+// createButtons: function ()
+// {
+// return elt('span',
+// createButtonElement('zoom-out-button', 'Zoom Out', () => {
+// viewer.setZoomLevel(settings.zoomLevel - 1);
+// }),
+// createButtonElement('zoom-in-button', 'Zoom In', () => {
+// viewer.setZoomLevel(settings.zoomLevel + 1);
+// })
+// );
+// },
+//
+// createLabel: function ()
+// {
+// const elem = createLabel('diva-zoom-label', 'zoom-label', 'Zoom level: ', 'zoom-level', settings.zoomLevel);
+// const textSpan = $(elem).find(settings.selector + 'zoom-level')[0];
+//
+// const updateText = () => {
+// textSpan.textContent = settings.zoomLevel.toFixed(2);
+// };
+//
+// subscribe('ZoomLevelDidChange', updateText);
+// subscribe('ViewerDidLoad', updateText);
+//
+// return elem;
+// }
+// });
+//
+// // Grid controls
+// const createGridControls = getResolutionControlCreator({
+// controllerSetting: 'enableGridControls',
+// showInGrid: true,
+//
+// createSlider: function ()
+// {
+// const elem = createSlider('grid-slider', {
+// value: settings.pagesPerRow,
+// min: settings.minPagesPerRow,
+// max: settings.maxPagesPerRow
+// });
+//
+// elem.addEventListener('input', () => {
+// const intValue = parseInt(elem.value, 10);
+// viewer.setGridPagesPerRow(intValue);
+// });
+//
+// elem.addEventListener('change', () => {
+// const intValue = parseInt(elem.value, 10);
+// if (intValue !== settings.pagesPerRow)
+// viewer.setGridPagesPerRow(intValue);
+// });
+//
+// subscribe('GridRowNumberDidChange', () => {
+// // Update the position of the handle within the slider
+// if (settings.pagesPerRow !== $elem.val())
+// $elem.val(settings.pagesPerRow);
+// });
+//
+// return elem;
+// },
+//
+// createButtons: function ()
+// {
+// return elt('span',
+// createButtonElement('grid-out-button', 'Zoom Out', () => {
+// viewer.setGridPagesPerRow(settings.pagesPerRow - 1);
+// }),
+// createButtonElement('grid-in-button', 'Zoom In', () => {
+// viewer.setGridPagesPerRow(settings.pagesPerRow + 1);
+// })
+// );
+// },
+//
+// createLabel: function ()
+// {
+// const elem = createLabel('diva-grid-label', 'grid-label', 'Pages per row: ', 'pages-per-row', settings.pagesPerRow);
+// const textSpan = $(elem).find(settings.selector + 'pages-per-row')[0];
+//
+// subscribe('GridRowNumberDidChange', () => {
+// textSpan.textContent = settings.pagesPerRow;
+// });
+//
+// return elem;
+// }
+// });
+//
+// const createViewMenu = () => {
+// const viewOptionsList = elt('div', elemAttrs('view-options'));
+//
+// const changeViewButton = createButtonElement('view-icon', 'Change view', () => {
+// $(viewOptionsList).toggle();
+// });
+//
+// document.addEventListener('mouseup', event => {
+// const container = $(viewOptionsList);
+//
+// if (!container.is(event.target) && container.has(event.target).length === 0 && event.target.id !== settings.ID + 'view-icon')
+// {
+// container.hide();
+// }
+// });
+//
+// const selectView = view => {
+// viewer.changeView(view);
+//
+// //hide view menu
+// $(viewOptionsList).hide();
+// };
+//
+// const updateViewMenu = () => {
+// const viewIconClasses = ' diva-view-icon diva-button';
+//
+// // display the icon of the mode we're currently in (?)
+// if (settings.inGrid)
+// {
+// changeViewButton.className = 'diva-grid-icon' + viewIconClasses;
+// }
+// else if (settings.inBookLayout)
+// {
+// changeViewButton.className = 'diva-book-icon' + viewIconClasses;
+// }
+// else
+// {
+// changeViewButton.className = 'diva-document-icon' + viewIconClasses;
+// }
+//
+// const viewOptions = document.createDocumentFragment();
+//
+// // then display document, book, and grid buttons in that order, excluding the current view
+// if (settings.inGrid || settings.inBookLayout)
+// viewOptions.appendChild(createButtonElement('document-icon', 'Document View', selectView.bind(null, 'document')));
+//
+// if (settings.inGrid || !settings.inBookLayout)
+// viewOptions.appendChild(createButtonElement('book-icon', 'Book View', selectView.bind(null, 'book')));
+//
+// if (!settings.inGrid)
+// viewOptions.appendChild(createButtonElement('grid-icon', 'Grid View', selectView.bind(null, 'grid')));
+//
+// // remove old menu
+// while (viewOptionsList.firstChild)
+// {
+// viewOptionsList.removeChild(viewOptionsList.firstChild);
+// }
+//
+// // insert new menu
+// viewOptionsList.appendChild(viewOptions);
+// };
+//
+// subscribe('ViewDidSwitch', updateViewMenu);
+// subscribe('ObjectDidLoad', updateViewMenu);
+//
+// return elt('div', elemAttrs('view-menu'),
+// changeViewButton,
+// viewOptionsList
+// );
+// };
+//
+// const createSlider = (name, options) => elt('input', options, {
+// id: settings.ID + name,
+// class: 'diva-' + name + ' diva-slider',
+// type: 'range'
+// });
+//
+// const createLabel = (name, id, label, innerName, innerValue) => elt('div', {
+// id: settings.ID + id,
+// class: name + ' diva-label'
+// },
+// [
+// label,
+// elt('span', {
+// id: settings.ID + innerName
+// }, innerValue)
+// ]);
+//
+// const createPageNavigationControls = () => {
+// // Go to page form
+// const gotoForm = settings.enableGotoPage ? createGotoPageForm() : null;
+//
+// return elt('span', elemAttrs('page-nav'),
+// createPageLabel(), // 'Page x of y' label
+// gotoForm
+// );
+// };
+//
+// const createGotoPageForm = () => {
+// const gotoPageInput = elt('input', {
+// id: settings.ID + 'goto-page-input',
+// class: 'diva-input diva-goto-page-input',
+// autocomplete: 'off',
+// type: 'text'
+// });
+//
+// const gotoPageSubmit = elt('input', {
+// id: settings.ID + 'goto-page-submit',
+// class: 'diva-button diva-button-text',
+// type: 'submit',
+// value: 'Go'
+// });
+//
+// const inputSuggestions = elt('div', {
+// id: settings.ID + 'input-suggestions',
+// class: 'diva-input-suggestions'
+// }
+// );
+//
+// const gotoForm = elt('form', {
+// id: settings.ID + 'goto-page',
+// class: 'diva-goto-form'
+// },
+// gotoPageInput,
+// gotoPageSubmit,
+// inputSuggestions
+// );
+//
+// $(gotoForm).on('submit', () => {
+// const desiredPageLabel = gotoPageInput.value;
+//
+// if (settings.onGotoSubmit && typeof settings.onGotoSubmit === "function")
+// {
+// const pageIndex = settings.onGotoSubmit(desiredPageLabel);
+// if (!viewer.gotoPageByIndex(pageIndex))
+// alert("No page could be found with that label or page number");
+//
+// }
+// else // Default if no function is specified in the settings
+// {
+// if (!viewer.gotoPageByLabel(desiredPageLabel))
+// alert("No page could be found with that label or page number");
+// }
+//
+// // Hide the suggestions
+// inputSuggestions.style.display = 'none';
+//
+// // Prevent the default action of reloading the page
+// return false;
+// });
+//
+// $(gotoPageInput).on('input focus', () => {
+// inputSuggestions.innerHTML = ''; // Remove all previous suggestions
+//
+// const value = gotoPageInput.value;
+// let numSuggestions = 0;
+// if (settings.enableGotoSuggestions && value)
+// {
+// const pages = settings.manifest.pages;
+// for (let i = 0, len = pages.length; i < len && numSuggestions < 10; i++)
+// {
+// if (pages[i].l.toLowerCase().indexOf(value.toLowerCase()) > -1)
+// {
+// const newInputSuggestion = elt('div', {
+// class: 'diva-input-suggestion'
+// },
+// pages[i].l
+// );
+//
+// inputSuggestions.appendChild(newInputSuggestion);
+//
+// numSuggestions++;
+// }
+// }
+//
+// // Show label suggestions
+// if (numSuggestions > 0)
+// inputSuggestions.style.display = 'block';
+// }
+// else
+// inputSuggestions.style.display = 'none';
+// });
+//
+// $(gotoPageInput).on('keydown', e => {
+// let el;
+// if (e.keyCode === 13) // 'Enter' key
+// {
+// const active = $('.active', inputSuggestions);
+// if (active.length)
+// gotoPageInput.value = active.text();
+//
+// }
+// if (e.keyCode === 38) // Up arrow key
+// {
+// el = $('.active', inputSuggestions);
+// const prevEl = el.prev();
+// if (prevEl.length)
+// {
+// el.removeClass('active');
+// prevEl.addClass('active');
+// }
+// else
+// {
+// el.removeClass('active');
+// $('.diva-input-suggestion:last', inputSuggestions).addClass('active');
+// }
+// }
+// else if (e.keyCode === 40) // Down arrow key
+// {
+// el = $('.active', inputSuggestions);
+// const nextEl = el.next();
+// if (nextEl.length)
+// {
+// el.removeClass('active');
+// nextEl.addClass('active');
+// }
+// else
+// {
+// el.removeClass('active');
+// $('.diva-input-suggestion:first', inputSuggestions).addClass('active');
+// }
+// }
+// });
+//
+// $(inputSuggestions).on('mousedown', '.diva-input-suggestion', function()
+// {
+// gotoPageInput.value = this.textContent;
+// inputSuggestions.style.display = 'none';
+// $(gotoPageInput).trigger('submit');
+// });
+//
+// $(gotoPageInput).on('blur', () => {
+// // Hide label suggestions
+// inputSuggestions.style.display = 'none';
+// });
+//
+// return gotoForm;
+// };
+//
+// const createPageLabel = () => {
+// // Current page
+// const currentPage = elt('span', {
+// id: settings.ID + 'current-page'
+// });
+//
+// const updateCurrentPage = () => {
+// currentPage.textContent = viewer.getCurrentAliasedPageIndex();
+// };
+//
+// subscribe('VisiblePageDidChange', updateCurrentPage);
+// subscribe('ViewerDidLoad', updateCurrentPage);
+//
+// // Number of pages
+// const numPages = elt('span', {
+// id: settings.ID + 'num-pages'
+// });
+//
+// const updateNumPages = () => {
+// numPages.textContent = settings.numPages;
+// };
+//
+// subscribe('NumberOfPagesDidChange', updateNumPages);
+// subscribe('ObjectDidLoad', updateNumPages);
+//
+// return elt('span', {
+// class: 'diva-page-label diva-label'
+// },
+// 'Page ', currentPage, ' of ', numPages
+// );
+// };
+//
+// const createToolbarButtonGroup = () => {
+// const buttons = [createViewMenu()];
+//
+// if (settings.enableLinkIcon)
+// buttons.push(createLinkIcon());
+//
+// if (settings.enableNonPagedVisibilityIcon)
+// buttons.push(createToggleNonPagedButton());
+//
+// if (settings.enableFullscreen)
+// buttons.push(createFullscreenButton());
+//
+// return elt('span', elemAttrs('toolbar-button-group'), buttons);
+// };
+//
+// const createLinkIcon = () => {
+// const elem = createButtonElement('link-icon', 'Link to this page');
+// const linkIcon = $(elem);
+//
+// linkIcon.on('click', () => {
+// $('body').prepend(
+// elt('div', {
+// id: settings.ID + 'link-popup',
+// class: 'diva-popup diva-link-popup'
+// }, [
+// elt('input', {
+// id: settings.ID + 'link-popup-input',
+// class: 'diva-input',
+// type: 'text',
+// value: viewer.getCurrentURL()
+// })
+// ])
+// );
+//
+// if (settings.inFullscreen)
+// {
+// $(settings.selector + 'link-popup').addClass('in-fullscreen');
+// }
+// else
+// {
+// // Calculate the left and top offsets
+// const leftOffset = linkIcon.offset().left - 222 + linkIcon.outerWidth();
+// const topOffset = linkIcon.offset().top + linkIcon.outerHeight() - 1;
+//
+// $(settings.selector + 'link-popup').css({
+// 'top': topOffset + 'px',
+// 'left': leftOffset + 'px'
+// });
+// }
+//
+// // Catch onmouseup events outside of this div
+// $('body').mouseup(event => {
+// const targetID = event.target.id;
+//
+// if (targetID !== settings.ID + 'link-popup' && targetID !== settings.ID + 'link-popup-input')
+// $(settings.selector + 'link-popup').remove();
+// });
+//
+// // Also delete it upon scroll and page up/down key events
+// // FIXME(wabain): This is aggressive
+// settings.viewportObject.scroll(() => {
+// $(settings.selector + 'link-popup').remove();
+// });
+// $(settings.selector + 'link-popup input').click(function ()
+// {
+// $(this).focus().select();
+// });
+//
+// return false;
+// });
+//
+// return elem;
+// };
+//
+// var createFullscreenButton = () => createButtonElement('fullscreen-icon', 'Toggle fullscreen mode', () => {
+// viewer.toggleFullscreenMode();
+// });
+//
+// var createToggleNonPagedButton = () => {
+// const getClassName = () => 'toggle-nonpaged-icon' + (viewer.getSettings().showNonPagedPages ? '-active' : '');
+//
+// const toggleNonPagedButton = createButtonElement(getClassName(), 'Toggle visibility of non-paged pages', function()
+// {
+// viewer.toggleNonPagedPagesVisibility();
+// const newClassName = 'diva-' + getClassName();
+// this.className = this.className.replace(/diva-toggle-nonpaged-icon(-active)?/, newClassName);
+// });
+//
+// const updateNonPagedButtonVisibility = () => {
+// const pages = settings.manifest.pages;
+// for (let i = 0; i < pages.length; i++)
+// {
+// if (settings.manifest.paged && !pages[i].paged)
+// {
+// // Show the button, there is at least one non-paged page
+// toggleNonPagedButton.style.display = 'inline-block';
+// return;
+// }
+// }
+//
+// // No non-paged pages were found, hide the button
+// toggleNonPagedButton.style.display = 'none';
+// };
+// subscribe('ObjectDidLoad', updateNonPagedButtonVisibility);
+//
+// return toggleNonPagedButton;
+// };
+//
+// // Handles all status updating etc (both fullscreen and not)
+// const init = () => {
+// const leftTools = [createZoomControls(), createGridControls()];
+// const rightTools = [createPageNavigationControls(), createToolbarButtonGroup()];
+//
+// const tools = elt('div', elemAttrs('tools'),
+// elt('div', elemAttrs('tools-left'), leftTools),
+// elt('div', elemAttrs('tools-right'), rightTools)
+// );
+//
+// settings.toolbarParentObject.prepend(tools);
+//
+// // Handle entry to and exit from fullscreen mode
+// const switchMode = () => {
+// const toolsRightElement = document.getElementById(settings.ID + 'tools-right');
+// const pageNavElement = document.getElementById(settings.ID + 'page-nav');
+//
+// if (!settings.inFullscreen)
+// {
+// // Leaving fullscreen
+// $(tools).removeClass('diva-fullscreen-tools');
+//
+// //move ID-page-nav to beginning of tools right
+// toolsRightElement.removeChild(pageNavElement);
+// toolsRightElement.insertBefore(pageNavElement, toolsRightElement.firstChild);
+// }
+// else
+// {
+// // Entering fullscreen
+// $(tools).addClass('diva-fullscreen-tools');
+//
+// //move ID-page-nav to end of tools right
+// toolsRightElement.removeChild(pageNavElement);
+// toolsRightElement.appendChild(pageNavElement);
+// }
+// };
+//
+// subscribe('ModeDidSwitch', switchMode);
+// subscribe('ViewerDidLoad', switchMode);
+//
+// const toolbar = {
+// element: tools,
+// closePopups: function ()
+// {
+// $('.diva-popup').css('display', 'none');
+// }
+// };
+//
+// return toolbar;
+// };
+//
+// return init();
+// }
diff --git a/source/js/utils/dragscroll.js b/source/js/utils/dragscroll.js
new file mode 100644
index 00000000..bb795248
--- /dev/null
+++ b/source/js/utils/dragscroll.js
@@ -0,0 +1,106 @@
+/**
+ * @fileoverview dragscroll - scroll area by dragging
+ * @version 0.0.8
+ *
+ * @license MIT, see http://github.com/asvd/dragscroll
+ * @copyright 2015 asvd
+ */
+(function (root, factory)
+{
+ if (typeof define === 'function' && define.amd)
+ {
+ define(['exports'], factory);
+ }
+ else if (typeof exports !== 'undefined')
+ {
+ factory(exports);
+ }
+ else
+ {
+ factory((root.dragscroll = {}));
+ }
+}(this, function (exports)
+{
+ var _window = window;
+ var _document = document;
+ var mousemove = 'mousemove';
+ var mouseup = 'mouseup';
+ var mousedown = 'mousedown';
+ var EventListener = 'EventListener';
+ var addEventListener = 'add' + EventListener;
+ var removeEventListener = 'remove' + EventListener;
+ var newScrollX, newScrollY; // jshint ignore:line
+
+ var dragged = [];
+
+ var reset = function (i, el)
+ {
+ for (i = 0; i < dragged.length;)
+ {
+ el = dragged[i++];
+ el = el.container || el;
+ el[removeEventListener](mousedown, el.md, 0);
+ _window[removeEventListener](mouseup, el.mu, 0);
+ _window[removeEventListener](mousemove, el.mm, 0);
+ }
+
+ // suppress warning about functions in loops.
+ /* jshint ignore:start */
+ // cloning into array since HTMLCollection is updated dynamically
+ dragged = [].slice.call(_document.getElementsByClassName('dragscroll'));
+ for (i = 0; i < dragged.length;)
+ {
+ (function (el, lastClientX, lastClientY, pushed, scroller, cont)
+ {
+ (cont = el.container || el)[addEventListener](
+ mousedown,
+ cont.md = function (e)
+ {
+ if (!el.hasAttribute('nochilddrag') || _document.elementFromPoint(e.pageX, e.pageY) === cont)
+ {
+ pushed = 1;
+ lastClientX = e.clientX;
+ lastClientY = e.clientY;
+
+ e.preventDefault();
+ }
+ }, 0
+ );
+
+ _window[addEventListener](mouseup, cont.mu = function ()
+ {
+ pushed = 0;
+ }, 0);
+
+ _window[addEventListener](mousemove, cont.mm = function (e)
+ {
+ if (pushed)
+ {
+ (scroller = el.scroller || el).scrollLeft -=
+ newScrollX = (-lastClientX + (lastClientX = e.clientX));
+ scroller.scrollTop -=
+ newScrollY = (-lastClientY + (lastClientY = e.clientY));
+ if (el === _document.body)
+ {
+ (scroller = _document.documentElement).scrollLeft -= newScrollX;
+ scroller.scrollTop -= newScrollY;
+ }
+ }
+ }, 0);
+ })(dragged[i++]);
+ }
+ /* jshint ignore:end */
+ };
+
+ if (_document.readyState === 'complete')
+ {
+ reset();
+ }
+ else
+ {
+ _window[addEventListener]('load', reset, 0);
+ }
+
+ exports.reset = reset;
+ window.resetDragscroll = reset;
+}));
diff --git a/source/js/utils/elt.js b/source/js/utils/elt.js
index de6137c4..f30f1af8 100644
--- a/source/js/utils/elt.js
+++ b/source/js/utils/elt.js
@@ -1,5 +1,4 @@
-module.exports = elt;
-module.exports.setAttributes = setDOMAttributes;
+export { setDOMAttributes as setAttributes };
/**
* Convenience function to create a DOM element, set attributes on it, and
@@ -11,23 +10,23 @@ module.exports.setAttributes = setDOMAttributes;
*
* Inspired by the ProseMirror helper of the same name.
*/
-function elt(tag)
+export function elt (tag)
{
- var el = document.createElement(tag);
- var args = Array.prototype.slice.call(arguments, 1);
+ const el = document.createElement(tag);
+ const args = Array.prototype.slice.call(arguments, 1);
while (args.length)
{
- var arg = args.shift();
+ const arg = args.shift();
handleEltConstructorArg(el, arg);
}
return el;
}
-function handleEltConstructorArg(el, arg)
+function handleEltConstructorArg (el, arg)
{
- if (arg == null)
+ if (arg == null) // NB: == is correct;
return;
if (typeof arg !== 'object' && typeof arg !== 'function')
@@ -41,8 +40,8 @@ function handleEltConstructorArg(el, arg)
}
else if (arg instanceof Array)
{
- var childCount = arg.length;
- for (var i = 0; i < childCount; i++)
+ const childCount = arg.length;
+ for (let i = 0; i < childCount; i++)
handleEltConstructorArg(el, arg[i]);
}
else
@@ -56,9 +55,9 @@ function handleEltConstructorArg(el, arg)
* accept either a string or an object whose own attributes are assigned to
* el.style.
*/
-function setDOMAttributes(el, attributes)
+function setDOMAttributes (el, attributes)
{
- for (var prop in attributes)
+ for (const prop in attributes)
{
if (!attributes.hasOwnProperty(prop))
continue;
@@ -74,7 +73,7 @@ function setDOMAttributes(el, attributes)
}
}
-function setStyle(el, style)
+function setStyle (el, style)
{
if (!style)
return;
@@ -85,7 +84,7 @@ function setStyle(el, style)
return;
}
- for (var cssProp in style)
+ for (const cssProp in style)
{
if (!style.hasOwnProperty(cssProp))
continue;
diff --git a/source/js/utils/events.js b/source/js/utils/events.js
index 782dad0e..2020a9c7 100644
--- a/source/js/utils/events.js
+++ b/source/js/utils/events.js
@@ -1,187 +1,190 @@
-module.exports = Events;
-
/**
- * Events. Pub/Sub system for Loosely Coupled logic.
- * Based on Peter Higgins' port from Dojo to jQuery
- * https://github.com/phiggins42/bloody-jquery-plugins/blob/master/pubsub.js
+ * Events. Pub/Sub system for Loosely Coupled logic.
+ * Based on Peter Higgins' port from Dojo to jQuery
+ * https://github.com/phiggins42/bloody-jquery-plugins/blob/master/pubsub.js
*
- * Re-adapted to vanilla Javascript
+ * Re-adapted to vanilla Javascript
*
- * @class Events
+ * @class Events
*/
-function Events()
-{
- this._cache = {};
-}
-/**
- * diva.Events.publish
- * e.g.: diva.Events.publish("PageDidLoad", [pageIndex, filename, pageSelector], this);
- *
- * @class Events
- * @method publish
- * @param topic {String}
- * @param args {Array}
- * @param scope {Object=} Optional - Subscribed functions will be executed with the supplied object as `this`.
- * It is necessary to supply this argument with the self variable when within a Diva instance.
- * The scope argument is matched with the instance ID of subscribers to determine whether they
- * should be executed. (See instanceID argument of subscribe.)
- */
-Events.prototype.publish = function (topic, args, scope)
+class DivaEvents
{
- if (this._cache[topic])
+ constructor()
{
- var thisTopic = this._cache[topic];
+ this._cache = {};
+ }
- if (typeof thisTopic.global !== 'undefined')
+ /**
+ * diva.Events.publish
+ * e.g.: diva.Events.publish("PageDidLoad", [pageIndex, filename, pageSelector], this);
+ *
+ * @class Events
+ * @method publish
+ * @param topic {String}
+ * @param args {Array}
+ * @param scope {Object=} Optional - Subscribed functions will be executed with the supplied object as `this`.
+ * It is necessary to supply this argument with the self variable when within a Diva instance.
+ * The scope argument is matched with the instance ID of subscribers to determine whether they
+ * should be executed. (See instanceID argument of subscribe.)
+ */
+ publish(topic, args, scope)
+ {
+ if (this._cache[topic])
{
- var thisTopicGlobal = thisTopic.global;
- var globalCount = thisTopicGlobal.length;
+ const thisTopic = this._cache[topic];
- for (var i=0; i < globalCount; i++)
+ if (typeof thisTopic.global !== 'undefined')
{
- thisTopicGlobal[i].apply(scope || null, args || []);
- }
- }
+ const thisTopicGlobal = thisTopic.global;
+ const globalCount = thisTopicGlobal.length;
- if (scope && typeof scope.getInstanceId !== 'undefined')
- {
- // get publisher instance ID from scope arg, compare, and execute if match
- var instanceID = scope.getInstanceId();
+ for (let i=0; i < globalCount; i++)
+ {
+ thisTopicGlobal[i].apply(scope || null, args || []);
+ }
+ }
- if (this._cache[topic][instanceID])
+ if (scope && typeof scope.getInstanceId !== 'undefined')
{
- var thisTopicInstance = this._cache[topic][instanceID];
- var scopedCount = thisTopicInstance.length;
+ // get publisher instance ID from scope arg, compare, and execute if match
+ const instanceID = scope.getInstanceId();
- for (var j=0; j < scopedCount; j++)
+ if (this._cache[topic][instanceID])
{
- thisTopicInstance[j].apply(scope, args || []);
+ const thisTopicInstance = this._cache[topic][instanceID];
+ const scopedCount = thisTopicInstance.length;
+
+ for (let j=0; j < scopedCount; j++)
+ {
+ thisTopicInstance[j].apply(scope, args || []);
+ }
}
}
}
}
-};
-/**
- * diva.Events.subscribe
- * e.g.: diva.Events.subscribe("PageDidLoad", highlight, settings.ID)
- *
- * @class Events
- * @method subscribe
- * @param topic {String}
- * @param callback {Function}
- * @param instanceID {String=} Optional - String representing the ID of a Diva instance; if provided,
- * callback only fires for events published from that instance.
- * @return Event handler {Array}
- */
-Events.prototype.subscribe = function (topic, callback, instanceID)
-{
- if (!this._cache[topic])
- {
- this._cache[topic] = {};
- }
-
- if (typeof instanceID === 'string')
+ /**
+ * diva.Events.subscribe
+ * e.g.: diva.Events.subscribe("PageDidLoad", highlight, settings.ID)
+ *
+ * @class Events
+ * @method subscribe
+ * @param {string} topic
+ * @param {function} callback
+ * @param {string=} instanceID Optional - String representing the ID of a Diva instance; if provided,
+ * callback only fires for events published from that instance.
+ * @return Event handler {Array}
+ */
+ subscribe(topic, callback, instanceID)
{
- if (!this._cache[topic][instanceID])
+ if (!this._cache[topic])
{
- this._cache[topic][instanceID] = [];
+ this._cache[topic] = {};
}
- this._cache[topic][instanceID].push(callback);
- }
- else
- {
- if (!this._cache[topic].global)
+ if (typeof instanceID === 'string')
{
- this._cache[topic].global = [];
+ if (!this._cache[topic][instanceID])
+ {
+ this._cache[topic][instanceID] = [];
+ }
+
+ this._cache[topic][instanceID].push(callback);
+ }
+ else
+ {
+ if (!this._cache[topic].global)
+ {
+ this._cache[topic].global = [];
+ }
+
+ this._cache[topic].global.push(callback);
}
- this._cache[topic].global.push(callback);
+ return instanceID ? [topic, callback, instanceID] : [topic, callback];
}
- var handle = instanceID ? [topic, callback, instanceID] : [topic, callback];
-
- return handle;
-};
+ /**
+ * diva.Events.unsubscribe
+ * e.g.: var handle = Events.subscribe("PageDidLoad", highlight);
+ * Events.unsubscribe(handle);
+ *
+ * @class Events
+ * @method unsubscribe
+ * @param {array} handle
+ * @param {boolean=} completely - Unsubscribe all events for a given topic.
+ * @return {boolean} success
+ */
+ unsubscribe(handle, completely)
+ {
+ const t = handle[0];
-/**
- * diva.Events.unsubscribe
- * e.g.: var handle = Events.subscribe("PageDidLoad", highlight);
- * Events.unsubscribe(handle);
- *
- * @class Events
- * @method unsubscribe
- * @param handle {Array}
- * @param completely {Boolean=} - Unsubscribe all events for a given topic.
- * @return success {Boolean}
- */
-Events.prototype.unsubscribe = function (handle, completely)
-{
- var t = handle[0];
+ if (this._cache[t])
+ {
+ let topicArray;
+ const instanceID = handle.length === 3 ? handle[2] : 'global';
- if (this._cache[t])
- {
- var topicArray;
- var instanceID = handle.length === 3 ? handle[2] : 'global';
+ topicArray = this._cache[t][instanceID];
- topicArray = this._cache[t][instanceID];
+ if (!topicArray)
+ {
+ return false;
+ }
- if (!topicArray)
- {
- return false;
- }
+ if (completely)
+ {
+ delete this._cache[t][instanceID];
+ return topicArray.length > 0;
+ }
- if (completely)
- {
- delete this._cache[t][instanceID];
- return topicArray.length > 0;
- }
+ let i = topicArray.length;
- var i = topicArray.length;
- while (i--)
- {
- if (topicArray[i] === handle[1])
+ while (i--)
{
- this._cache[t][instanceID].splice(i, 1);
- return true;
+ if (topicArray[i] === handle[1])
+ {
+ this._cache[t][instanceID].splice(i, 1);
+ return true;
+ }
}
}
- }
- return false;
-};
+ return false;
+ }
-/**
- * diva.Events.unsubscribeAll
- * e.g.: diva.Events.unsubscribeAll('global');
- *
- * @class Events
- * @param instanceID {String=} Optional - instance ID to remove subscribers from or 'global' (if omitted,
- * subscribers in all scopes removed)
- * @method unsubscribeAll
- */
-Events.prototype.unsubscribeAll = function (instanceID)
-{
- if (instanceID)
+ /**
+ * diva.Events.unsubscribeAll
+ * e.g.: diva.Events.unsubscribeAll('global');
+ *
+ * @class Events
+ * @param {string=} instanceID Optional - instance ID to remove subscribers from or 'global' (if omitted,
+ * subscribers in all scopes removed)
+ * @method unsubscribeAll
+ */
+ unsubscribeAll(instanceID)
{
- var topics = Object.keys(this._cache);
- var i = topics.length;
- var topic;
-
- while (i--)
+ if (instanceID)
{
- topic = topics[i];
+ const topics = Object.keys(this._cache);
+ let i = topics.length;
+ let topic;
- if (typeof this._cache[topic][instanceID] !== 'undefined')
+ while (i--)
{
- delete this._cache[topic][instanceID];
+ topic = topics[i];
+
+ if (typeof this._cache[topic][instanceID] !== 'undefined')
+ {
+ delete this._cache[topic][instanceID];
+ }
}
}
+ else
+ {
+ this._cache = {};
+ }
}
- else
- {
- this._cache = {};
- }
-};
+}
+
+export let Events = new DivaEvents();
diff --git a/source/js/utils/get-scrollbar-width.js b/source/js/utils/get-scrollbar-width.js
index 55e5b113..76df513d 100644
--- a/source/js/utils/get-scrollbar-width.js
+++ b/source/js/utils/get-scrollbar-width.js
@@ -1,10 +1,11 @@
// From http://www.alexandre-gomes.com/?p=115, modified slightly
-module.exports = function getScrollbarWidth() {
- var inner = document.createElement('p');
+export default function getScrollbarWidth()
+{
+ let inner = document.createElement('p');
inner.style.width = '100%';
inner.style.height = '200px';
- var outer = document.createElement('div');
+ let outer = document.createElement('div');
outer.style.position = 'absolute';
outer.style.top = '0px';
outer.style.left = '0px';
@@ -16,13 +17,13 @@ module.exports = function getScrollbarWidth() {
document.body.appendChild(outer);
- var w1 = inner.offsetWidth;
+ let w1 = inner.offsetWidth;
outer.style.overflow = 'scroll';
- var w2 = inner.offsetWidth;
- if (w1 == w2) {
+ let w2 = inner.offsetWidth;
+ if (w1 === w2) {
w2 = outer.clientWidth; // for IE i think
}
document.body.removeChild(outer);
return w1 - w2;
-};
+}
diff --git a/source/js/utils/hash-params.js b/source/js/utils/hash-params.js
index 6e3fff43..092cd139 100644
--- a/source/js/utils/hash-params.js
+++ b/source/js/utils/hash-params.js
@@ -1,58 +1,83 @@
-module.exports.get = getHashParam;
-module.exports.update = updateHashParam;
+let HashParams = {
+ get: getHashParam,
+ update: updateHashParam
+};
+
+export default HashParams;
+
// For getting the #key values from the URL. For specifying a page and zoom level
// Look into caching, because we only need to get this during the initial load
// Although for the tests I guess we would need to override caching somehow
-function getHashParam(key) {
- var hash = window.location.hash;
- if (hash !== '') {
+function getHashParam (key)
+{
+ const hash = window.location.hash;
+
+ if (hash !== '')
+ {
// Check if there is something that looks like either &key= or #key=
- var startIndex = (hash.indexOf('&' + key + '=') > 0) ? hash.indexOf('&' + key + '=') : hash.indexOf('#' + key + '=');
+ let startIndex = (hash.indexOf('&' + key + '=') > 0) ? hash.indexOf('&' + key + '=') : hash.indexOf('#' + key + '=');
// If startIndex is still -1, it means it can't find either
- if (startIndex >= 0) {
+ if (startIndex >= 0)
+ {
// Add the length of the key plus the & and =
startIndex += key.length + 2;
// Either to the next ampersand or to the end of the string
- var endIndex = hash.indexOf('&', startIndex);
- if (endIndex > startIndex) {
+ const endIndex = hash.indexOf('&', startIndex);
+ if (endIndex > startIndex)
+ {
return decodeURIComponent(hash.substring(startIndex, endIndex));
- } else if (endIndex < 0) {
+ }
+ else if (endIndex < 0)
+ {
// This means this hash param is the last one
return decodeURIComponent(hash.substring(startIndex));
}
// If the key doesn't have a value I think
return '';
- } else {
+ }
+ else
+ {
// If it can't find the key
return false;
}
- } else {
+ }
+ else
+ {
// If there are no hash params just return false
return false;
}
}
-function updateHashParam(key, value) {
+function updateHashParam (key, value)
+{
// First make sure that we have to do any work at all
- var originalValue = getHashParam(key);
- var hash = window.location.hash;
- if (originalValue !== value) {
+ const originalValue = getHashParam(key);
+ const hash = window.location.hash;
+
+ if (originalValue !== value)
+ {
// Is the key already in the URL?
- if (typeof originalValue == 'string') {
+ if (typeof originalValue === 'string')
+ {
// Already in the URL. Just get rid of the original value
- var startIndex = (hash.indexOf('&' + key + '=') > 0) ? hash.indexOf('&' + key + '=') : hash.indexOf('#' + key + '=');
- var endIndex = startIndex + key.length + 2 + originalValue.length;
+ const startIndex = (hash.indexOf('&' + key + '=') > 0) ? hash.indexOf('&' + key + '=') : hash.indexOf('#' + key + '=');
+ const endIndex = startIndex + key.length + 2 + originalValue.length;
// # if it's the first, & otherwise
- var startThing = (startIndex === 0) ? '#' : '&';
+ const startThing = (startIndex === 0) ? '#' : '&';
window.location.replace(hash.substring(0, startIndex) + startThing + key + '=' + value + hash.substring(endIndex));
- } else {
+ }
+ else
+ {
// It's not present - add it
- if (hash.length === 0) {
+ if (hash.length === 0)
+ {
window.location.replace('#' + key + '=' + value);
- } else {
+ }
+ else
+ {
// Append it
window.location.replace(hash + '&' + key + '=' + value);
}
diff --git a/source/js/utils/jquery-extensions.js b/source/js/utils/jquery-extensions.js
deleted file mode 100644
index 95aaabdd..00000000
--- a/source/js/utils/jquery-extensions.js
+++ /dev/null
@@ -1,722 +0,0 @@
-/* jshint unused: false */
-
-var jQuery = require('jquery');
-
-/* istanbul ignore next This is a vendored dependency */
-/*
- * jQuery dragscrollable Plugin
- * version: 1.0 (25-Jun-2009)
- * Copyright (c) 2009 Miquel Herrera
- * http://plugins.jquery.com/project/Dragscrollable
- *
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
- *
- */
-(function ($) { // secure $ jQuery alias
-
- /**
- * Adds the ability to manage elements scroll by dragging
- * one or more of its descendant elements. Options parameter
- * allow to specifically select which inner elements will
- * respond to the drag events.
- *
- * options properties:
- * ------------------------------------------------------------------------
- * dragSelector | jquery selector to apply to each wrapped element
- * | to find which will be the dragging elements.
- * | Defaults to '>:first' which is the first child of
- * | scrollable element
- * ------------------------------------------------------------------------
- * acceptPropagatedEvent| Will the dragging element accept propagated
- * | events? default is yes, a propagated mouse event
- * | on a inner element will be accepted and processed.
- * | If set to false, only events originated on the
- * | draggable elements will be processed.
- * ------------------------------------------------------------------------
- * preventDefault | Prevents the event to propagate further effectivey
- * | dissabling other default actions. Defaults to true
- * ------------------------------------------------------------------------
- *
- * usage examples:
- *
- * To add the scroll by drag to the element id=viewport when dragging its
- * first child accepting any propagated events
- * $('#viewport').dragscrollable();
- *
- * To add the scroll by drag ability to any element div of class viewport
- * when dragging its first descendant of class dragMe responding only to
- * evcents originated on the '.dragMe' elements.
- * $('div.viewport').dragscrollable({dragSelector:'.dragMe:first',
- * acceptPropagatedEvent: false});
- *
- * Notice that some 'viewports' could be nested within others but events
- * would not interfere as acceptPropagatedEvent is set to false.
- *
- */
- $.fn.dragscrollable = function( options ){
-
- var settings = $.extend(
- {
- dragSelector:'>:first',
- acceptPropagatedEvent: true,
- preventDefault: true
- },options || {});
-
-
- var dragscroll= {
- mouseDownHandler : function(event) {
- // mousedown, left click, check propagation
- if (event.which!=1 ||
- (!event.data.acceptPropagatedEvent && event.target != this)){
- return false;
- }
-
- // Initial coordinates will be the last when dragging
- event.data.lastCoord = {left: event.clientX, top: event.clientY};
-
- $.event.add( document, "mouseup",
- dragscroll.mouseUpHandler, event.data );
- $.event.add( document, "mousemove",
- dragscroll.mouseMoveHandler, event.data );
- if (event.data.preventDefault) {
- event.preventDefault();
- return false;
- }
- },
- mouseMoveHandler : function(event) { // User is dragging
- // How much did the mouse move?
- var delta = {left: (event.clientX - event.data.lastCoord.left),
- top: (event.clientY - event.data.lastCoord.top)};
-
- // Set the scroll position relative to what ever the scroll is now
- event.data.scrollable.scrollLeft(
- event.data.scrollable.scrollLeft() - delta.left);
- event.data.scrollable.scrollTop(
- event.data.scrollable.scrollTop() - delta.top);
-
- // Save where the cursor is
- event.data.lastCoord={left: event.clientX, top: event.clientY};
- if (event.data.preventDefault) {
- event.preventDefault();
- return false;
- }
-
- },
- mouseUpHandler : function(event) { // Stop scrolling
- $.event.remove( document, "mousemove", dragscroll.mouseMoveHandler);
- $.event.remove( document, "mouseup", dragscroll.mouseUpHandler);
- if (event.data.preventDefault) {
- event.preventDefault();
- return false;
- }
- }
- };
-
- // set up the initial events
- this.each(function() {
- // closure object data for each scrollable element
- var data = {scrollable : $(this),
- acceptPropagatedEvent : settings.acceptPropagatedEvent,
- preventDefault : settings.preventDefault };
- // Set mouse initiating event on the desired descendant
- $(this).find(settings.dragSelector).
- bind('mousedown', data, dragscroll.mouseDownHandler);
- });
- }; //end plugin dragscrollable
-
-})( jQuery ); // confine scope
-
-/* istanbul ignore next This is a vendored dependency */
-/**
- jQuery.kinetic v2.2.1
- Dave Taylor http://davetayls.me
-
- @license The MIT License (MIT)
- @preserve Copyright (c) 2012 Dave Taylor http://davetayls.me
- */
-(function ($){
- 'use strict';
-
- var ACTIVE_CLASS = 'kinetic-active';
-
- /**
- * Provides requestAnimationFrame in a cross browser way.
- * http://paulirish.com/2011/requestanimationframe-for-smart-animating/
- */
- if (!window.requestAnimationFrame){
-
- window.requestAnimationFrame = ( function (){
-
- return window.webkitRequestAnimationFrame ||
- window.mozRequestAnimationFrame ||
- window.oRequestAnimationFrame ||
- window.msRequestAnimationFrame ||
- function (/* function FrameRequestCallback */ callback, /* DOMElement Element */ element){
- window.setTimeout(callback, 1000 / 60);
- };
-
- }());
-
- }
-
- // add touch checker to jQuery.support
- $.support = $.support || {};
- $.extend($.support, {
- touch: 'ontouchend' in document
- });
-
-
- // KINETIC CLASS DEFINITION
- // ======================
-
- var Kinetic = function (element, settings) {
- this.settings = settings;
- this.el = element;
- this.$el = $(element);
-
- this._initElements();
-
- return this;
- };
-
- Kinetic.DATA_KEY = 'kinetic';
- Kinetic.DEFAULTS = {
- cursor: 'move',
- decelerate: true,
- triggerHardware: false,
- threshold: 0,
- y: true,
- x: true,
- slowdown: 0.9,
- maxvelocity: 40,
- throttleFPS: 60,
- invert: false,
- movingClass: {
- up: 'kinetic-moving-up',
- down: 'kinetic-moving-down',
- left: 'kinetic-moving-left',
- right: 'kinetic-moving-right'
- },
- deceleratingClass: {
- up: 'kinetic-decelerating-up',
- down: 'kinetic-decelerating-down',
- left: 'kinetic-decelerating-left',
- right: 'kinetic-decelerating-right'
- }
- };
-
-
- // Public functions
-
- Kinetic.prototype.start = function (options){
- this.settings = $.extend(this.settings, options);
- this.velocity = options.velocity || this.velocity;
- this.velocityY = options.velocityY || this.velocityY;
- this.settings.decelerate = false;
- this._move();
- };
-
- Kinetic.prototype.end = function (){
- this.settings.decelerate = true;
- };
-
- Kinetic.prototype.stop = function (){
- this.velocity = 0;
- this.velocityY = 0;
- this.settings.decelerate = true;
- if ($.isFunction(this.settings.stopped)){
- this.settings.stopped.call(this);
- }
- };
-
- Kinetic.prototype.detach = function (){
- this._detachListeners();
- this.$el
- .removeClass(ACTIVE_CLASS)
- .css('cursor', '');
- };
-
- Kinetic.prototype.attach = function (){
- if (this.$el.hasClass(ACTIVE_CLASS)) {
- return;
- }
- this._attachListeners(this.$el);
- this.$el
- .addClass(ACTIVE_CLASS)
- .css('cursor', this.settings.cursor);
- };
-
-
- // Internal functions
-
- Kinetic.prototype._initElements = function (){
- this.$el.addClass(ACTIVE_CLASS);
-
- $.extend(this, {
- xpos: null,
- prevXPos: false,
- ypos: null,
- prevYPos: false,
- mouseDown: false,
- throttleTimeout: 1000 / this.settings.throttleFPS,
- lastMove: null,
- elementFocused: null
- });
-
- this.velocity = 0;
- this.velocityY = 0;
-
- // make sure we reset everything when mouse up
- $(document)
- .mouseup($.proxy(this._resetMouse, this))
- .click($.proxy(this._resetMouse, this));
-
- this._initEvents();
-
- this.$el.css('cursor', this.settings.cursor);
-
- if (this.settings.triggerHardware){
- this.$el.css({
- '-webkit-transform': 'translate3d(0,0,0)',
- '-webkit-perspective': '1000',
- '-webkit-backface-visibility': 'hidden'
- });
- }
- };
-
- Kinetic.prototype._initEvents = function(){
- var self = this;
- this.settings.events = {
- touchStart: function (e){
- var touch;
- if (self._useTarget(e.target, e)){
- touch = e.originalEvent.touches[0];
- self.threshold = self._threshold(e.target, e);
- self._start(touch.clientX, touch.clientY);
- e.stopPropagation();
- }
- },
- touchMove: function (e){
- var touch;
- if (self.mouseDown){
- touch = e.originalEvent.touches[0];
- self._inputmove(touch.clientX, touch.clientY);
- if (e.preventDefault){
- e.preventDefault();
- }
- }
- },
- inputDown: function (e){
- if (self._useTarget(e.target, e)){
- self.threshold = self._threshold(e.target, e);
- self._start(e.clientX, e.clientY);
- self.elementFocused = e.target;
- if (e.target.nodeName === 'IMG'){
- e.preventDefault();
- }
- e.stopPropagation();
- }
- },
- inputEnd: function (e){
- if (self._useTarget(e.target, e)){
- self._end();
- self.elementFocused = null;
- if (e.preventDefault){
- e.preventDefault();
- }
- }
- },
- inputMove: function (e){
- if (self.mouseDown){
- self._inputmove(e.clientX, e.clientY);
- if (e.preventDefault){
- e.preventDefault();
- }
- }
- },
- scroll: function (e){
- if ($.isFunction(self.settings.moved)){
- self.settings.moved.call(self, self.settings);
- }
- if (e.preventDefault){
- e.preventDefault();
- }
- },
- inputClick: function (e){
- if (Math.abs(self.velocity) > 0){
- e.preventDefault();
- return false;
- }
- },
- // prevent drag and drop images in ie
- dragStart: function (e){
- if (self._useTarget(e.target, e) && self.elementFocused){
- return false;
- }
- },
- // prevent selection when dragging
- selectStart: function (e){
- if ($.isFunction(self.settings.selectStart)){
- return self.settings.selectStart.apply(self, arguments);
- } else if (self._useTarget(e.target, e)) {
- return false;
- }
- }
- };
-
- this._attachListeners(this.$el, this.settings);
-
- };
-
- Kinetic.prototype._inputmove = function (clientX, clientY){
- var $this = this.$el;
- var el = this.el;
-
- if (!this.lastMove || new Date() > new Date(this.lastMove.getTime() + this.throttleTimeout)){
- this.lastMove = new Date();
-
- if (this.mouseDown && (this.xpos || this.ypos)){
- var movedX = (clientX - this.xpos);
- var movedY = (clientY - this.ypos);
- if (this.settings.invert) {
- movedX *= -1;
- movedY *= -1;
- }
- if(this.threshold > 0){
- var moved = Math.sqrt(movedX * movedX + movedY * movedY);
- if(this.threshold > moved){
- return;
- } else {
- this.threshold = 0;
- }
- }
- if (this.elementFocused){
- $(this.elementFocused).blur();
- this.elementFocused = null;
- $this.focus();
- }
-
- this.settings.decelerate = false;
- this.velocity = this.velocityY = 0;
-
- var scrollLeft = this.scrollLeft();
- var scrollTop = this.scrollTop();
-
- this.scrollLeft(this.settings.x ? scrollLeft - movedX : scrollLeft);
- this.scrollTop(this.settings.y ? scrollTop - movedY : scrollTop);
-
- this.prevXPos = this.xpos;
- this.prevYPos = this.ypos;
- this.xpos = clientX;
- this.ypos = clientY;
-
- this._calculateVelocities();
- this._setMoveClasses(this.settings.movingClass);
-
- if ($.isFunction(this.settings.moved)){
- this.settings.moved.call(this, this.settings);
- }
- }
- }
- };
-
- Kinetic.prototype._calculateVelocities = function (){
- this.velocity = this._capVelocity(this.prevXPos - this.xpos, this.settings.maxvelocity);
- this.velocityY = this._capVelocity(this.prevYPos - this.ypos, this.settings.maxvelocity);
- if (this.settings.invert) {
- this.velocity *= -1;
- this.velocityY *= -1;
- }
- };
-
- Kinetic.prototype._end = function (){
- if (this.xpos && this.prevXPos && this.settings.decelerate === false){
- this.settings.decelerate = true;
- this._calculateVelocities();
- this.xpos = this.prevXPos = this.mouseDown = false;
- this._move();
- }
- };
-
- Kinetic.prototype._useTarget = function (target, event){
- if ($.isFunction(this.settings.filterTarget)){
- return this.settings.filterTarget.call(this, target, event) !== false;
- }
- return true;
- };
-
- Kinetic.prototype._threshold = function (target, event){
- if ($.isFunction(this.settings.threshold)){
- return this.settings.threshold.call(this, target, event);
- }
- return this.settings.threshold;
- };
-
- Kinetic.prototype._start = function (clientX, clientY){
- this.mouseDown = true;
- this.velocity = this.prevXPos = 0;
- this.velocityY = this.prevYPos = 0;
- this.xpos = clientX;
- this.ypos = clientY;
- };
-
- Kinetic.prototype._resetMouse = function (){
- this.xpos = false;
- this.ypos = false;
- this.mouseDown = false;
- };
-
- Kinetic.prototype._decelerateVelocity = function (velocity, slowdown){
- return Math.floor(Math.abs(velocity)) === 0 ? 0 // is velocity less than 1?
- : velocity * slowdown; // reduce slowdown
- };
-
- Kinetic.prototype._capVelocity = function (velocity, max){
- var newVelocity = velocity;
- if (velocity > 0){
- if (velocity > max){
- newVelocity = max;
- }
- } else {
- if (velocity < (0 - max)){
- newVelocity = (0 - max);
- }
- }
- return newVelocity;
- };
-
- Kinetic.prototype._setMoveClasses = function (classes){
- // FIXME: consider if we want to apply PL #44, this should not remove
- // classes we have not defined on the element!
- var settings = this.settings;
- var $this = this.$el;
-
- $this.removeClass(settings.movingClass.up)
- .removeClass(settings.movingClass.down)
- .removeClass(settings.movingClass.left)
- .removeClass(settings.movingClass.right)
- .removeClass(settings.deceleratingClass.up)
- .removeClass(settings.deceleratingClass.down)
- .removeClass(settings.deceleratingClass.left)
- .removeClass(settings.deceleratingClass.right);
-
- if (this.velocity > 0){
- $this.addClass(classes.right);
- }
- if (this.velocity < 0){
- $this.addClass(classes.left);
- }
- if (this.velocityY > 0){
- $this.addClass(classes.down);
- }
- if (this.velocityY < 0){
- $this.addClass(classes.up);
- }
-
- };
-
-
- // do the actual kinetic movement
- Kinetic.prototype._move = function (){
- var $scroller = this._getScroller();
- var scroller = $scroller[0];
- var self = this;
- var settings = self.settings;
-
- // set scrollLeft
- if (settings.x && scroller.scrollWidth > 0){
- this.scrollLeft(this.scrollLeft() + this.velocity);
- if (Math.abs(this.velocity) > 0){
- this.velocity = settings.decelerate ?
- self._decelerateVelocity(this.velocity, settings.slowdown) : this.velocity;
- }
- } else {
- this.velocity = 0;
- }
-
- // set scrollTop
- if (settings.y && scroller.scrollHeight > 0){
- this.scrollTop(this.scrollTop() + this.velocityY);
- if (Math.abs(this.velocityY) > 0){
- this.velocityY = settings.decelerate ?
- self._decelerateVelocity(this.velocityY, settings.slowdown) : this.velocityY;
- }
- } else {
- this.velocityY = 0;
- }
-
- self._setMoveClasses(settings.deceleratingClass);
-
- if ($.isFunction(settings.moved)){
- settings.moved.call(this, settings);
- }
-
- if (Math.abs(this.velocity) > 0 || Math.abs(this.velocityY) > 0){
- if (!this.moving) {
- this.moving = true;
- // tick for next movement
- window.requestAnimationFrame(function (){
- self.moving = false;
- self._move();
- });
- }
- } else {
- self.stop();
- }
- };
-
- // get current scroller to apply positioning to
- Kinetic.prototype._getScroller = function(){
- var $scroller = this.$el;
- if (this.$el.is('body') || this.$el.is('html')){
- $scroller = $(window);
- }
- return $scroller;
- };
-
- // set the scroll position
- Kinetic.prototype.scrollLeft = function(left){
- var $scroller = this._getScroller();
- if (typeof left === 'number'){
- $scroller.scrollLeft(left);
- this.settings.scrollLeft = left;
- } else {
- return $scroller.scrollLeft();
- }
- };
- Kinetic.prototype.scrollTop = function(top){
- var $scroller = this._getScroller();
- if (typeof top === 'number'){
- $scroller.scrollTop(top);
- this.settings.scrollTop = top;
- } else {
- return $scroller.scrollTop();
- }
- };
-
- Kinetic.prototype._attachListeners = function (){
- var $this = this.$el;
- var settings = this.settings;
-
- if ($.support.touch){
- $this
- .bind('touchstart', settings.events.touchStart)
- .bind('touchend', settings.events.inputEnd)
- .bind('touchmove', settings.events.touchMove);
- }
-
- $this
- .mousedown(settings.events.inputDown)
- .mouseup(settings.events.inputEnd)
- .mousemove(settings.events.inputMove);
-
- $this
- .click(settings.events.inputClick)
- .scroll(settings.events.scroll)
- .bind('selectstart', settings.events.selectStart)
- .bind('dragstart', settings.events.dragStart);
- };
-
- Kinetic.prototype._detachListeners = function (){
- var $this = this.$el;
- var settings = this.settings;
- if ($.support.touch){
- $this
- .unbind('touchstart', settings.events.touchStart)
- .unbind('touchend', settings.events.inputEnd)
- .unbind('touchmove', settings.events.touchMove);
- }
-
- $this
- .unbind('mousedown', settings.events.inputDown)
- .unbind('mouseup', settings.events.inputEnd)
- .unbind('mousemove', settings.events.inputMove);
-
- $this
- .unbind('click', settings.events.inputClick)
- .unbind('scroll', settings.events.scroll)
- .unbind('selectstart', settings.events.selectStart)
- .unbind('dragstart', settings.events.dragStart);
- };
-
-
- // EXPOSE KINETIC CONSTRUCTOR
- // ==========================
- $.Kinetic = Kinetic;
-
- // KINETIC PLUGIN DEFINITION
- // =======================
-
- $.fn.kinetic = function (option, callOptions) {
- return this.each(function () {
- var $this = $(this);
- var instance = $this.data(Kinetic.DATA_KEY);
- var options = $.extend({}, Kinetic.DEFAULTS, $this.data(), typeof option === 'object' && option);
-
- if (!instance) {
- $this.data(Kinetic.DATA_KEY, (instance = new Kinetic(this, options)));
- }
-
- if (typeof option === 'string') {
- instance[option](callOptions);
- }
-
- });
- };
-
-}(jQuery));
-
-/* istanbul ignore next
- We should maybe be testing this, but realistically that would mean maintaining a real fork */
-
-// jQuery.kinetic core modifications for diva.js (compatible with jQuery.kinetic 2.2.1)
-// use jQuery.kinetic for touch handlers only since we are using dragscrollable for mouse handlers
-// - (kinetic provides inertial scrolling [ease into stopped state on release] for touch events and dragscrollable
-// allows non-inertial scrolling which we like for mice)
-
-(function($)
-{
- $.Kinetic.prototype._attachListeners = function()
- {
- // attach only touch listeners
- var $this = this.$el;
- var settings = this.settings;
-
- if ($.support.touch)
- {
- $this
- .bind('touchstart', settings.events.touchStart)
- .bind('touchend', settings.events.inputEnd)
- .bind('touchmove', settings.events.touchMove);
- }
-
- $this
- .click(settings.events.inputClick)
- .scroll(settings.events.scroll)
- .bind('selectstart', settings.events.selectStart)
- .bind('dragstart', settings.events.dragStart);
- };
-
- $.Kinetic.prototype._detachListeners = function()
- {
- // detach only touch listeners
- var $this = this.$el;
- var settings = this.settings;
-
- if ($.support.touch)
- {
- $this
- .unbind('touchstart', settings.events.touchStart)
- .unbind('touchend', settings.events.inputEnd)
- .unbind('touchmove', settings.events.touchMove);
- }
-
- $this
- .unbind('click', settings.events.inputClick)
- .unbind('scroll', settings.events.scroll)
- .unbind('selectstart', settings.events.selectStart)
- .unbind('dragstart', settings.events.dragStart);
- };
-})(jQuery);
diff --git a/source/js/utils/parse-label-value.js b/source/js/utils/parse-label-value.js
new file mode 100644
index 00000000..0860cb57
--- /dev/null
+++ b/source/js/utils/parse-label-value.js
@@ -0,0 +1,34 @@
+/**
+ * Parses a v3 manifest's label/value pair from an object & array to a string
+ *
+ * @public
+ * @params {string} key - The key from which a label/value pair should be extracted.
+ * @returns {object} - The label/value pair as strings.
+ * */
+
+export default function parseLabelValue (key)
+{
+ let l = key.label;
+ let label = (typeof l === 'object') ? l[Object.keys(l)[0]][0] : l;
+
+ let v = key.value;
+ let value;
+ if (Array.isArray(v))
+ { // is array of objects
+ value = v.map(e => e[Object.keys(e)[0]]);
+ }
+ else
+ { // is object where value is possibly an array
+ value = (typeof v === 'object') ? v[Object.keys(v)[0]] : v;
+ }
+
+ if (Array.isArray(value))
+ {
+ value = value.join(', ');
+ }
+
+ return {
+ label: label,
+ value: value
+ };
+}
\ No newline at end of file
diff --git a/source/js/utils/vanilla.kinetic.js b/source/js/utils/vanilla.kinetic.js
new file mode 100644
index 00000000..38798779
--- /dev/null
+++ b/source/js/utils/vanilla.kinetic.js
@@ -0,0 +1,527 @@
+/*
+ The MIT License (MIT)
+ Copyright (c) <2011>
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is furnished
+ to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ Port to vanilla Javascript by Jacek Nowacki http://jacek-nowacki.net/
+**/
+
+(function() {
+ var _raf = window.requestAnimationFrame;
+
+ var _isTouch = 'ontouchend' in document;
+
+ // this is simple, no "deep" support
+ var _extend = function() {
+ for (var i=1; i 0 || Math.abs(self.velocityY) > 0) {
+ e.preventDefault();
+ if (e.stopPropagation) {
+ e.stopPropagation();
+ }
+ return false;
+ }
+ },
+ dragStart: function(e) {
+ if (self._useTarget(e.target, e) && self.elementFocused) {
+ if (e.preventDefault) {
+ e.preventDefault();
+ }
+ if (e.stopPropagation) {
+ e.stopPropagation();
+ }
+ return false;
+ }
+ },
+ selectStart: function(e) {
+ if (typeof self.settings.selectStart === 'function') {
+ return self.settings.selectStart.apply(self, arguments);
+ }
+ else if (self._useTarget(e.target, e)) {
+ if (e.preventDefault) {
+ e.preventDefault();
+ }
+ if (e.stopPropagation) {
+ e.stopPropagation();
+ }
+ return false;
+ }
+ }
+ };
+
+ this._attachListeners();
+ };
+
+ VanillaKinetic.prototype._inputmove = function(clientX, clientY) {
+ if (!this.lastMove || new Date() > new Date(this.lastMove.getTime() + this.throttleTimeout)) {
+ this.lastMove = new Date();
+
+ if (this.mouseDown && (this.xpos || this.ypos)) {
+ var movedX = (clientX - this.xpos);
+ var movedY = (clientY - this.ypos);
+ if (this.settings.invert) {
+ movedX *= -1;
+ movedY *= -1;
+ }
+ if (this.threshold>0) {
+ var moved = Math.sqrt(movedX*movedX + movedY*movedY);
+ if (this.threshold>moved) {
+ return;
+ }
+ else {
+ this.threshold = 0;
+ }
+ }
+ if (this.elementFocused) {
+ this.elementFocused.blur();
+ this.elementFocused = null;
+ this.el.focus();
+ }
+
+ this.settings.decelerate = false;
+ this.velocity = this.velocityY = 0;
+
+ var scrollLeft = this.scrollLeft();
+ var scrollTop = this.scrollTop();
+
+ this.scrollLeft(this.settings.x ? scrollLeft - movedX : scrollLeft);
+ this.scrollTop(this.settings.y ? scrollTop - movedY : scrollTop);
+
+ this.prevXPos = this.xpos;
+ this.prevYPos = this.ypos;
+ this.xpos = clientX;
+ this.ypos = clientY;
+
+ this._calculateVelocities();
+ this._setMoveClasses(this.settings.movingClass);
+
+ if (typeof this.settings.moved === 'function') {
+ this.settings.moved.call(this, this.settings);
+ }
+ }
+ }
+ };
+
+ VanillaKinetic.prototype._calculateVelocities = function() {
+ this.velocity = this._capVelocity(this.prevXPos - this.xpos, this.settings.maxvelocity);
+ this.velocityY = this._capVelocity(this.prevYPos - this.ypos, this.settings.maxvelocity);
+ if (this.settings.invert) {
+ this.velocity *= -1;
+ this.velocityY *= -1;
+ }
+ };
+
+ VanillaKinetic.prototype._end = function() {
+ if (this.xpos && this.prevXPos && this.settings.decelerate === false) {
+ this.settings.decelerate = true;
+ this._calculateVelocities();
+ this.xpos = this.prevXPos = this.mouseDown = false;
+ this._move();
+ }
+ };
+
+ VanillaKinetic.prototype._useTarget = function(target, event) {
+ if (typeof this.settings.filterTarget === 'function') {
+ return this.settings.filterTarget.call(this, target, event) !== false;
+ }
+ return true;
+
+ };
+
+ VanillaKinetic.prototype._threshold = function(target, event) {
+ if (typeof this.settings.threshold === 'function') {
+ return this.settings.threshold.call(this, target, event);
+ }
+ return this.settings.threshold;
+ };
+
+ VanillaKinetic.prototype._start = function(clientX, clientY) {
+ this.mouseDown = true;
+ this.velocity = this.prevXPos = 0;
+ this.velocityY = this.prevYPos = 0;
+ this.xpos = clientX;
+ this.ypos = clientY;
+ };
+
+ VanillaKinetic.prototype._resetMouse = function() {
+ this.xpos = false;
+ this.ypos = false;
+ this.mouseDown = false;
+ };
+
+ VanillaKinetic.prototype._decelerateVelocity = function(velocity, slowdown) {
+ return Math.floor(Math.abs(velocity)) === 0 ? 0 // is velocity less than 1?
+ : velocity * slowdown; // reduce slowdown
+ };
+
+ VanillaKinetic.prototype._capVelocity = function(velocity, max) {
+ var newVelocity = velocity;
+ if (velocity > 0){
+ if (velocity > max){
+ newVelocity = max;
+ }
+ } else {
+ if (velocity < (0 - max)){
+ newVelocity = (0 - max);
+ }
+ }
+ return newVelocity;
+ };
+
+ VanillaKinetic.prototype._setMoveClasses = function(classes) {
+ // The fix-me comment below is from original jQuery.kinetic project
+ // FIXME: consider if we want to apply PL #44, this should not remove
+ // classes we have not defined on the element!
+ var settings = this.settings;
+ var el = this.el;
+
+ el.classList.remove(settings.movingClass.up);
+ el.classList.remove(settings.movingClass.down);
+ el.classList.remove(settings.movingClass.left);
+ el.classList.remove(settings.movingClass.right);
+ el.classList.remove(settings.deceleratingClass.up);
+ el.classList.remove(settings.deceleratingClass.down);
+ el.classList.remove(settings.deceleratingClass.left);
+ el.classList.remove(settings.deceleratingClass.right);
+
+ if (this.velocity > 0){
+ el.classList.add(classes.right);
+ }
+ if (this.velocity < 0){
+ el.classList.add(classes.left);
+ }
+ if (this.velocityY > 0){
+ el.classList.add(classes.down);
+ }
+ if (this.velocityY < 0){
+ el.classList.add(classes.up);
+ }
+ };
+
+ VanillaKinetic.prototype._move = function() {
+ var scroller = this._getScroller();
+ var self = this;
+ var settings = this.settings;
+
+ if (settings.x && scroller.scrollWidth > 0) {
+ this.scrollLeft(this.scrollLeft() + this.velocity);
+ if (Math.abs(this.velocity) > 0) {
+ this.velocity = settings.decelerate ?
+ self._decelerateVelocity(this.velocity, settings.slowdown) : this.velocity;
+ }
+ }
+ else {
+ this.velocity = 0;
+ }
+
+ if (settings.y && scroller.scrollHeight > 0){
+ this.scrollTop(this.scrollTop() + this.velocityY);
+ if (Math.abs(this.velocityY) > 0){
+ this.velocityY = settings.decelerate ?
+ self._decelerateVelocity(this.velocityY, settings.slowdown) : this.velocityY;
+ }
+ }
+ else {
+ this.velocityY = 0;
+ }
+
+ self._setMoveClasses(settings.deceleratingClass);
+
+ if (typeof settings.moved === 'function'){
+ settings.moved.call(this, settings);
+ }
+
+ if (Math.abs(this.velocity) > 0 || Math.abs(this.velocityY) > 0){
+ if (!this.moving) {
+ this.moving = true;
+ // tick for next movement
+ _raf(function() {
+ self.moving = false;
+ self._move();
+ });
+ }
+ }
+ else {
+ self.stop();
+ }
+ };
+
+ VanillaKinetic.prototype._getScroller = function() {
+ // FIXME we may want to normalize behaviour across browsers as in original jQuery.kinetic
+ // currently this won't work correctly on all brwosers when attached to html or body element
+ return this.el;
+ };
+
+ VanillaKinetic.prototype.scrollLeft = function(left) {
+ var scroller = this._getScroller();
+ if (typeof left === 'number') {
+ scroller.scrollLeft = left;
+ this.settings.scrollLeft = left;
+ }
+ else {
+ return scroller.scrollLeft;
+ }
+ };
+
+ VanillaKinetic.prototype.scrollTop = function(top) {
+ var scroller = this._getScroller();
+ if (typeof top === 'number') {
+ scroller.scrollTop = top;
+ this.settings.scrollTop = top;
+ }
+ else {
+ return scroller.scrollTop;
+ }
+ };
+
+ VanillaKinetic.prototype._attachListeners = function() {
+ var el = this.el;
+ var settings = this.settings;
+
+ if (_isTouch) {
+ el.addEventListener('touchstart', settings.events.touchStart, false);
+ el.addEventListener('touchend', settings.events.inputEnd, false);
+ el.addEventListener('touchmove', settings.events.touchMove, false);
+ }
+
+ el.addEventListener('mousedown', settings.events.inputDown, false);
+ el.addEventListener('mouseup', settings.events.inputEnd, false);
+ el.addEventListener('mousemove', settings.events.inputMove, false);
+
+ el.addEventListener('click', settings.events.inputClick, false);
+ el.addEventListener('scroll', settings.events.scroll, false);
+ el.addEventListener('selectstart', settings.events.selectStart, false);
+ el.addEventListener('dragstart', settings.events.dragStart, false);
+ };
+
+ VanillaKinetic.prototype._detachListeners = function() {
+ var el = this.el;
+ var settings = this.settings;
+
+ if (_isTouch) {
+ el.removeEventListener('touchstart', settings.events.touchStart, false);
+ el.removeEventListener('touchend', settings.events.inputEnd, false);
+ el.removeEventListener('touchmove', settings.events.touchMove, false);
+ }
+
+ el.removeEventListener('mousedown', settings.events.inputDown, false);
+ el.removeEventListener('mouseup', settings.events.inputEnd, false);
+ el.removeEventListener('mousemove', settings.events.inputMove, false);
+
+ el.removeEventListener('click', settings.events.inputClick, false);
+ el.removeEventListener('scroll', settings.events.scroll, false);
+ el.removeEventListener('selectstart', settings.events.selectStart, false);
+ el.removeEventListener('dragstart', settings.events.dragStart, false);
+ };
+
+
+ window.VanillaKinetic = VanillaKinetic;
+})();
diff --git a/source/js/validation-runner.js b/source/js/validation-runner.js
index adac0e86..2946d20b 100644
--- a/source/js/validation-runner.js
+++ b/source/js/validation-runner.js
@@ -1,101 +1,110 @@
-var extend = require('jquery').extend;
-
-module.exports = ValidationRunner;
-
-function ValidationRunner(options)
-{
- this.whitelistedKeys = options.whitelistedKeys || [];
- this.additionalProperties = options.additionalProperties || [];
- this.validations = options.validations;
-}
-
-ValidationRunner.prototype.isValid = function (key, value, settings)
+export default class ValidationRunner
{
- // Get the validation index
- var validationIndex = null;
-
- this.validations.some(function (validation, index)
+ constructor (options)
{
- if (validation.key !== key)
- return false;
+ this.whitelistedKeys = options.whitelistedKeys || [];
+ this.additionalProperties = options.additionalProperties || [];
+ this.validations = options.validations;
+ }
- validationIndex = index;
- return true;
- });
+ isValid (key, value, settings)
+ {
+ // Get the validation index
+ let validationIndex = null;
- if (validationIndex === null)
- return true;
+ this.validations.some((validation, index) =>
+ {
+ if (validation.key !== key)
+ {
+ return false;
+ }
- // Run the validation
- var dummyChanges = {};
- dummyChanges[key] = value;
- var proxier = createSettingsProxier(settings, dummyChanges, this);
+ validationIndex = index;
+ return true;
+ });
- return !this._runValidation(validationIndex, value, proxier);
-};
+ if (validationIndex === null)
+ {
+ return true;
+ }
-ValidationRunner.prototype.validate = function (settings)
-{
- this._validateOptions({}, settings);
-};
+ // Run the validation
+ const dummyChanges = {};
+ dummyChanges[key] = value;
+ const proxier = createSettingsProxier(settings, dummyChanges, this);
-ValidationRunner.prototype.getValidatedOptions = function (settings, options)
-{
- var cloned = extend({}, options);
- this._validateOptions(settings, cloned);
- return cloned;
-};
+ return !this._runValidation(validationIndex, value, proxier);
+ }
-ValidationRunner.prototype._validateOptions = function (settings, options)
-{
- var settingsProxier = createSettingsProxier(settings, options, this);
- this._applyValidations(options, settingsProxier);
-};
+ validate (settings)
+ {
+ this._validateOptions({}, settings);
+ }
-ValidationRunner.prototype._applyValidations = function (options, proxier)
-{
- this.validations.forEach(function (validation, index)
+ getValidatedOptions (settings, options)
{
- if (!options.hasOwnProperty(validation.key))
- return;
+ const cloned = Object.assign({}, options);
+ this._validateOptions(settings, cloned);
+ return cloned;
+ }
- var input = options[validation.key];
- var corrected = this._runValidation(index, input, proxier);
+ _validateOptions (settings, options)
+ {
+ const settingsProxier = createSettingsProxier(settings, options, this);
+ this._applyValidations(options, settingsProxier);
+ }
- if (corrected)
+ _applyValidations (options, proxier)
+ {
+ this.validations.forEach((validation, index) =>
{
- if (!corrected.warningSuppressed)
- emitWarning(validation.key, input, corrected.value);
+ if (!options.hasOwnProperty(validation.key))
+ {
+ return;
+ }
- options[validation.key] = corrected.value;
- }
- }, this);
-};
+ const input = options[validation.key];
+ const corrected = this._runValidation(index, input, proxier);
-ValidationRunner.prototype._runValidation = function (index, input, proxier)
-{
- var validation = this.validations[index];
+ if (corrected)
+ {
+ if (!corrected.warningSuppressed)
+ {
+ emitWarning(validation.key, input, corrected.value);
+ }
+
+ options[validation.key] = corrected.value;
+ }
+ }, this);
+ }
- proxier.index = index;
+ _runValidation (index, input, proxier)
+ {
+ const validation = this.validations[index];
- var warningSuppressed = false;
- var config = {
- suppressWarning: function ()
- {
- warningSuppressed = true;
- }
- };
+ proxier.index = index;
- var outputValue = validation.validate(input, proxier.proxy, config);
+ let warningSuppressed = false;
+ const config = {
+ suppressWarning: () =>
+ {
+ warningSuppressed = true;
+ }
+ };
- if (outputValue === undefined || outputValue === input)
- return null;
+ const outputValue = validation.validate(input, proxier.proxy, config);
- return {
- value: outputValue,
- warningSuppressed: warningSuppressed
- };
-};
+ if (outputValue === undefined || outputValue === input)
+ {
+ return null;
+ }
+
+ return {
+ value: outputValue,
+ warningSuppressed: warningSuppressed
+ };
+ }
+}
/**
* The settings proxy wraps the settings object and ensures that
@@ -106,40 +115,42 @@ ValidationRunner.prototype._runValidation = function (index, input, proxier)
* multiple validation stages and it was a lot harder to keep track
* of everything, so this was more valuable.
*/
-function createSettingsProxier(settings, options, runner)
+function createSettingsProxier (settings, options, runner)
{
- var proxier = {
+ const proxier = {
proxy: {},
index: null
};
- var lookup = lookupValue.bind(null, settings, options);
+ const lookup = lookupValue.bind(null, settings, options);
- var properties = {};
+ const properties = {};
- runner.whitelistedKeys.forEach(function (whitelisted)
+ runner.whitelistedKeys.forEach((whitelisted) =>
{
properties[whitelisted] = {
get: lookup.bind(null, whitelisted)
};
});
- runner.additionalProperties.forEach(function (additional)
+ runner.additionalProperties.forEach((additional) =>
{
properties[additional.key] = {
get: additional.get
};
});
- runner.validations.forEach(function (validation, validationIndex)
+ runner.validations.forEach( (validation, validationIndex) =>
{
properties[validation.key] = {
- get: function ()
+ get: () =>
{
if (validationIndex < proxier.index)
+ {
return lookup(validation.key);
+ }
- var currentKey = runner.validations[proxier.index].key;
+ const currentKey = runner.validations[proxier.index].key;
throw new TypeError('Cannot access setting ' + validation.key + ' while validating ' + currentKey);
}
};
@@ -150,15 +161,17 @@ function createSettingsProxier(settings, options, runner)
return proxier;
}
-function emitWarning(key, original, corrected)
+function emitWarning (key, original, corrected)
{
console.warn('Invalid value for ' + key + ': ' + original + '. Using ' + corrected + ' instead.');
}
-function lookupValue(base, extension, key)
+function lookupValue (base, extension, key)
{
if (key in extension)
+ {
return extension[key];
+ }
return base[key];
}
diff --git a/source/js/viewer-core.js b/source/js/viewer-core.js
index 0ffddf2d..0a805af3 100644
--- a/source/js/viewer-core.js
+++ b/source/js/viewer-core.js
@@ -1,31 +1,29 @@
-var $ = require('jquery');
+import { elt } from './utils/elt';
+import getScrollbarWidth from './utils/get-scrollbar-width';
+import gestureEvents from './gesture-events';
+import diva from './diva-global';
+import DocumentHandler from './document-handler';
+import GridHandler from './grid-handler';
+import PageOverlayManager from './page-overlay-manager';
+import Renderer from './renderer';
+import getPageLayouts from './page-layouts';
+import createSettingsView from './settings-view';
+import ValidationRunner from './validation-runner';
+import Viewport from './viewport';
+
+const debug = require('debug')('diva:ViewerCore');
-require('./utils/jquery-extensions');
-
-var elt = require('./utils/elt');
-var getScrollbarWidth = require('./utils/get-scrollbar-width');
-
-var gestureEvents = require('./gesture-events');
-var diva = require('./diva-global');
-var DocumentHandler = require('./document-handler');
-var GridHandler = require('./grid-handler');
-var PageOverlayManager = require('./page-overlay-manager');
-var PluginRegistry = require('./plugin-registry');
-var Renderer = require('./renderer');
-var getPageLayouts = require('./page-layouts');
-var createSettingsView = require('./settings-view');
-var ValidationRunner = require('./validation-runner');
-var Viewport = require('./viewport');
-
-var debug = require('debug')('diva:ViewerCore');
+function generateId() {
+ return generateId.counter++;
+}
+generateId.counter = 1;
-module.exports = ViewerCore;
// Define validations
-var optionsValidations = [
+const optionsValidations = [
{
key: 'goDirectlyTo',
- validate: function (value, settings)
+ validate: (value, settings) =>
{
if (value < 0 || value >= settings.manifest.pages.length)
return 0;
@@ -33,21 +31,21 @@ var optionsValidations = [
},
{
key: 'minPagesPerRow',
- validate: function (value)
+ validate: (value) =>
{
return Math.max(2, value);
}
},
{
key: 'maxPagesPerRow',
- validate: function (value, settings)
+ validate: (value, settings) =>
{
return Math.max(value, settings.minPagesPerRow);
}
},
{
key: 'pagesPerRow',
- validate: function (value, settings)
+ validate: (value, settings) =>
{
// Default to the maximum
if (value < settings.minPagesPerRow || value > settings.maxPagesPerRow)
@@ -56,7 +54,7 @@ var optionsValidations = [
},
{
key: 'maxZoomLevel',
- validate: function (value, settings, config)
+ validate: (value, settings, config) =>
{
// Changing this value isn't really an error, it just depends on the
// source manifest
@@ -68,7 +66,7 @@ var optionsValidations = [
},
{
key: 'minZoomLevel',
- validate: function (value, settings, config)
+ validate: (value, settings, config) =>
{
// Changes based on the manifest value shouldn't trigger a
// warning
@@ -84,7 +82,7 @@ var optionsValidations = [
},
{
key: 'zoomLevel',
- validate: function (value, settings, config)
+ validate: (value, settings, config) =>
{
if (value > settings.manifest.maxZoom)
{
@@ -98,215 +96,296 @@ var optionsValidations = [
}
];
-function ViewerCore(element, options, publicInstance)
+export default class ViewerCore
{
- var self = this;
- var parentObject = $(element);
-
- // Things that cannot be changed because of the way they are used by the script
- // Many of these are declared with arbitrary values that are changed later on
- var viewerState = {
- currentPageIndex: 0, // The current page in the viewport (center-most page)
- horizontalOffset: 0, // Distance from the center of the diva element to the top of the current page
- horizontalPadding: 0, // Either the fixed padding or adaptive padding
- ID: null, // The prefix of the IDs of the elements (usually 1-diva-)
- initialKeyScroll: false, // Holds the initial state of enableKeyScroll
- initialSpaceScroll: false, // Holds the initial state of enableSpaceScroll
- innerElement: null, // The native .diva-outer DOM object
- innerObject: {}, // $(settings.ID + 'inner'), for selecting the .diva-inner element
- isActiveDiva: true, // In the case that multiple diva panes exist on the same page, this should have events funneled to it.
- isScrollable: true, // Used in enable/disableScrollable public methods
- isZooming: false, // Flag to keep track of whether zooming is still in progress, for handleZoom
- loaded: false, // A flag for when everything is loaded and ready to go.
- manifest: null,
- mobileWebkit: false, // Checks if the user is on a touch device (iPad/iPod/iPhone/Android)
- numPages: 0, // Number of pages in the array
- oldZoomLevel: -1, // Holds the previous zoom level after zooming in or out
- options: options,
- outerElement: null, // The native .diva-outer DOM object
- outerObject: {}, // $(settings.ID + 'outer'), for selecting the .diva-outer element
- pageOverlays: new PageOverlayManager(),
- pageTools: [], // The plugins which are enabled as page tools
- parentObject: parentObject, // JQuery object referencing the parent element
- pendingManifestRequest: null, // Reference to the xhr request retrieving the manifest. Used to cancel the request on destroy()
- plugins: [], // Filled with the enabled plugins from the registry
- renderer: null,
- resizeTimer: -1, // Holds the ID of the timeout used when resizing the window (for clearing)
- scrollbarWidth: 0, // Set to the actual scrollbar width in init()
- selector: '', // Uses the generated ID prefix to easily select elements
- throbberTimeoutID: -1, // Holds the ID of the throbber loading timeout
- toolbar: null, // Holds an object with some toolbar-related functions
- verticalOffset: 0, // Distance from the center of the diva element to the left side of the current page
- verticalPadding: 0, // Either the fixed padding or adaptive padding
- viewHandler: null,
- viewport: null, // Object caching the viewport dimensions
- viewportElement: null,
- viewportObject: null
- };
-
- var settings = createSettingsView([options, viewerState]);
-
- // Aliases for compatibilty
- Object.defineProperties(settings, {
- // Height of the document viewer pane
- panelHeight: {
- get: function ()
- {
- return viewerState.viewport.height;
- }
- },
- // Width of the document viewer pane
- panelWidth: {
- get: function ()
- {
- return viewerState.viewport.width;
- }
- }
- });
+ constructor (element, options, publicInstance)
+ {
+ this.parentObject = element;
+ this.publicInstance = publicInstance;
+
+ // Things that cannot be changed because of the way they are used by the script
+ // Many of these are declared with arbitrary values that are changed later on
+ this.viewerState = {
+ currentPageIndices: [0], // The visible pages in the viewport
+ activePageIndex: 0, // The current 'active' page in the viewport
+ horizontalOffset: 0, // Distance from the center of the diva element to the top of the current page
+ horizontalPadding: 0, // Either the fixed padding or adaptive padding
+ ID: null, // The prefix of the IDs of the elements (usually 1-diva-)
+ initialKeyScroll: false, // Holds the initial state of enableKeyScroll
+ initialSpaceScroll: false, // Holds the initial state of enableSpaceScroll
+ innerElement: null, // The native .diva-outer DOM object
+ innerObject: {}, // document.getElementById(settings.ID + 'inner'), for selecting the .diva-inner element
+ isActiveDiva: true, // In the case that multiple diva panes exist on the same page, this should have events funneled to it.
+ isScrollable: true, // Used in enable/disableScrollable public methods
+ isZooming: false, // Flag to keep track of whether zooming is still in progress, for handleZoom
+ loaded: false, // A flag for when everything is loaded and ready to go.
+ manifest: null,
+ mobileWebkit: false, // Checks if the user is on a touch device (iPad/iPod/iPhone/Android)
+ numPages: 0, // Number of pages in the array
+ oldZoomLevel: -1, // Holds the previous zoom level after zooming in or out
+ options: options,
+ outerElement: null, // The native .diva-outer DOM object
+ outerObject: {}, // document.getElementById(settings.ID + 'outer'), for selecting the .diva-outer element
+ pageOverlays: new PageOverlayManager(),
+ pageTools: [], // The plugins which are enabled as page tools
+ parentObject: this.parentObject, // JQuery object referencing the parent element
+ pendingManifestRequest: null, // Reference to the xhr request retrieving the manifest. Used to cancel the request on destroy()
+ pluginInstances: [], // Filled with the enabled plugins from the registry
+ renderer: null,
+ resizeTimer: -1, // Holds the ID of the timeout used when resizing the window (for clearing)
+ scrollbarWidth: 0, // Set to the actual scrollbar width in init()
+ selector: '', // Uses the generated ID prefix to easily select elements
+ throbberTimeoutID: -1, // Holds the ID of the throbber loading timeout
+ toolbar: null, // Holds an object with some toolbar-related functions
+ verticalOffset: 0, // Distance from the center of the diva element to the left side of the current page
+ verticalPadding: 0, // Either the fixed padding or adaptive padding
+ viewHandler: null,
+ viewport: null, // Object caching the viewport dimensions
+ viewportElement: null,
+ viewportObject: null,
+ zoomDuration: 400
+ };
- var optionsValidator = new ValidationRunner({
- additionalProperties: [
- {
- key: 'manifest',
- get: function ()
+ this.settings = createSettingsView([options, this.viewerState]);
+
+ // Generate an ID that can be used as a prefix for all the other IDs
+ const idNumber = generateId();
+ this.viewerState.ID = 'diva-' + idNumber + '-';
+ this.viewerState.selector = this.settings.ID;
+
+ // Aliases for compatibility
+ Object.defineProperties(this.settings, {
+ // Height of the document viewer pane
+ panelHeight: {
+ get: () =>
+ {
+ return this.viewerState.viewport.height;
+ }
+ },
+ // Width of the document viewer pane
+ panelWidth: {
+ get: () =>
{
- return viewerState.manifest;
+ return this.viewerState.viewport.width;
}
}
- ],
+ });
+
+ this.optionsValidator = new ValidationRunner({
+ additionalProperties: [
+ {
+ key: 'manifest',
+ get: () =>
+ {
+ return this.viewerState.manifest;
+ }
+ }
+ ],
+
+ validations: optionsValidations
+ });
- validations: optionsValidations
- });
+ this.viewerState.scrollbarWidth = getScrollbarWidth();
- var isValidOption = function (key, value)
+ // If window.orientation is defined, then it's probably mobileWebkit
+ this.viewerState.mobileWebkit = window.orientation !== undefined;
+
+ if (options.hashParamSuffix === null)
+ {
+ // Omit the suffix from the first instance
+ if (idNumber === 1)
+ options.hashParamSuffix = '';
+ else
+ options.hashParamSuffix = idNumber + '';
+ }
+
+ // Create the inner and outer panels
+ const innerElem = elt('div', this.elemAttrs('inner', { class: 'diva-inner' }));
+ const viewportElem = elt('div', this.elemAttrs('viewport'), innerElem);
+ const outerElem = elt('div', this.elemAttrs('outer'),
+ viewportElem,
+ elt('div', this.elemAttrs('throbber'),
+ [
+ elt('div', { class: 'cube cube1' }),
+ elt('div', { class: 'cube cube2' }),
+ elt('div', { class: 'cube cube3' }),
+ elt('div', { class: 'cube cube4' }),
+ elt('div', { class: 'cube cube5' }),
+ elt('div', { class: 'cube cube6' }),
+ elt('div', { class: 'cube cube7' }),
+ elt('div', { class: 'cube cube8' }),
+ elt('div', { class: 'cube cube9' }),
+ ]
+ ));
+
+ this.viewerState.innerElement = innerElem;
+ this.viewerState.viewportElement = viewportElem;
+ this.viewerState.outerElement = outerElem;
+
+ this.viewerState.innerObject = innerElem;
+ this.viewerState.viewportObject = viewportElem;
+ this.viewerState.outerObject = outerElem;
+
+ this.settings.parentObject.append(outerElem);
+
+ this.viewerState.viewport = new Viewport(this.viewerState.viewportElement, {
+ intersectionTolerance: this.settings.viewportMargin
+ });
+
+ this.boundScrollFunction = this.scrollFunction.bind(this);
+ this.boundEscapeListener = this.escapeListener.bind(this);
+
+ // Do all the plugin initialisation
+ this.initPlugins();
+ this.handleEvents();
+
+ // Show the throbber while waiting for the manifest to load
+ this.showThrobber();
+ }
+
+ isValidOption (key, value)
{
- return optionsValidator.isValid(key, value, viewerState.options);
- };
+ return this.optionsValidator.isValid(key, value, this.viewerState.options);
+ }
- var elemAttrs = function (ident, base)
+ elemAttrs (ident, base)
{
- var attrs = {
- id: settings.ID + ident,
+ const attrs = {
+ id: this.settings.ID + ident,
class: 'diva-' + ident
};
if (base)
- return $.extend(attrs, base);
+ return Object.assign(attrs, base);
else
return attrs;
- };
+ }
- var getPageData = function (pageIndex, attribute)
+ getPageData (pageIndex, attribute)
{
- return settings.manifest.pages[pageIndex].d[settings.zoomLevel][attribute];
- };
+ return this.settings.manifest.pages[pageIndex].d[this.settings.zoomLevel][attribute];
+ }
// Reset some settings and empty the viewport
- var clearViewer = function ()
+ clearViewer ()
{
- viewerState.viewport.top = 0;
+ this.viewerState.viewport.top = 0;
// Clear all the timeouts to prevent undesired pages from loading
- clearTimeout(viewerState.resizeTimer);
- };
+ clearTimeout(this.viewerState.resizeTimer);
+ }
+
+ hasChangedOption (options, key)
+ {
+ return key in options && options[key] !== this.settings[key];
+ }
+
+ //Shortcut for closing fullscreen with the escape key
+ escapeListener (e)
+ {
+ if (e.keyCode === 27)
+ {
+ this.publicInstance.leaveFullscreenMode();
+ }
+ }
/**
* Update settings to match the specified options. Load the viewer,
* fire appropriate events for changed options.
*/
- var reloadViewer = function (newOptions)
+ reloadViewer (newOptions)
{
- var queuedEvents = [];
+ const queuedEvents = [];
- newOptions = optionsValidator.getValidatedOptions(settings, newOptions);
+ newOptions = this.optionsValidator.getValidatedOptions(this.settings, newOptions);
// Set the zoom level if valid and fire a ZoomLevelDidChange event
- if (hasChangedOption(newOptions, 'zoomLevel'))
+ if (this.hasChangedOption(newOptions, 'zoomLevel'))
{
- viewerState.oldZoomLevel = settings.zoomLevel;
- viewerState.options.zoomLevel = newOptions.zoomLevel;
+ this.viewerState.oldZoomLevel = this.settings.zoomLevel;
+ this.viewerState.options.zoomLevel = newOptions.zoomLevel;
queuedEvents.push(["ZoomLevelDidChange", newOptions.zoomLevel]);
}
// Set the pages per row if valid and fire an event
- if (hasChangedOption(newOptions, 'pagesPerRow'))
+ if (this.hasChangedOption(newOptions, 'pagesPerRow'))
{
- viewerState.options.pagesPerRow = newOptions.pagesPerRow;
+ this.viewerState.options.pagesPerRow = newOptions.pagesPerRow;
queuedEvents.push(["GridRowNumberDidChange", newOptions.pagesPerRow]);
}
// Update verticallyOriented (no event fired)
- if (hasChangedOption(newOptions, 'verticallyOriented'))
- viewerState.options.verticallyOriented = newOptions.verticallyOriented;
+ if (this.hasChangedOption(newOptions, 'verticallyOriented'))
+ this.viewerState.options.verticallyOriented = newOptions.verticallyOriented;
// Show/Hide non-paged pages
- if (hasChangedOption(newOptions, 'showNonPagedPages'))
+ if (this.hasChangedOption(newOptions, 'showNonPagedPages'))
{
- viewerState.options.showNonPagedPages = newOptions.showNonPagedPages;
+ this.viewerState.options.showNonPagedPages = newOptions.showNonPagedPages;
}
// Update page position (no event fired here)
if ('goDirectlyTo' in newOptions)
{
- viewerState.options.goDirectlyTo = newOptions.goDirectlyTo;
+ this.viewerState.options.goDirectlyTo = newOptions.goDirectlyTo;
if ('verticalOffset' in newOptions)
- viewerState.verticalOffset = newOptions.verticalOffset;
+ this.viewerState.verticalOffset = newOptions.verticalOffset;
if ('horizontalOffset' in newOptions)
- viewerState.horizontalOffset = newOptions.horizontalOffset;
+ this.viewerState.horizontalOffset = newOptions.horizontalOffset;
}
else
{
// Otherwise the default is to remain on the current page
- viewerState.options.goDirectlyTo = settings.currentPageIndex;
+ this.viewerState.options.goDirectlyTo = this.settings.activePageIndex;
}
- if (hasChangedOption(newOptions, 'inGrid') || hasChangedOption(newOptions, 'inBookLayout'))
+ if (this.hasChangedOption(newOptions, 'inGrid') || this.hasChangedOption(newOptions, 'inBookLayout'))
{
if ('inGrid' in newOptions)
- viewerState.options.inGrid = newOptions.inGrid;
+ this.viewerState.options.inGrid = newOptions.inGrid;
if ('inBookLayout' in newOptions)
- viewerState.options.inBookLayout = newOptions.inBookLayout;
+ this.viewerState.options.inBookLayout = newOptions.inBookLayout;
- queuedEvents.push(["ViewDidSwitch", settings.inGrid]);
+ queuedEvents.push(["ViewDidSwitch", this.settings.inGrid]);
}
// Note: prepareModeChange() depends on inGrid and the vertical/horizontalOffset (for now)
- if (hasChangedOption(newOptions, 'inFullscreen'))
+ if (this.hasChangedOption(newOptions, 'inFullscreen'))
{
- viewerState.options.inFullscreen = newOptions.inFullscreen;
- prepareModeChange(newOptions);
- queuedEvents.push(["ModeDidSwitch", settings.inFullscreen]);
+ this.viewerState.options.inFullscreen = newOptions.inFullscreen;
+ this.prepareModeChange(newOptions);
+ queuedEvents.push(["ModeDidSwitch", this.settings.inFullscreen]);
}
- clearViewer();
- updateViewHandlerAndRendering();
+ this.clearViewer();
+ this.updateViewHandlerAndRendering();
- if (viewerState.renderer)
+ if (this.viewerState.renderer)
{
// TODO: The usage of padding variables is still really
// messy and inconsistent
- var rendererConfig = {
- pageLayouts: getPageLayouts(settings),
- padding: getPadding(),
- maxZoomLevel: settings.inGrid ? null : viewerState.manifest.maxZoom,
- verticallyOriented: settings.verticallyOriented || settings.inGrid,
+ const rendererConfig = {
+ pageLayouts: getPageLayouts(this.settings),
+ padding: this.getPadding(),
+ maxZoomLevel: this.settings.inGrid ? null : this.viewerState.manifest.maxZoom,
+ verticallyOriented: this.settings.verticallyOriented || this.settings.inGrid,
};
- var viewportPosition = {
- zoomLevel: settings.inGrid ? null : settings.zoomLevel,
- anchorPage: settings.goDirectlyTo,
- verticalOffset: viewerState.verticalOffset,
- horizontalOffset: viewerState.horizontalOffset
+ const viewportPosition = {
+ zoomLevel: this.settings.inGrid ? null : this.settings.zoomLevel,
+ anchorPage: this.settings.goDirectlyTo,
+ verticalOffset: this.viewerState.verticalOffset,
+ horizontalOffset: this.viewerState.horizontalOffset
};
- var sourceProvider = getCurrentSourceProvider();
+ const sourceProvider = this.getCurrentSourceProvider();
if (debug.enabled)
{
- var serialized = Object.keys(rendererConfig)
+ const serialized = Object.keys(rendererConfig)
.filter(function (key)
{
// Too long
@@ -314,7 +393,7 @@ function ViewerCore(element, options, publicInstance)
})
.map(function (key)
{
- var value = rendererConfig[key];
+ const value = rendererConfig[key];
return key + ': ' + JSON.stringify(value);
})
.join(', ');
@@ -322,131 +401,130 @@ function ViewerCore(element, options, publicInstance)
debug('reload with %s', serialized);
}
- viewerState.renderer.load(rendererConfig, viewportPosition, sourceProvider);
+ this.viewerState.renderer.load(rendererConfig, viewportPosition, sourceProvider);
}
- queuedEvents.forEach(function (params)
+ queuedEvents.forEach( (params) =>
{
- publish.apply(null, params);
+ this.publish.apply(this, params);
});
return true;
- };
-
- var hasChangedOption = function (options, key)
- {
- return key in options && options[key] !== settings[key];
- };
+ }
// Handles switching in and out of fullscreen mode
- var prepareModeChange = function (options)
+ prepareModeChange (options)
{
// Toggle the classes
- var changeClass = options.inFullscreen ? 'addClass' : 'removeClass';
- viewerState.outerObject[changeClass]('diva-fullscreen');
- $('body')[changeClass]('diva-hide-scrollbar');
- settings.parentObject[changeClass]('diva-full-width');
+ const changeClass = options.inFullscreen ? 'add' : 'remove';
+ this.viewerState.outerObject.classList[changeClass]('diva-fullscreen');
+ document.body.classList[changeClass]('diva-hide-scrollbar');
+ this.settings.parentObject.classList[changeClass]('diva-full-width');
// Adjust Diva's internal panel size, keeping the old values
- var storedHeight = settings.panelHeight;
- var storedWidth = settings.panelWidth;
- viewerState.viewport.invalidate();
+ const storedHeight = this.settings.panelHeight;
+ const storedWidth = this.settings.panelWidth;
+ this.viewerState.viewport.invalidate();
// If this isn't the original load, the offsets matter, and the position isn't being changed...
- if (!viewerState.loaded && !settings.inGrid && !('verticalOffset' in options))
+ if (!this.viewerState.loaded && !this.settings.inGrid && !('verticalOffset' in options))
{
//get the updated panel size
- var newHeight = settings.panelHeight;
- var newWidth = settings.panelWidth;
+ const newHeight = this.settings.panelHeight;
+ const newWidth = this.settings.panelWidth;
//and re-center the new panel on the same point
- viewerState.verticalOffset += ((storedHeight - newHeight) / 2);
- viewerState.horizontalOffset += ((storedWidth - newWidth) / 2);
+ this.viewerState.verticalOffset += ((storedHeight - newHeight) / 2);
+ this.viewerState.horizontalOffset += ((storedWidth - newWidth) / 2);
}
//turn on/off escape key listener
if (options.inFullscreen)
- $(document).on('keyup', escapeListener);
+ document.addEventListener('keyup', this.boundEscapeListener);
else
- $(document).off('keyup', escapeListener);
- };
+ document.removeEventListener('keyup', this.boundEscapeListener);
+ }
// Update the view handler and the view rendering for the current view
- var updateViewHandlerAndRendering = function ()
+ updateViewHandlerAndRendering ()
{
- var Handler = settings.inGrid ? GridHandler : DocumentHandler;
+ const Handler = this.settings.inGrid ? GridHandler : DocumentHandler;
- if (viewerState.viewHandler && !(viewerState.viewHandler instanceof Handler))
+ if (this.viewerState.viewHandler && !(this.viewerState.viewHandler instanceof Handler))
{
- viewerState.viewHandler.destroy();
- viewerState.viewHandler = null;
+ this.viewerState.viewHandler.destroy();
+ this.viewerState.viewHandler = null;
}
- if (!viewerState.viewHandler)
- viewerState.viewHandler = new Handler(self);
+ if (!this.viewerState.viewHandler)
+ this.viewerState.viewHandler = new Handler(this);
- if (!viewerState.renderer)
- initializeRenderer();
- };
+ if (!this.viewerState.renderer)
+ this.initializeRenderer();
+ }
// TODO: This could probably be done upon ViewerCore initialization
- var initializeRenderer = function ()
+ initializeRenderer ()
{
- var compatErrors = Renderer.getCompatibilityErrors();
+ const compatErrors = Renderer.getCompatibilityErrors();
if (compatErrors)
{
- showError(compatErrors);
+ this.showError(compatErrors);
}
else
{
- var options = {
- viewport: viewerState.viewport,
- outerElement: viewerState.outerElement,
- innerElement: viewerState.innerElement
+ const options = {
+ viewport: this.viewerState.viewport,
+ outerElement: this.viewerState.outerElement,
+ innerElement: this.viewerState.innerElement
};
- var hooks = {
- onViewWillLoad: function ()
+ const hooks = {
+ onViewWillLoad: () =>
+ {
+ this.viewerState.viewHandler.onViewWillLoad();
+ },
+ onViewDidLoad: () =>
{
- viewerState.viewHandler.onViewWillLoad();
+ this.updatePageOverlays();
+ this.viewerState.viewHandler.onViewDidLoad();
},
- onViewDidLoad: function ()
+ onViewDidUpdate: (pages, targetPage) =>
{
- updatePageOverlays();
- viewerState.viewHandler.onViewDidLoad();
+ this.updatePageOverlays();
+ this.viewerState.viewHandler.onViewDidUpdate(pages, targetPage);
},
- onViewDidUpdate: function (pages, targetPage)
+ onViewDidTransition: () =>
{
- updatePageOverlays();
- viewerState.viewHandler.onViewDidUpdate(pages, targetPage);
+ this.updatePageOverlays();
},
- onViewDidTransition: function ()
+ onPageWillLoad: (pageIndex) =>
{
- updatePageOverlays();
+ this.publish('PageWillLoad', pageIndex);
},
- onPageWillLoad: function (pageIndex)
+ onZoomLevelWillChange: (zoomLevel) =>
{
- publish('PageWillLoad', pageIndex);
+ this.publish('ZoomLevelWillChange', zoomLevel);
}
};
- viewerState.renderer = new Renderer(options, hooks);
+ this.viewerState.renderer = new Renderer(options, hooks);
}
- };
+ }
- var getCurrentSourceProvider = function ()
+ getCurrentSourceProvider ()
{
- if (settings.inGrid)
+ if (this.settings.inGrid)
{
- var gridSourceProvider = {
- getAllZoomLevelsForPage: function (page)
+ const gridSourceProvider = {
+ getAllZoomLevelsForPage: (page) =>
{
return [gridSourceProvider.getBestZoomLevelForPage(page)];
},
- getBestZoomLevelForPage: function (page)
+ getBestZoomLevelForPage: (page) =>
{
- var url = settings.manifest.getPageImageURL(page.index, {
+ const url = this.settings.manifest.getPageImageURL(page.index, {
width: page.dimensions.width
});
@@ -472,24 +550,24 @@ function ViewerCore(element, options, publicInstance)
return gridSourceProvider;
}
- var tileDimens = {
- width: settings.tileWidth,
- height: settings.tileHeight
+ const tileDimensions = {
+ width: this.settings.tileWidth,
+ height: this.settings.tileHeight
};
return {
- getBestZoomLevelForPage: function (page)
+ getBestZoomLevelForPage: (page) =>
{
- return settings.manifest.getPageImageTiles(page.index, Math.ceil(settings.zoomLevel), tileDimens);
+ return this.settings.manifest.getPageImageTiles(page.index, Math.ceil(this.settings.zoomLevel), tileDimensions);
},
- getAllZoomLevelsForPage: function (page)
+ getAllZoomLevelsForPage: (page) =>
{
- var levels = [];
+ const levels = [];
+ const levelCount = this.viewerState.manifest.maxZoom;
- var levelCount = viewerState.manifest.maxZoom;
- for (var level=0; level <= levelCount; level++)
+ for (let level=0; level <= levelCount; level++)
{
- levels.push(settings.manifest.getPageImageTiles(page.index, level, tileDimens));
+ levels.push(this.settings.manifest.getPageImageTiles(page.index, level, tileDimensions));
}
levels.reverse();
@@ -497,25 +575,25 @@ function ViewerCore(element, options, publicInstance)
return levels;
}
};
- };
+ }
- var getPadding = function ()
+ getPadding ()
{
- var topPadding, leftPadding;
- var docVPadding, docHPadding;
+ let topPadding, leftPadding;
+ let docVPadding, docHPadding;
- if (settings.inGrid)
+ if (this.settings.inGrid)
{
- docVPadding = settings.fixedPadding;
+ docVPadding = this.settings.fixedPadding;
topPadding = leftPadding = docHPadding = 0;
}
else
{
- topPadding = settings.verticallyOriented ? viewerState.verticalPadding : 0;
- leftPadding = settings.verticallyOriented ? 0 : viewerState.horizontalPadding;
+ topPadding = this.settings.verticallyOriented ? this.viewerState.verticalPadding : 0;
+ leftPadding = this.settings.verticallyOriented ? 0 : this.viewerState.horizontalPadding;
- docVPadding = settings.verticallyOriented ? 0 : viewerState.verticalPadding;
- docHPadding = settings.verticallyOriented ? viewerState.horizontalPadding : 0;
+ docVPadding = this.settings.verticallyOriented ? 0 : this.viewerState.verticalPadding;
+ docHPadding = this.settings.verticallyOriented ? this.viewerState.horizontalPadding : 0;
}
return {
@@ -532,39 +610,33 @@ function ViewerCore(element, options, publicInstance)
right: 0
}
};
- };
-
- var updatePageOverlays = function ()
- {
- viewerState.pageOverlays.updateOverlays(viewerState.renderer.getRenderedPages());
- };
+ }
- //Shortcut for closing fullscreen with the escape key
- var escapeListener = function (e)
+ updatePageOverlays ()
{
- if (e.keyCode == 27)
- {
- reloadViewer({
- inFullscreen: !settings.inFullscreen
- });
- }
- };
+ this.viewerState.pageOverlays.updateOverlays(
+ this.viewerState.renderer.getRenderedPages()
+ );
+ }
// Called to handle any zoom level
- var handleZoom = function (newZoomLevel, focalPoint)
+ handleZoom (newZoomLevel, focalPoint)
{
// If the zoom level provided is invalid, return false
- if (!isValidOption('zoomLevel', newZoomLevel))
+ if (!this.isValidOption('zoomLevel', newZoomLevel))
return false;
+ // While zooming, don't update scroll offsets based on the scaled version of diva-inner
+ this.viewerState.viewportObject.removeEventListener('scroll', this.boundScrollFunction);
+
// If no focal point was given, zoom on the center of the viewport
- if (focalPoint == null)
+ if (!focalPoint)
{
- var viewport = viewerState.viewport;
- var currentRegion = viewerState.renderer.layout.getPageRegion(settings.currentPageIndex);
+ const viewport = this.viewerState.viewport;
+ const currentRegion = this.viewerState.renderer.layout.getPageRegion(this.settings.activePageIndex);
focalPoint = {
- anchorPage: settings.currentPageIndex,
+ anchorPage: this.settings.activePageIndex,
offset: {
left: (viewport.width / 2) - (currentRegion.left - viewport.left),
top: (viewport.height / 2) - (currentRegion.top - viewport.top)
@@ -572,22 +644,22 @@ function ViewerCore(element, options, publicInstance)
};
}
- var pageRegion = viewerState.renderer.layout.getPageRegion(focalPoint.anchorPage);
+ const pageRegion = this.viewerState.renderer.layout.getPageRegion(focalPoint.anchorPage);
// calculate distance from cursor coordinates to center of viewport
- var focalXToCenter = (pageRegion.left + focalPoint.offset.left) -
- (settings.viewport.left + (settings.viewport.width / 2));
- var focalYToCenter = (pageRegion.top + focalPoint.offset.top) -
- (settings.viewport.top + (settings.viewport.height / 2));
+ const focalXToCenter = (pageRegion.left + focalPoint.offset.left) -
+ (this.settings.viewport.left + (this.settings.viewport.width / 2));
+ const focalYToCenter = (pageRegion.top + focalPoint.offset.top) -
+ (this.settings.viewport.top + (this.settings.viewport.height / 2));
- function getPositionForZoomLevel(zoomLevel)
+ const getPositionForZoomLevel = function (zoomLevel, initZoom)
{
- var zoomRatio = Math.pow(2, zoomLevel - initialZoomLevel);
+ const zoomRatio = Math.pow(2, zoomLevel - initZoom);
//TODO(jeromepl): Calculate position from page top left to viewport top left
// calculate horizontal/verticalOffset: distance from viewport center to page upper left corner
- var horizontalOffset = (focalPoint.offset.left * zoomRatio) - focalXToCenter;
- var verticalOffset = (focalPoint.offset.top * zoomRatio) - focalYToCenter;
+ const horizontalOffset = (focalPoint.offset.left * zoomRatio) - focalXToCenter;
+ const verticalOffset = (focalPoint.offset.top * zoomRatio) - focalYToCenter;
return {
zoomLevel: zoomLevel,
@@ -595,45 +667,53 @@ function ViewerCore(element, options, publicInstance)
verticalOffset: verticalOffset,
horizontalOffset: horizontalOffset
};
- }
-
- var initialZoomLevel = viewerState.oldZoomLevel = settings.zoomLevel;
- viewerState.options.zoomLevel = newZoomLevel;
+ };
- var endPosition = getPositionForZoomLevel(newZoomLevel);
- viewerState.options.goDirectlyTo = endPosition.anchorPage;
- viewerState.verticalOffset = endPosition.verticalOffset;
- viewerState.horizontalOffset = endPosition.horizontalOffset;
+ this.viewerState.options.zoomLevel = newZoomLevel;
+ let initialZoomLevel = this.viewerState.oldZoomLevel;
+ this.viewerState.oldZoomLevel = this.settings.zoomLevel;
+ const endPosition = getPositionForZoomLevel(newZoomLevel, initialZoomLevel);
+ this.viewerState.options.goDirectlyTo = endPosition.anchorPage;
+ this.viewerState.verticalOffset = endPosition.verticalOffset;
+ this.viewerState.horizontalOffset = endPosition.horizontalOffset;
- viewerState.renderer.transitionViewportPosition({
- duration: 300,
+ this.viewerState.renderer.transitionViewportPosition({
+ duration: this.settings.zoomDuration,
parameters: {
zoomLevel: {
from: initialZoomLevel,
to: newZoomLevel
}
},
- getPosition: function (parameters)
+ getPosition: (parameters) =>
{
- return getPositionForZoomLevel(parameters.zoomLevel);
+ return getPositionForZoomLevel(parameters.zoomLevel, initialZoomLevel);
},
- onEnd: function (info)
+ onEnd: (info) =>
{
- viewerState.viewportObject.scroll(scrollFunction);
+ this.viewerState.viewportObject.addEventListener('scroll', this.boundScrollFunction);
if (info.interrupted)
- viewerState.oldZoomLevel = newZoomLevel;
+ this.viewerState.oldZoomLevel = newZoomLevel;
}
});
- // Update the slider
- publish("ZoomLevelDidChange", newZoomLevel);
+ // Deactivate zoom buttons while zooming
+ let zoomInButton = document.getElementById(this.settings.selector + 'zoom-in-button');
+ let zoomOutButton = document.getElementById(this.settings.selector + 'zoom-out-button');
+ zoomInButton.disabled = true;
+ zoomOutButton.disabled = true;
+ setTimeout(() =>
+ {
+ zoomInButton.disabled = false;
+ zoomOutButton.disabled = false;
+ }, this.settings.zoomDuration);
- // While zooming, don't update scroll offsets based on the scaled version of diva-inner
- viewerState.viewportObject.off('scroll');
+ // Send off the zoom level did change event.
+ this.publish("ZoomLevelDidChange", newZoomLevel);
return true;
- };
+ }
/*
Gets the Y-offset for a specific point on a specific page
@@ -643,119 +723,118 @@ function ViewerCore(element, options, publicInstance)
"center" - will center the page on the diva element
Returned value will be the distance from the center of the diva-outer element to the top of the current page for the specified anchor
*/
- var getYOffset = function (pageIndex, anchor)
+ getYOffset (pageIndex, anchor)
{
- pageIndex = (typeof(pageIndex) === "undefined" ? settings.currentPageIndex : pageIndex);
+ let pidx = (typeof(pageIndex) === "undefined" ? this.settings.activePageIndex : pageIndex);
if (anchor === "center" || anchor === "centre") //how you can tell an American coded this
{
- return parseInt(getPageData(pageIndex, "h") / 2, 10);
+ return parseInt(this.getPageData(pidx, "h") / 2, 10);
}
else if (anchor === "bottom")
{
- return parseInt(getPageData(pageIndex, "h") - settings.panelHeight / 2, 10);
+ return parseInt(this.getPageData(pidx, "h") - this.settings.panelHeight / 2, 10);
}
else
{
- return parseInt(settings.panelHeight / 2, 10);
+ return parseInt(this.settings.panelHeight / 2, 10);
}
- };
+ }
//Same as getYOffset with "left" and "right" as acceptable values instead of "top" and "bottom"
- var getXOffset = function (pageIndex, anchor)
+ getXOffset (pageIndex, anchor)
{
- pageIndex = (typeof(pageIndex) === "undefined" ? settings.currentPageIndex : pageIndex);
+ let pidx = (typeof(pageIndex) === "undefined" ? this.settings.activePageIndex : pageIndex);
if (anchor === "left")
{
- return parseInt(settings.panelWidth / 2, 10);
+ return parseInt(this.settings.panelWidth / 2, 10);
}
else if (anchor === "right")
{
- return parseInt(getPageData(pageIndex, "w") - settings.panelWidth / 2, 10);
+ return parseInt(this.getPageData(pidx, "w") - this.settings.panelWidth / 2, 10);
}
else
{
- return parseInt(getPageData(pageIndex, "w") / 2, 10);
+ return parseInt(this.getPageData(pidx, "w") / 2, 10);
}
- };
+ }
// updates panelHeight/panelWidth on resize
- var updatePanelSize = function ()
+ updatePanelSize ()
{
- viewerState.viewport.invalidate();
+ this.viewerState.viewport.invalidate();
// FIXME(wabain): This should really only be called after initial load
- if (viewerState.renderer)
+ if (this.viewerState.renderer)
{
- updateOffsets();
- viewerState.renderer.goto(settings.currentPageIndex, viewerState.verticalOffset, viewerState.horizontalOffset);
+ this.updateOffsets();
+ this.viewerState.renderer.goto(this.settings.activePageIndex, this.viewerState.verticalOffset, this.viewerState.horizontalOffset);
}
return true;
- };
+ }
- var updateOffsets = function ()
+ updateOffsets ()
{
- var pageOffset = viewerState.renderer.layout.getPageToViewportCenterOffset(settings.currentPageIndex, viewerState.viewport);
+ const pageOffset = this.viewerState.renderer.layout.getPageToViewportCenterOffset(this.settings.activePageIndex, this.viewerState.viewport);
if (pageOffset)
{
- viewerState.horizontalOffset = pageOffset.x;
- viewerState.verticalOffset = pageOffset.y;
+ this.viewerState.horizontalOffset = pageOffset.x;
+ this.viewerState.verticalOffset = pageOffset.y;
}
- };
+ }
// Bind mouse events (drag to scroll, double-click)
- var bindMouseEvents = function()
+ bindMouseEvents ()
{
- // Set drag scroll on first descendant of class dragger on both selected elements
- viewerState.viewportObject.dragscrollable({dragSelector: '.diva-dragger', acceptPropagatedEvent: true});
- viewerState.innerObject.dragscrollable({dragSelector: '.diva-dragger', acceptPropagatedEvent: true});
+ // Set drag scroll on the viewport object
+ this.viewerState.viewportObject.classList.add('dragscroll');
- gestureEvents.onDoubleClick(viewerState.viewportObject, function (event, coords)
+ gestureEvents.onDoubleClick(this.viewerState.viewportObject, (event, coords) =>
{
debug('Double click at %s, %s', coords.left, coords.top);
- viewerState.viewHandler.onDoubleClick(event, coords);
+ this.viewerState.viewHandler.onDoubleClick(event, coords);
});
- };
+ }
- var onResize = function()
+ onResize ()
{
- updatePanelSize();
+ this.updatePanelSize();
// Cancel any previously-set resize timeouts
- clearTimeout(viewerState.resizeTimer);
+ clearTimeout(this.viewerState.resizeTimer);
- viewerState.resizeTimer = setTimeout(function ()
+ this.viewerState.resizeTimer = setTimeout( () =>
{
- var pageOffset = viewerState.renderer.layout.getPageToViewportCenterOffset(settings.currentPageIndex, viewerState.viewport);
+ const pageOffset = this.viewerState.renderer.layout.getPageToViewportCenterOffset(this.settings.activePageIndex, this.viewerState.viewport);
if (pageOffset)
{
- reloadViewer({
- goDirectlyTo: settings.currentPageIndex,
+ this.reloadViewer({
+ goDirectlyTo: this.settings.activePageIndex,
verticalOffset: pageOffset.y,
horizontalOffset: pageOffset.x
});
}
else
{
- reloadViewer({
- goDirectlyTo: settings.currentPageIndex
+ this.reloadViewer({
+ goDirectlyTo: this.settings.activePageIndex
});
}
}, 200);
- };
+ }
// Bind touch and orientation change events
- var bindTouchEvents = function()
+ bindTouchEvents ()
{
// Block the user from moving the window only if it's not integrated
- if (settings.blockMobileMove)
+ if (this.settings.blockMobileMove)
{
- $('body').bind('touchmove', function (event)
+ document.body.addEventListener('touchmove', (event) =>
{
- var e = event.originalEvent;
+ const e = event.originalEvent;
e.preventDefault();
return false;
@@ -763,106 +842,94 @@ function ViewerCore(element, options, publicInstance)
}
// Touch events for swiping in the viewport to scroll pages
- viewerState.viewportObject.kinetic({
- triggerHardware: true
- });
+ // this.viewerState.viewportObject.addEventListener('scroll', this.scrollFunction.bind(this));
- gestureEvents.onPinch(viewerState.viewportObject, function (event, coords, start, end)
+ gestureEvents.onPinch(this.viewerState.viewportObject, function (event, coords, start, end)
{
debug('Pinch %s at %s, %s', end - start, coords.left, coords.top);
- viewerState.viewHandler.onPinch(event, coords, start, end);
+ this.viewerState.viewHandler.onPinch(event, coords, start, end);
});
- gestureEvents.onDoubleTap(viewerState.viewportObject, function (event, coords)
+ gestureEvents.onDoubleTap(this.viewerState.viewportObject, function (event, coords)
{
debug('Double tap at %s, %s', coords.left, coords.top);
- viewerState.viewHandler.onDoubleClick(event, coords);
+ this.viewerState.viewHandler.onDoubleClick(event, coords);
});
- };
+ }
// Handle the scroll
- var scrollFunction = function ()
+ scrollFunction ()
{
- var previousTopScroll = viewerState.viewport.top;
- var previousLeftScroll = viewerState.viewport.left;
+ const previousTopScroll = this.viewerState.viewport.top;
+ const previousLeftScroll = this.viewerState.viewport.left;
- var direction;
+ let direction;
- viewerState.viewport.invalidate();
+ this.viewerState.viewport.invalidate();
- var newScrollTop = viewerState.viewport.top;
- var newScrollLeft = viewerState.viewport.left;
+ const newScrollTop = this.viewerState.viewport.top;
+ const newScrollLeft = this.viewerState.viewport.left;
- if (settings.verticallyOriented || settings.inGrid)
+ if (this.settings.verticallyOriented || this.settings.inGrid)
direction = newScrollTop - previousTopScroll;
else
direction = newScrollLeft - previousLeftScroll;
- //give adjust the direction we care about
- viewerState.renderer.adjust(direction);
+ this.viewerState.renderer.adjust();
- var primaryScroll = (settings.verticallyOriented || settings.inGrid) ? newScrollTop : newScrollLeft;
+ const primaryScroll = (this.settings.verticallyOriented || this.settings.inGrid) ? newScrollTop : newScrollLeft;
- publish("ViewerDidScroll", primaryScroll);
+ this.publish("ViewerDidScroll", primaryScroll);
if (direction > 0)
{
- publish("ViewerDidScrollDown", primaryScroll);
+ this.publish("ViewerDidScrollDown", primaryScroll);
}
else if (direction < 0)
{
- publish("ViewerDidScrollUp", primaryScroll);
+ this.publish("ViewerDidScrollUp", primaryScroll);
}
- updateOffsets();
- };
+ this.updateOffsets();
+ }
// Binds most of the event handlers (some more in createToolbar)
- var handleEvents = function ()
+ handleEvents ()
{
// Change the cursor for dragging
- viewerState.innerObject.mousedown(function ()
+ this.viewerState.innerObject.addEventListener('mousedown', () =>
{
- viewerState.innerObject.addClass('diva-grabbing');
+ this.viewerState.innerObject.classList.add('diva-grabbing');
});
- viewerState.innerObject.mouseup(function ()
+ this.viewerState.innerObject.addEventListener('mouseup', () =>
{
- viewerState.innerObject.removeClass('diva-grabbing');
+ this.viewerState.innerObject.classList.remove('diva-grabbing');
});
- bindMouseEvents();
-
- viewerState.viewportObject.scroll(scrollFunction);
+ this.bindMouseEvents();
+ this.viewerState.viewportObject.addEventListener('scroll', this.boundScrollFunction);
- var upArrowKey = 38,
- downArrowKey = 40,
- leftArrowKey = 37,
- rightArrowKey = 39,
- spaceKey = 32,
- pageUpKey = 33,
- pageDownKey = 34,
- homeKey = 36,
- endKey = 35;
+ const upArrowKey = 38, downArrowKey = 40, leftArrowKey = 37, rightArrowKey = 39, spaceKey = 32, pageUpKey = 33, pageDownKey = 34, homeKey = 36, endKey = 35;
// Catch the key presses in document
- $(document).on('keydown.diva', function (event)
+ document.addEventListener('keydown.diva', (event) =>
{
- if (!viewerState.isActiveDiva)
+ if (!this.viewerState.isActiveDiva)
return true;
// Space or page down - go to the next page
- if ((settings.enableSpaceScroll && !event.shiftKey && event.keyCode === spaceKey) || (settings.enableKeyScroll && event.keyCode === pageDownKey))
+ if ((this.settings.enableSpaceScroll && !event.shiftKey && event.keyCode === spaceKey) || (this.settings.enableKeyScroll && event.keyCode === pageDownKey))
{
- viewerState.viewport.top += settings.panelHeight;
+ this.viewerState.viewport.top += this.settings.panelHeight;
return false;
}
- else if (!settings.enableSpaceScroll && event.keyCode === spaceKey)
+ else if (!this.settings.enableSpaceScroll && event.keyCode === spaceKey)
{
event.preventDefault();
}
- if (settings.enableKeyScroll)
+ if (this.settings.enableKeyScroll)
{
// Don't steal keyboard shortcuts (metaKey = command [OS X], super [Win/Linux])
if (event.shiftKey || event.ctrlKey || event.metaKey)
@@ -872,41 +939,41 @@ function ViewerCore(element, options, publicInstance)
{
case pageUpKey:
// Page up - go to the previous page
- viewerState.viewport.top -= settings.panelHeight;
+ this.viewerState.viewport.top -= this.settings.panelHeight;
return false;
case upArrowKey:
// Up arrow - scroll up
- viewerState.viewport.top -= settings.arrowScrollAmount;
+ this.viewerState.viewport.top -= this.settings.arrowScrollAmount;
return false;
case downArrowKey:
// Down arrow - scroll down
- viewerState.viewport.top += settings.arrowScrollAmount;
+ this.viewerState.viewport.top += this.settings.arrowScrollAmount;
return false;
case leftArrowKey:
// Left arrow - scroll left
- viewerState.viewport.left -= settings.arrowScrollAmount;
+ this.viewerState.viewport.left -= this.settings.arrowScrollAmount;
return false;
case rightArrowKey:
// Right arrow - scroll right
- viewerState.viewport.left += settings.arrowScrollAmount;
+ this.viewerState.viewport.left += this.settings.arrowScrollAmount;
return false;
case homeKey:
// Home key - go to the beginning of the document
- viewerState.viewport.top = 0;
+ this.viewerState.viewport.top = 0;
return false;
case endKey:
// End key - go to the end of the document
// Count on the viewport coordinate value being normalized
- if (settings.verticallyOriented)
- viewerState.viewport.top = Infinity;
+ if (this.settings.verticallyOriented)
+ this.viewerState.viewport.top = Infinity;
else
- viewerState.viewport.left = Infinity;
+ this.viewerState.viewport.left = Infinity;
return false;
@@ -919,171 +986,169 @@ function ViewerCore(element, options, publicInstance)
diva.Events.subscribe('ViewerDidTerminate', function()
{
- $(document).off('keydown.diva');
- }, settings.ID);
+ document.removeEventListener('keydown.diva');
+ }, this.settings.ID);
- bindTouchEvents();
+ // this.bindTouchEvents();
// Handle window resizing events
- window.addEventListener('resize', onResize, false);
+ window.addEventListener('resize', this.onResize.bind(this), false);
diva.Events.subscribe('ViewerDidTerminate', function()
{
- window.removeEventListener('resize', onResize, false);
- }, settings.ID);
+ window.removeEventListener('resize', this.onResize, false);
+ }, this.settings.ID);
// Handle orientation change separately
if ('onorientationchange' in window)
{
- window.addEventListener('orientationchange', onResize, false);
+ window.addEventListener('orientationchange', this.onResize, false);
diva.Events.subscribe('ViewerDidTerminate', function()
{
- window.removeEventListener('orientationchange', onResize, false);
- }, settings.ID);
+ window.removeEventListener('orientationchange', this.onResize, false);
+ }, this.settings.ID);
}
- diva.Events.subscribe('PanelSizeDidChange', updatePanelSize, settings.ID);
+ diva.Events.subscribe('PanelSizeDidChange', this.updatePanelSize, this.settings.ID);
// Clear page and resize timeouts when the viewer is destroyed
- diva.Events.subscribe('ViewerDidTerminate', function ()
+ diva.Events.subscribe('ViewerDidTerminate', () =>
{
- if (viewerState.renderer)
- viewerState.renderer.destroy();
+ if (this.viewerState.renderer)
+ this.viewerState.renderer.destroy();
- clearTimeout(viewerState.resizeTimer);
- }, settings.ID);
- };
+ clearTimeout(this.viewerState.resizeTimer);
+ }, this.settings.ID);
+ }
- var initPlugins = function ()
+ initPlugins ()
{
- // Add all the plugins that have not been explicitly disabled to
- // settings.plugins
- PluginRegistry.getAll().forEach(function (plugin)
- {
- var pluginProperName = plugin.pluginName[0].toUpperCase() + plugin.pluginName.substring(1);
-
- if (settings['enable' + pluginProperName])
- {
- // Call the init function and check return value
- var enablePlugin = plugin.init(settings, publicInstance);
+ if (!this.settings.hasOwnProperty('plugins'))
+ return null;
- // If int returns false, consider the plugin disabled
- if (!enablePlugin)
- return;
+ this.viewerState.pluginInstances = this.settings.plugins.map( (plugin) =>
+ {
+ const p = new plugin(this);
- // Create the pageTools bar if handleClick is set to a function
- if (typeof plugin.handleClick === 'function')
- {
- viewerState.pageTools.push(plugin);
- }
+ if (p.isPageTool)
+ this.viewerState.pageTools.push(p);
- // Add it to settings.plugins so it can be used later
- settings.plugins.push(plugin);
- }
+ return p;
});
- };
+ }
- var showThrobber = function ()
+ showThrobber ()
{
- hideThrobber();
+ this.hideThrobber();
- viewerState.throbberTimeoutID = setTimeout(function ()
+ this.viewerState.throbberTimeoutID = setTimeout( () =>
{
- $(settings.selector + 'throbber').show();
- }, settings.throbberTimeout);
- };
+ let thb = document.getElementById(this.settings.selector + 'throbber');
+ if (thb) thb.style.display = 'block';
+ }, this.settings.throbberTimeout);
+ }
- var hideThrobber = function ()
+ hideThrobber ()
{
// Clear the timeout, if it hasn't executed yet
- clearTimeout(viewerState.throbberTimeoutID);
+ clearTimeout(this.viewerState.throbberTimeoutID);
+ let thb = document.getElementById(this.settings.selector + 'throbber');
// Hide the throbber if it has already executed
- $(settings.selector + 'throbber').hide();
- };
+ if (thb) thb.style.display = 'none';
+ }
- var showError = function(message)
+ showError (message)
{
- var errorElement = elt('div', elemAttrs('error'), [
- elt('button', elemAttrs('error-close', {'aria-label': 'Close dialog'})),
+ const errorElement = elt('div', this.elemAttrs('error'), [
+ elt('button', this.elemAttrs('error-close', {'aria-label': 'Close dialog'})),
elt('p',
elt('strong', 'Error')
),
elt('div', message)
]);
- viewerState.outerObject.append(errorElement);
+ this.viewerState.outerObject.appendChild(errorElement);
//bind dialog close button
- $(settings.selector + 'error-close').on('click', function()
+ document.querySelector(this.settings.selector + 'error-close').addEventListener('click', () =>
{
errorElement.parentNode.removeChild(errorElement);
});
- };
+ }
- var setManifest = function (manifest, loadOptions)
+ setManifest (manifest, loadOptions)
{
- viewerState.manifest = manifest;
+ this.viewerState.manifest = manifest;
- hideThrobber();
+ this.hideThrobber();
// Convenience value
- viewerState.numPages = settings.manifest.pages.length;
+ this.viewerState.numPages = this.settings.manifest.pages.length;
- optionsValidator.validate(viewerState.options);
+ this.optionsValidator.validate(this.viewerState.options);
- publish('NumberOfPagesDidChange', settings.numPages);
+ this.publish('NumberOfPagesDidChange', this.settings.numPages);
- if (settings.enableAutoTitle)
+ if (this.settings.enableAutoTitle)
{
- if ($(settings.selector + 'title').length)
- $(settings.selector + 'title').html(settings.manifest.itemTitle);
+ let title = document.getElementById(this.settings.selector + 'title');
+
+ if (title)
+ {
+ title.innerHTML = this.settings.manifest.itemTitle;
+ }
else
- settings.parentObject.prepend(elt('div', elemAttrs('title'), [settings.manifest.itemTitle]));
+ {
+ this.settings.parentObject.insertBefore(
+ elt('div', this.elemAttrs('title'), [this.settings.manifest.itemTitle]),
+ this.settings.parentObject.firstChild
+ );
+ }
}
// Calculate the horizontal and vertical inter-page padding based on the dimensions of the average zoom level
- if (settings.adaptivePadding > 0)
+ if (this.settings.adaptivePadding > 0)
{
- var z = Math.floor((settings.minZoomLevel + settings.maxZoomLevel) / 2);
- viewerState.horizontalPadding = parseInt(settings.manifest.getAverageWidth(z) * settings.adaptivePadding, 10);
- viewerState.verticalPadding = parseInt(settings.manifest.getAverageHeight(z) * settings.adaptivePadding, 10);
+ const z = Math.floor((this.settings.minZoomLevel + this.settings.maxZoomLevel) / 2);
+ this.viewerState.horizontalPadding = parseInt(this.settings.manifest.getAverageWidth(z) * this.settings.adaptivePadding, 10);
+ this.viewerState.verticalPadding = parseInt(this.settings.manifest.getAverageHeight(z) * this.settings.adaptivePadding, 10);
}
else
{
// It's less than or equal to 0; use fixedPadding instead
- viewerState.horizontalPadding = settings.fixedPadding;
- viewerState.verticalPadding = settings.fixedPadding;
+ this.viewerState.horizontalPadding = this.settings.fixedPadding;
+ this.viewerState.verticalPadding = this.settings.fixedPadding;
}
// Make sure the vertical padding is at least 40, if plugin icons are enabled
- if (viewerState.pageTools.length)
+ if (this.viewerState.pageTools.length)
{
- viewerState.verticalPadding = Math.max(40, viewerState.verticalPadding);
+ this.viewerState.verticalPadding = Math.max(40, this.viewerState.verticalPadding);
}
// If we detect a viewingHint of 'paged' in the manifest or sequence, enable book view by default
- if (settings.manifest.paged)
+ if (this.settings.manifest.paged)
{
- viewerState.options.inBookLayout = true;
+ this.viewerState.options.inBookLayout = true;
}
// Plugin setup hooks should be bound to the ObjectDidLoad event
- publish('ObjectDidLoad', settings);
+ this.publish('ObjectDidLoad', this.settings);
// Adjust the document panel dimensions
- updatePanelSize();
+ this.updatePanelSize();
- var needsXCoord, needsYCoord;
+ let needsXCoord, needsYCoord;
- var anchoredVertically = false;
- var anchoredHorizontally = false;
+ let anchoredVertically = false;
+ let anchoredHorizontally = false;
// NB: `==` here will check both null and undefined
if (loadOptions.goDirectlyTo == null)
{
- loadOptions.goDirectlyTo = settings.goDirectlyTo;
+ loadOptions.goDirectlyTo = this.settings.goDirectlyTo;
needsXCoord = needsYCoord = true;
}
else
@@ -1096,146 +1161,92 @@ function ViewerCore(element, options, publicInstance)
if (needsXCoord)
{
// FIXME: What if inBookLayout/verticallyOriented is changed by loadOptions?
- if (loadOptions.goDirectlyTo === 0 && settings.inBookLayout && settings.verticallyOriented)
+ if (loadOptions.goDirectlyTo === 0 && this.settings.inBookLayout && this.settings.verticallyOriented)
{
// if in book layout, center the first opening by default
- loadOptions.horizontalOffset = viewerState.horizontalPadding;
+ loadOptions.horizontalOffset = this.viewerState.horizontalPadding;
}
else
{
anchoredHorizontally = true;
- loadOptions.horizontalOffset = getXOffset(loadOptions.goDirectlyTo, "center");
+ loadOptions.horizontalOffset = this.getXOffset(loadOptions.goDirectlyTo, "center");
}
}
if (needsYCoord)
{
anchoredVertically = true;
- loadOptions.verticalOffset = getYOffset(loadOptions.goDirectlyTo, "top");
+ loadOptions.verticalOffset = this.getYOffset(loadOptions.goDirectlyTo, "top");
}
- reloadViewer(loadOptions);
+ this.reloadViewer(loadOptions);
//prep dimensions one last time now that pages have loaded
- updatePanelSize();
+ this.updatePanelSize();
// FIXME: This is a hack to ensure that the outerElement scrollbars are taken into account
- if (settings.verticallyOriented)
- viewerState.innerElement.style.minWidth = settings.panelWidth + 'px';
+ if (this.settings.verticallyOriented)
+ this.viewerState.innerElement.style.minWidth = this.settings.panelWidth + 'px';
else
- viewerState.innerElement.style.minHeight = settings.panelHeight + 'px';
+ this.viewerState.innerElement.style.minHeight = this.settings.panelHeight + 'px';
// FIXME: If the page was supposed to be positioned relative to the viewport we need to
// recalculate it to take into account the scrollbars
if (anchoredVertically || anchoredHorizontally)
{
if (anchoredVertically)
- viewerState.verticalOffset = getYOffset(settings.currentPageIndex, "top");
+ this.viewerState.verticalOffset = this.getYOffset(this.settings.activePageIndex, "top");
if (anchoredHorizontally)
- viewerState.horizontalOffset = getXOffset(settings.currentPageIndex, "center");
+ this.viewerState.horizontalOffset = this.getXOffset(this.settings.activePageIndex, "center");
- viewerState.renderer.goto(settings.currentPageIndex, viewerState.verticalOffset, viewerState.horizontalOffset);
+ this.viewerState.renderer.goto(this.settings.activePageIndex, this.viewerState.verticalOffset, this.viewerState.horizontalOffset);
}
// signal that everything should be set up and ready to go.
- viewerState.loaded = true;
-
- publish("ViewerDidLoad", settings);
- };
+ this.viewerState.loaded = true;
- var publish = function (event)
- {
- var args = Array.prototype.slice.call(arguments, 1);
- diva.Events.publish(event, args, publicInstance);
- };
+ this.publish("ViewerDidLoad", this.settings);
+ }
- var init = function ()
+ publish (event)
{
- // First figure out the width of the scrollbar in this browser
- // TODO(wabain): Cache this somewhere else
- // Only some of the plugins rely on this now
- viewerState.scrollbarWidth = getScrollbarWidth();
-
- // If window.orientation is defined, then it's probably mobileWebkit
- viewerState.mobileWebkit = window.orientation !== undefined;
-
- // Generate an ID that can be used as a prefix for all the other IDs
- var idNumber = generateId();
- viewerState.ID = 'diva-' + idNumber + '-';
- viewerState.selector = '#' + settings.ID;
-
- if (options.hashParamSuffix === null)
- {
- // Omit the suffix from the first instance
- if (idNumber === 1)
- options.hashParamSuffix = '';
- else
- options.hashParamSuffix = idNumber + '';
- }
-
- // Create the inner and outer panels
- var innerElem = elt('div', elemAttrs('inner', { class: 'diva-inner diva-dragger' }));
- var viewportElem = elt('div', elemAttrs('viewport'), innerElem);
- var outerElem = elt('div', elemAttrs('outer'),
- viewportElem,
- elt('div', elemAttrs('throbber')));
-
- viewerState.innerElement = innerElem;
- viewerState.viewportElement = viewportElem;
- viewerState.outerElement = outerElem;
-
- viewerState.innerObject = $(innerElem);
- viewerState.viewportObject = $(viewportElem);
- viewerState.outerObject = $(outerElem);
-
- settings.parentObject.append(outerElem);
-
- viewerState.viewport = new Viewport(viewerState.viewportElement, {
- intersectionTolerance: settings.viewportMargin
- });
-
- // Do all the plugin initialisation
- initPlugins();
-
- handleEvents();
-
- // Show the throbber while waiting for the manifest to load
- showThrobber();
- };
+ const args = Array.prototype.slice.call(arguments, 1);
+ diva.Events.publish(event, args, this.publicInstance);
+ }
- this.getSettings = function ()
+ getSettings ()
{
- return settings;
- };
+ return this.settings;
+ }
// Temporary accessor for the state of the viewer core
// TODO: Replace this with a more restricted view of whatever needs
// be exposed through settings for backwards compat
- this.getInternalState = function ()
+ getInternalState ()
{
- return viewerState;
- };
+ return this.viewerState;
+ }
- this.getPublicInstance = function ()
+ getPublicInstance ()
{
- return publicInstance;
- };
+ return this.publicInstance;
+ }
- this.getPageTools = function ()
+ getPageTools ()
{
- return viewerState.pageTools;
- };
+ return this.viewerState.pageTools;
+ }
- this.getCurrentLayout = function ()
+ getCurrentLayout ()
{
- return viewerState.renderer ? viewerState.renderer.layout : null;
- };
+ return this.viewerState.renderer ? this.viewerState.renderer.layout : null;
+ }
/** Get a copy of the current viewport dimensions */
- this.getViewport = function ()
+ getViewport ()
{
- var viewport = viewerState.viewport;
+ const viewport = this.viewerState.viewport;
return {
top: viewport.top,
@@ -1246,32 +1257,32 @@ function ViewerCore(element, options, publicInstance)
width: viewport.width,
height: viewport.height
};
- };
+ }
- this.addPageOverlay = function (overlay)
+ addPageOverlay (overlay)
{
- viewerState.pageOverlays.addOverlay(overlay);
- };
+ this.viewerState.pageOverlays.addOverlay(overlay);
+ }
- this.removePageOverlay = function (overlay)
+ removePageOverlay (overlay)
{
- viewerState.pageOverlays.removeOverlay(overlay);
- };
+ this.viewerState.pageOverlays.removeOverlay(overlay);
+ }
- this.getPageRegion = function (pageIndex, options)
+ getPageRegion (pageIndex, options)
{
- var layout = viewerState.renderer.layout;
- var region = layout.getPageRegion(pageIndex, options);
+ const layout = this.viewerState.renderer.layout;
+ const region = layout.getPageRegion(pageIndex, options);
if (options && options.incorporateViewport)
{
- var secondaryDim = settings.verticallyOriented ? 'width' : 'height';
+ const secondaryDim = this.settings.verticallyOriented ? 'width' : 'height';
- if (viewerState.viewport[secondaryDim] > layout.dimensions[secondaryDim])
+ if (this.viewerState.viewport[secondaryDim] > layout.dimensions[secondaryDim])
{
- var docOffset = (viewerState.viewport[secondaryDim] - layout.dimensions[secondaryDim]) / 2;
+ const docOffset = (this.viewerState.viewport[secondaryDim] - layout.dimensions[secondaryDim]) / 2;
- if (settings.verticallyOriented)
+ if (this.settings.verticallyOriented)
{
return {
top: region.top,
@@ -1295,23 +1306,23 @@ function ViewerCore(element, options, publicInstance)
}
return region;
- };
+ }
- this.getPagePositionAtViewportOffset = function (coords)
+ getPagePositionAtViewportOffset (coords)
{
- var docCoords = {
- left: coords.left + viewerState.viewport.left,
- top: coords.top + viewerState.viewport.top
+ const docCoords = {
+ left: coords.left + this.viewerState.viewport.left,
+ top: coords.top + this.viewerState.viewport.top
};
- var renderedPages = viewerState.renderer.getRenderedPages();
- var pageCount = renderedPages.length;
+ const renderedPages = this.viewerState.renderer.getRenderedPages();
+ const pageCount = renderedPages.length;
// Find the page on which the coords occur
- for (var i=0; i < pageCount; i++)
+ for (let i=0; i < pageCount; i++)
{
- var pageIndex = renderedPages[i];
- var region = viewerState.renderer.layout.getPageRegion(pageIndex);
+ const pageIndex = renderedPages[i];
+ const region = this.viewerState.renderer.layout.getPageRegion(pageIndex);
if (region.left <= docCoords.left && region.right >= docCoords.left &&
region.top <= docCoords.top && region.bottom >= docCoords.top)
@@ -1328,166 +1339,166 @@ function ViewerCore(element, options, publicInstance)
// Fall back to current page
// FIXME: Would be better to use the closest page or something
- var currentRegion = viewerState.renderer.layout.getPageRegion(settings.currentPageIndex);
+ const currentRegion = this.viewerState.renderer.layout.getPageRegion(this.settings.activePageIndex);
return {
- anchorPage: settings.currentPageIndex,
+ anchorPage: this.settings.activePageIndex,
offset: {
left: docCoords.left - currentRegion.left,
top: docCoords.top - currentRegion.top
}
};
- };
+ }
- this.setManifest = function (manifest, loadOptions)
- {
- setManifest(manifest, loadOptions || {});
- };
+ // setManifest (manifest, loadOptions)
+ // {
+ // setManifest(manifest, loadOptions || {});
+ // }
/**
* Set the current page to the given index, firing VisiblePageDidChange
*
* @param pageIndex
*/
- this.setCurrentPage = function (pageIndex)
+ setCurrentPages (activePage, visiblePages)
{
- if (viewerState.currentPageIndex !== pageIndex)
+ if (!arraysEqual(this.viewerState.currentPageIndices, visiblePages))
{
- viewerState.currentPageIndex = pageIndex;
- publish("VisiblePageDidChange", pageIndex, this.getPageName(pageIndex));
+ this.viewerState.currentPageIndices = visiblePages;
+ this.viewerState.activePageIndex = activePage;
+ this.publish("VisiblePageDidChange", visiblePages);
+
+ // Publish an event if the page we're switching to has other images.
+ if (this.viewerState.manifest.pages[activePage].otherImages.length > 0)
+ this.publish('VisiblePageHasAlternateViews', activePage);
}
- };
- this.getPageName = function (pageIndex)
+ function arraysEqual (a, b)
+ {
+ if (a.length !== b.length)
+ return false;
+
+ for (let i = 0, len = a.length; i < len; i++)
+ {
+ if (a[i] !== b[i])
+ return false;
+ }
+ return true;
+ }
+ }
+
+ getPageName (pageIndex)
{
- return viewerState.manifest.pages[pageIndex].f;
- };
+ return this.viewerState.manifest.pages[pageIndex].f;
+ }
- this.reload = function (newOptions)
+ reload (newOptions)
{
- reloadViewer(newOptions);
- };
+ this.reloadViewer(newOptions);
+ }
- this.zoom = function (zoomLevel, focalPoint)
+ zoom (zoomLevel, focalPoint)
{
- return handleZoom(zoomLevel, focalPoint);
- };
+ return this.handleZoom(zoomLevel, focalPoint);
+ }
- this.enableScrollable = function ()
+ enableScrollable ()
{
- if (!viewerState.isScrollable)
- {
- bindMouseEvents();
- viewerState.options.enableKeyScroll = viewerState.initialKeyScroll;
- viewerState.options.enableSpaceScroll = viewerState.initialSpaceScroll;
- viewerState.viewportElement.style.overflow = 'auto';
- viewerState.isScrollable = true;
+ if (!this.viewerState.isScrollable)
+ {
+ this.bindMouseEvents();
+ this.enableDragScrollable();
+ this.viewerState.options.enableKeyScroll = this.viewerState.initialKeyScroll;
+ this.viewerState.options.enableSpaceScroll = this.viewerState.initialSpaceScroll;
+ this.viewerState.viewportElement.style.overflow = 'auto';
+ this.viewerState.isScrollable = true;
}
- };
+ }
- this.disableScrollable = function ()
+ enableDragScrollable ()
{
- if (viewerState.isScrollable)
+ if (this.viewerState.viewportObject.hasAttribute('nochilddrag'))
+ this.viewerState.viewportObject.removeAttribute('nochilddrag');
+ }
+
+ disableScrollable ()
+ {
+ if (this.viewerState.isScrollable)
{
- // block dragging/double-click zooming
- if (viewerState.innerObject.hasClass('diva-dragger'))
- viewerState.innerObject.unbind('mousedown');
- viewerState.outerObject.unbind('dblclick');
- viewerState.outerObject.unbind('contextmenu');
+ // block dragging
+ this.disableDragScrollable();
+
+ // block double-click zooming
+ this.viewerState.outerObject.dblclick = null;
+ this.viewerState.outerObject.contextmenu = null;
// disable all other scrolling actions
- viewerState.viewportElement.style.overflow = 'hidden';
+ this.viewerState.viewportElement.style.overflow = 'hidden';
// block scrolling keys behavior, respecting initial scroll settings
- viewerState.initialKeyScroll = settings.enableKeyScroll;
- viewerState.initialSpaceScroll = settings.enableSpaceScroll;
- viewerState.options.enableKeyScroll = false;
- viewerState.options.enableSpaceScroll = false;
+ this.viewerState.initialKeyScroll = this.settings.enableKeyScroll;
+ this.viewerState.initialSpaceScroll = this.settings.enableSpaceScroll;
+ this.viewerState.options.enableKeyScroll = false;
+ this.viewerState.options.enableSpaceScroll = false;
- viewerState.isScrollable = false;
+ this.viewerState.isScrollable = false;
}
- };
-
- this.isValidOption = function (key, value)
- {
- return isValidOption(key, value);
- };
+ }
- this.showError = function (message)
+ disableDragScrollable ()
{
- // FIXME: Not totally sure it makes sense to always do that here
- hideThrobber();
+ if (!this.viewerState.viewportObject.hasAttribute('nochilddrag'))
+ this.viewerState.viewportObject.setAttribute('nochilddrag', "");
+ }
- var errorElement = elt('div', elemAttrs('error'), [
- elt('button', elemAttrs('error-close', {'aria-label': 'Close dialog'})),
- elt('p',
- elt('strong', 'Error')
- ),
- elt('div', message)
- ]);
+ // isValidOption (key, value)
+ // {
+ // return isValidOption(key, value);
+ // }
- viewerState.outerObject.append(errorElement);
+ // getXOffset (pageIndex, xAnchor)
+ // {
+ // return getXOffset(pageIndex, xAnchor);
+ // }
- //bind dialog close button
- $(settings.selector + 'error-close').on('click', function()
- {
- errorElement.parentNode.removeChild(errorElement);
- });
- };
+ // getYOffset (pageIndex, yAnchor)
+ // {
+ // return getYOffset(pageIndex, yAnchor);
+ // }
- this.getXOffset = function (pageIndex, xAnchor)
- {
- return getXOffset(pageIndex, xAnchor);
- };
+ // this.publish = publish;
- this.getYOffset = function (pageIndex, yAnchor)
+ clear ()
{
- return getYOffset(pageIndex, yAnchor);
- };
-
- this.publish = publish;
-
- this.clear = function ()
- {
- clearViewer();
- };
+ this.clearViewer();
+ }
- this.setPendingManifestRequest = function (pendingManifestRequest)
+ setPendingManifestRequest (pendingManifestRequest)
{
- viewerState.pendingManifestRequest = pendingManifestRequest;
- };
+ this.viewerState.pendingManifestRequest = pendingManifestRequest;
+ }
- // Destroys this instance, tells plugins to do the same (for testing)
- this.destroy = function ()
+ destroy ()
{
// Useful event to access elements in diva before they get destroyed. Used by the highlight plugin.
- publish('ViewerWillTerminate', settings);
+ this.publish('ViewerWillTerminate', this.settings);
// Cancel any pending request retrieving a manifest
- if (settings.pendingManifestRequest)
- settings.pendingManifestRequest.abort();
+ if (this.settings.pendingManifestRequest)
+ this.settings.pendingManifestRequest.abort();
// Removes the hide-scrollbar class from the body
- $('body').removeClass('diva-hide-scrollbar');
+ document.body.removeClass('diva-hide-scrollbar');
// Empty the parent container and remove any diva-related data
- settings.parentObject.parent().empty().removeData('diva');
+ this.settings.parentObject.parent().empty().removeData('diva');
// Remove any additional styling on the parent element
- settings.parentObject.parent().removeAttr('style').removeAttr('class');
+ this.settings.parentObject.parent().removeAttr('style').removeAttr('class');
- publish('ViewerDidTerminate', settings);
+ this.publish('ViewerDidTerminate', this.settings);
// Clear the Events cache
- diva.Events.unsubscribeAll(settings.ID);
- };
-
- // Call the init function when this object is created.
- init();
-}
-
-generateId.counter = 1;
-
-function generateId() {
- return generateId.counter++;
+ diva.Events.unsubscribeAll(this.settings.ID);
+ }
}
diff --git a/source/js/viewport.js b/source/js/viewport.js
index d830aea0..294255c5 100644
--- a/source/js/viewport.js
+++ b/source/js/viewport.js
@@ -1,68 +1,68 @@
-module.exports = Viewport;
-
-function Viewport(outer, options)
+export default class Viewport
{
- options = options || {};
-
- this.intersectionTolerance = options.intersectionTolerance || 0;
- this.maxExtent = options.maxExtent || 2000;
-
- this.outer = outer;
-
- this._top = this._left = this._width = this._height = this._innerDimensions = null;
+ constructor (outer, options)
+ {
+ options = options || {};
- this.invalidate();
-}
+ this.intersectionTolerance = options.intersectionTolerance || 0;
-Viewport.prototype.intersectsRegion = function (region)
-{
- return this.hasHorizontalOverlap(region) && this.hasVerticalOverlap(region);
-};
+ this.outer = outer;
-Viewport.prototype.hasVerticalOverlap = function (region)
-{
- var top = this.top - this.intersectionTolerance;
- var bottom = this.bottom + this.intersectionTolerance;
+ this._top = this._left = this._width = this._height = this._innerDimensions = null;
- return (
- fallsBetween(region.top, top, bottom) ||
- fallsBetween(region.bottom, top, bottom) ||
- (region.top <= top && region.bottom >= bottom)
- );
-};
+ this.invalidate();
+ }
-Viewport.prototype.hasHorizontalOverlap = function (region)
-{
- var left = this.left - this.intersectionTolerance;
- var right = this.right + this.intersectionTolerance;
+ intersectsRegion (region)
+ {
+ return this.hasHorizontalOverlap(region) && this.hasVerticalOverlap(region);
+ }
- return (
- fallsBetween(region.left, left, right) ||
- fallsBetween(region.right, left, right) ||
- (region.left <= left && region.right >= right)
- );
-};
+ hasVerticalOverlap (region)
+ {
+ const top = this.top - this.intersectionTolerance;
+ const bottom = this.bottom + this.intersectionTolerance;
+
+ return (
+ fallsBetween(region.top, top, bottom) ||
+ fallsBetween(region.bottom, top, bottom) ||
+ (region.top <= top && region.bottom >= bottom)
+ );
+ }
-Viewport.prototype.invalidate = function ()
-{
- // FIXME: Should this check the inner dimensions as well?
- this._width = clampMax(this.outer.clientWidth, this.maxExtent);
- this._height = clampMax(this.outer.clientHeight, this.maxExtent);
+ hasHorizontalOverlap (region)
+ {
+ const left = this.left - this.intersectionTolerance;
+ const right = this.right + this.intersectionTolerance;
+
+ return (
+ fallsBetween(region.left, left, right) ||
+ fallsBetween(region.right, left, right) ||
+ (region.left <= left && region.right >= right)
+ );
+ }
- this._top = this.outer.scrollTop;
- this._left = this.outer.scrollLeft;
-};
+ invalidate ()
+ {
+ // FIXME: Should this check the inner dimensions as well?
+ this._width = this.outer.clientWidth;
+ this._height = this.outer.clientHeight;
-Viewport.prototype.setInnerDimensions = function (dimensions)
-{
- this._innerDimensions = dimensions;
+ this._top = this.outer.scrollTop;
+ this._left = this.outer.scrollLeft;
+ }
- if (dimensions)
+ setInnerDimensions (dimensions)
{
- this._top = clamp(this._top, 0, dimensions.height - this._height);
- this._left = clamp(this._left, 0, dimensions.width - this._width);
+ this._innerDimensions = dimensions;
+
+ if (dimensions)
+ {
+ this._top = clamp(this._top, 0, dimensions.height - this._height);
+ this._left = clamp(this._left, 0, dimensions.width - this._width);
+ }
}
-};
+}
Object.defineProperties(Viewport.prototype, {
top: getCoordinateDescriptor('top', 'height'),
@@ -85,10 +85,10 @@ Object.defineProperties(Viewport.prototype, {
}
});
-function getCoordinateDescriptor(coord, associatedDimension)
+function getCoordinateDescriptor (coord, associatedDimension)
{
- var privateProp = '_' + coord;
- var source = 'scroll' + coord.charAt(0).toUpperCase() + coord.slice(1);
+ const privateProp = '_' + coord;
+ const source = 'scroll' + coord.charAt(0).toUpperCase() + coord.slice(1);
return {
get: function ()
@@ -97,11 +97,11 @@ function getCoordinateDescriptor(coord, associatedDimension)
},
set: function (newValue)
{
- var normalized;
+ let normalized;
if (this._innerDimensions)
{
- var maxAllowed = this._innerDimensions[associatedDimension] - this[associatedDimension];
+ const maxAllowed = this._innerDimensions[associatedDimension] - this[associatedDimension];
normalized = clamp(newValue, 0, maxAllowed);
}
else
@@ -114,7 +114,7 @@ function getCoordinateDescriptor(coord, associatedDimension)
};
}
-function getDimensionDescriptor(dimen)
+function getDimensionDescriptor (dimen)
{
return {
get: function ()
@@ -124,22 +124,22 @@ function getDimensionDescriptor(dimen)
};
}
-function fallsBetween(point, start, end)
+function fallsBetween (point, start, end)
{
return point >= start && point <= end;
}
-function clamp(value, min, max)
+function clamp (value, min, max)
{
return clampMin(clampMax(value, max), min);
}
-function clampMin(value, min)
+function clampMin (value, min)
{
return Math.max(value, min);
}
-function clampMax(value, max)
+function clampMax (value, max)
{
return Math.min(value, max);
}
diff --git a/source/processing/__init__.py b/source/processing/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/source/processing/generate_json.py b/source/processing/generate_json.py
deleted file mode 100644
index 1bec63a3..00000000
--- a/source/processing/generate_json.py
+++ /dev/null
@@ -1,204 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (C) 2013 by Andrew Hankinson
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-# THE SOFTWARE.
-import os
-import re
-import math
-import sys
-import json
-from optparse import OptionParser
-
-
-class GenerateJson(object):
- def __init__(self, input_directory, output_directory):
- self.input_directory = input_directory
- self.output_directory = output_directory
- self.title = os.path.basename(self.input_directory)
-
- def generate(self):
- self.__generate()
- return True
-
- def __generate(self):
- img_dir = self.input_directory
-
- files = os.listdir(img_dir)
- files.sort(key=self.__alphanum_key) # sort alphabetical, not asciibetical
- lowest_max_zoom = 0
- zoomlevels = []
- images = []
-
- for i, f in enumerate(files):
- ignore, ext = os.path.splitext(f)
- if f.startswith("."):
- continue # ignore hidden files
-
- if ext in ('.jp2', '.jpx'):
- width, height = self.__img_size_jp2(os.path.join(img_dir, f))
- elif ext in ('.tiff', '.tif'):
- width, height = self.__img_size_tiff(os.path.join(img_dir, f))
- else:
- continue # ignore anything else.
-
- max_zoom = self.__get_max_zoom_level(width, height)
- im = {
- 'mx_w': width,
- 'mx_h': height,
- 'mx_z': max_zoom,
- 'fn': f
- }
- images.append(im)
- zoomlevels.append(max_zoom)
-
- lowest_max_zoom = min(zoomlevels)
- max_ratio = min_ratio = 0
- t_wid = [0] * (lowest_max_zoom + 1)
- t_hei = [0] * (lowest_max_zoom + 1)
- mx_h = [0] * (lowest_max_zoom + 1)
- mx_w = [0] * (lowest_max_zoom + 1)
- a_wid = []
- a_hei = []
-
- pgs = []
- max_ratio = 0
- min_ratio = 100 # initialize high so min() works
-
- for im in images:
- page_data = []
-
- for j in xrange(lowest_max_zoom + 1):
- h = self.__incorporate_zoom(im['mx_h'], lowest_max_zoom - j)
- w = self.__incorporate_zoom(im['mx_w'], lowest_max_zoom - j)
- page_data.append({
- 'h': math.floor(h),
- 'w': math.floor(w)
- })
-
- t_wid[j] = t_wid[j] + w
- t_hei[j] = t_hei[j] + h
- mx_h[j] = max(h, mx_h[j])
- mx_w[j] = max(w, mx_w[j])
- ratio = float(h) / float(w)
- max_ratio = max(ratio, max_ratio)
- min_ratio = min(ratio, min_ratio)
-
- m_z = im['mx_z']
- fn = im['fn']
-
- pgs.append({
- 'd': page_data,
- 'm': m_z,
- 'f': fn
- })
-
- for j in xrange(lowest_max_zoom + 1):
- a_wid.append(t_wid[j] / float(len(images)))
- a_hei.append(t_hei[j] / float(len(images)))
-
- dims = {
- 'a_wid': a_wid,
- 'a_hei': a_hei,
- 'max_w': mx_w,
- 'max_h': mx_h,
- 'max_ratio': max_ratio,
- 'min_ratio': min_ratio,
- 't_hei': t_hei,
- 't_wid': t_wid
- }
-
- data = {
- 'item_title': self.title,
- 'dims': dims,
- 'max_zoom': lowest_max_zoom,
- 'pgs': pgs
- }
-
- # write the JSON out to a file in the output directory
- f = open(os.path.join(self.output_directory, "{0}.json".format(self.title)), 'w')
- json.dump(data, f)
- f.close()
-
- def __img_size_jp2(self, fn):
- # we implement our own header reader since all the existing
- # JPEG2000 libraries seem to read the entire image in, and they're
- # just tooooo sloooowww.
- f = open(fn, 'rb')
- d = f.read(100)
- startHeader = d.find('ihdr')
- hs = startHeader + 4
- ws = startHeader + 8
- height = ord(d[hs]) * 256 ** 3 + ord(d[hs + 1]) * 256 ** 2 + ord(d[hs + 2]) * 256 + ord(d[hs + 3])
- width = ord(d[ws]) * 256 ** 3 + ord(d[ws + 1]) * 256 ** 2 + ord(d[ws + 2]) * 256 + ord(d[ws + 3])
- f.close()
- return (width, height)
-
- def __img_size_tiff(self, fn):
- # We can use the VIPS module here for TIFF, since it can handle all the
- # ins and outs of the TIFF image format quite nicely.
-
- # if we're not dealing with TIFF, we don't need to import a non-core library.
- # Since jpeg2000 works by reading the header directly, we've made the choice to
- # import this with every call. It's not ideal, but it shouldn't be too bad.
- # If you are dealing with TIFF files and want to make a slight optimization you
- # can move this import statement to the top of this script.
- from vipsCC import VImage
- im = VImage.VImage(fn)
- size = (im.Xsize(), im.Ysize())
- del im
- return size
-
- def __get_max_zoom_level(self, width, height):
- largest_dim = max(width, height)
- zoom_levels = math.ceil(math.log((largest_dim + 1) / float(256 + 1), 2))
- return int(zoom_levels)
-
- def __incorporate_zoom(self, img_dim, zoom_diff):
- return img_dim / float(2 ** zoom_diff)
-
- def __tryint(self, s):
- try:
- return int(s)
- except:
- return s
-
- def __alphanum_key(self, s):
- """ Turn a string into a list of string and number chunks.
- "z23a" -> ["z", 23, "a"]
- """
- return [self.__tryint(c) for c in re.split('([0-9]+)', s)]
-
-
-if __name__ == "__main__":
- usage = "%prog [options] input_directory output_directory"
- parser = OptionParser(usage)
- options, args = parser.parse_args()
-
- if len(args) < 1:
- parser.print_help()
- parser.error("You must specify a directory to process.")
-
- opts = {
- 'input_directory': args[0],
- 'output_directory': args[1]
- }
-
- gen = GenerateJson(**opts)
- sys.exit(gen.generate())
diff --git a/source/processing/process.py b/source/processing/process.py
deleted file mode 100644
index 6aee84f3..00000000
--- a/source/processing/process.py
+++ /dev/null
@@ -1,231 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (C) 2011, 2012 by Wendy Liu, Andrew Hankinson
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-# THE SOFTWARE.
-
-import sys
-import os
-import re
-import tempfile
-import subprocess
-import shutil
-import generate_json
-from optparse import OptionParser
-
-"""
-This is a python script/module that will process all the images in a directory
-and try to convert them into the JPEG2000 or Pyramid TIFF image formats. You
-must have the ImageMagick "convert" executable installed to run this script.
-We assume the location of this executable to be "/usr/local/bin/convert" unless
-otherwise specified with the "-i" option/convert_location parameter.
-
-To convert files to JPEG2000, specify the "-t jpeg" option when running this
-script or set the image_type parameter to "jpeg" when creating a DivaConverter
-object. This requires the "kdu_compress" executable included with the Kakadu
-JPEG2000 library; we assume the location of this executable to be
-"/usr/local/bin/kdu_compress" unless otherwise specified with the "-k"
-option/kdu_compress_location parameter.
-
-You can download this library for free at:
-http://www.kakadusoftware.com/index.php?option=com_content&task=view&id=26&Itemid=22
-
-To convert files to Pyramid TIFF, specify the "-t tiff" option when running this
-script or set the image_type parameter to "tiff" when creating a DivaConverter
-object. This requires the "vipsCC" Python module included with an installation
-of the VIPS image processing suite. If you are installing VIPS using Homebrew
-on Mac OS X, make sure to run "brew install vips --with-imagemagick".
-
-Dependencies:
- Python (version < 3.0)
- Kakadu Command-line Utilities
- ImageMagick convert utility
-
-Usage:
- Either run it with
- python process.py [input_directory] [output_directory] [data_output_directory]
- or chmod it to executable (chmod +x process.py) and run it with
- ./process.py [input_directory] [output_directory] [data_output_directory]
-
- You can also use this as a Python module:
-
- import process
- c = DivaConverter(input_directory, output_directory, data_output_directory)
- c.convert()
-"""
-
-VALID_INPUT_EXTENSIONS = [".jpg", ".jpeg", ".tif", ".tiff", ".JPG", ".JPEG", ".TIF", ".TIFF", '.png', '.PNG']
-
-class DivaConverter(object):
- def __init__(self, input_directory, output_directory, data_output_directory, **kwargs):
- self.input_directory = os.path.abspath(input_directory)
- self.output_directory = os.path.abspath(output_directory)
- self.data_output_directory = os.path.abspath(data_output_directory)
- self.verbose = True
- self.image_type = kwargs['image_type']
- self.compression = "none"
- self.convert_location = kwargs['convert_location']
- self.kdu_compress_location = kwargs['kdu_compress_location']
-
- if not os.path.exists(self.convert_location):
- print(("You do not have the ImageMagick 'convert' executable installed at {0}.").format(self.convert_location))
- print("If this path is incorrect, please specify an alternate location using the '-i (location)' command line option for this script.")
- sys.exit(-1)
-
- if self.image_type == "tiff":
- self.extension = "tiff"
- try:
- from vipsCC import VImage
- except ImportError as e:
- print("You have specified TIFF as the output format, but do not have the VIPS Python library installed.")
- sys.exit(-1)
-
- elif self.image_type == "jpeg":
- self.extension = "jp2"
- if not os.path.exists(self.kdu_compress_location):
- print(("You have specified JP2 as the output format, but do not have the kdu_compress executable installed at {0}.").format(self.kdu_compress_location))
- print("If this path is incorrect, please specify an alternate location using the '-k (location)' command line option for this script.")
- sys.exit(-1)
-
- else:
- print("The '-t' option must either be 'tiff' for Pyramid TIFF or 'jpeg' for JPEG2000. Omitting the '-t' option will default to 'jpeg'.")
- print("Usage: process.py -t tiff input_directory output_directory data_output_directory")
- sys.exit(-1)
-
- def convert(self):
- if not os.path.isdir(self.output_directory):
- os.mkdir(self.output_directory)
-
- to_process = [os.path.join(self.input_directory, f)
- for f in os.listdir(self.input_directory) if self.__filter_fnames(f)]
-
- to_process.sort(key=self.__alphanum_key)
-
- for image in to_process:
- tdir = None
- name = os.path.basename(image)
- name, ext = os.path.splitext(name)
- tdir = tempfile.mkdtemp()
-
- input_file = os.path.join(tdir, "{0}.tiff".format(name))
- output_file = os.path.join(self.output_directory, "{0}.{1}".format(name, self.extension))
-
- if self.verbose:
- print("Using ImageMagick to pre-convert {0} to TIFF".format(image))
- subprocess.call([self.convert_location,
- "-compress", "None",
- image,
- input_file])
-
- if self.verbose:
- print("Converting {0} to {1}".format(name, self.image_type))
-
- if self.image_type == "tiff":
- self.__process_tiff(input_file, output_file)
- else:
- self.__process_jpeg2000(input_file, output_file)
-
- if self.verbose:
- print("Cleaning up")
- shutil.rmtree(tdir)
-
- if self.verbose:
- print("Done converting {0}".format(image))
-
- json_opts = {
- 'input_directory': self.output_directory,
- 'output_directory': self.data_output_directory
- }
- json_generator = generate_json.GenerateJson(**json_opts)
- json_generator.generate()
-
- return True
-
- def __process_jpeg2000(self, input_file, output_file):
- subprocess.call([self.kdu_compress_location,
- "-i", input_file,
- "-o", output_file,
- "Clevels=5",
- "Cblk={64,64}",
- "Cprecincts={256,256},{256,256},{128,128}",
- "Creversible=yes",
- "Cuse_sop=yes",
- "Corder=LRCP",
- "ORGgen_plt=yes",
- "ORGtparts=R",
- "-rate", "-,1,0.5,0.25"])
-
- def __process_tiff(self, input_file, output_file):
- from vipsCC import VImage
- vimage = VImage.VImage(input_file)
- vimage.vips2tiff('{0}:{1},tile:256x256,pyramid'.format(output_file, self.compression))
- del vimage
-
- def __filter_fnames(self, fname):
- if fname.startswith('.'):
- return False
- if fname.startswith('_'):
- return False
- if fname == "Thumbs.db":
- return False
- if os.path.splitext(fname)[-1].lower() not in VALID_INPUT_EXTENSIONS:
- return False
- return True
-
- def __tryint(self, s):
- try:
- return int(s)
- except:
- return s
-
- def __alphanum_key(self, s):
- """ Turn a string into a list of string and number chunks.
- "z23a" -> ["z", 23, "a"]
- See:
- http://www.codinghorror.com/blog/2007/12/sorting-for-humans-natural-sort-order.html
- """
- return [self.__tryint(c) for c in re.split('([0-9]+)', s)]
-
-
-if __name__ == "__main__":
- usage = "%prog [options] input_directory output_directory data_output_directory"
- parser = OptionParser(usage)
- parser.add_option("-t", "--type", action="store", default="jpeg", help="The type of images this script should produce. Options are 'jpeg' or 'tiff'.", dest="type")
- parser.add_option("-k", "--kdu-compress-location", action="store", default="/usr/local/bin/kdu_compress", help="The location of the 'kdu_compress' executable provided by the Kakadu JPEG2000 library.", dest="kdu_compress_location")
- parser.add_option("-i", "--imagemagick-convert-location", action="store", default="/usr/local/bin/convert", help="The location of the 'convert' executable provided by ImageMagick.", dest="convert_location")
- options, args = parser.parse_args()
-
- if len(args) < 3:
- print("You must specify an input, output, and data output directory.")
- print("Usage: process.py input_directory output_directory data_output_directory")
- sys.exit(-1)
-
- opts = {
- 'input_directory': args[0],
- 'output_directory': args[1],
- 'data_output_directory': args[2],
- 'kdu_compress_location': options.kdu_compress_location,
- 'convert_location': options.convert_location,
- 'image_type': options.type
- }
-
- c = DivaConverter(**opts)
- c.convert()
-
- sys.exit(0)
diff --git a/test/_setup.js b/test/_setup.js
new file mode 100644
index 00000000..d7422491
--- /dev/null
+++ b/test/_setup.js
@@ -0,0 +1,13 @@
+let expect = require('chai').expect;
+global.expect = expect;
+
+let assert = require('chai').assert;
+global.assert = assert;
+
+let wrapper = document.createElement('div');
+wrapper.id = 'parent-wrapper';
+wrapper.setAttribute('style', 'width: 984px; height: 800px');
+let div = document.createElement('div');
+div.id = 'diva-wrapper';
+wrapper.appendChild(div);
+document.body.appendChild(wrapper);
\ No newline at end of file
diff --git a/test/composite-image_test.js b/test/composite-image_test.js
new file mode 100644
index 00000000..64b97cd7
--- /dev/null
+++ b/test/composite-image_test.js
@@ -0,0 +1,94 @@
+import CompositeImage from '../source/js/composite-image';
+
+describe('Composite Image', function ()
+{
+ it('getTiles(zoomLevel) works properly', function ()
+ {
+ let tileLevels = [
+ dummyTileLevel({ zoomLevel: 2, baseRows: 1, baseCols: 1 }),
+ dummyTileLevel({ zoomLevel: 1, baseRows: 1, baseCols: 1 }),
+ dummyTileLevel({ zoomLevel: 0, baseRows: 1, baseCols: 1 })
+ ];
+
+ let composite = new CompositeImage(tileLevels);
+
+ // Load the really low-res tile
+ composite.updateWithLoadedUrls(getUrls(tileLevels[2].tiles));
+
+ assert.deepEqual(composite.getTiles(2), tileLevels[2].tiles, 'Should load available images');
+
+ let mostOfLevel1 = tileLevels[1].tiles.slice(1);
+ composite.updateWithLoadedUrls(getUrls(mostOfLevel1));
+
+ assert.deepEqual(composite.getTiles(2), [tileLevels[2].tiles[0]].concat(mostOfLevel1),
+ 'Should load lower-res tiles if not completely covered (with low-res first)');
+
+ assert.deepEqual(composite.getTiles(0), tileLevels[2].tiles,
+ 'Should prefer tiles at the specified zoomLevel, then higher levels, then lower');
+
+ composite.clear();
+ composite.updateWithLoadedUrls(getUrls(tileLevels[2].tiles));
+ let mostOfLevel0 = tileLevels[0].tiles.slice(1);
+ composite.updateWithLoadedUrls(getUrls(mostOfLevel0));
+
+ assert.deepEqual(composite.getTiles(2), [tileLevels[2].tiles[0]].concat(mostOfLevel0),
+ 'Should load lower-res tiles across multiple zoom levels if not completely covered');
+ });
+});
+
+function dummyTileLevel(options)
+{
+ let zoomLevel = options.zoomLevel,
+ baseRows = options.baseRows,
+ baseCols = options.baseCols;
+
+ let tiles = [];
+ let scaleRatio = Math.pow(2, zoomLevel);
+
+ for (let baseRow=0; baseRow < baseRows; baseRow++) {
+ for (let baseCol=0; baseCol < baseCols; baseCol++) {
+ tiles.push.apply(tiles, dummyTiles(scaleRatio, baseRow, baseCol));
+ }
+ }
+
+ return {
+ zoomLevel: zoomLevel,
+ rows: baseRows * scaleRatio,
+ cols: baseCols * scaleRatio,
+ tiles: tiles
+ };
+}
+
+function dummyTiles(scaleRatio, baseRow, baseCol)
+{
+ let tiles = [];
+
+ for (let rowOffset=0; rowOffset < scaleRatio; rowOffset++)
+ {
+ for (let colOffset=0; colOffset < scaleRatio; colOffset++)
+ {
+ let row = baseRow * scaleRatio + rowOffset;
+ let col = baseCol * scaleRatio + colOffset;
+
+ let url = 'dummy://ratio/' + scaleRatio + '/' +
+ baseRow + '[' + rowOffset + ']/' +
+ baseCol + '[' + colOffset + ']';
+
+ // FIXME: More fields
+ tiles.push({
+ url: url,
+ row: row,
+ col: col
+ });
+ }
+ }
+
+ return tiles;
+}
+
+function getUrls(tiles) {
+ return tiles.map(function (tile)
+ {
+ return tile.url;
+ });
+}
\ No newline at end of file
diff --git a/test/diva_test.js b/test/diva_test.js
new file mode 100644
index 00000000..989808a4
--- /dev/null
+++ b/test/diva_test.js
@@ -0,0 +1,43 @@
+import Diva from "../source/js/diva";
+import {
+ DivaParentElementNotFoundException,
+ ObjectDataNotSuppliedException
+} from "../source/js/exceptions";
+
+describe('Viewer', function ()
+{
+ it('should throw an exception if the parent is not found', function ()
+ {
+ let fcn = () => { new Diva('blah', {}); };
+ expect(fcn).to.throw(DivaParentElementNotFoundException);
+ });
+
+ it('should not throw an exception if the parent div is found', () =>
+ {
+ let fcn = () => { new Diva('diva-wrapper', {}); };
+ expect(fcn).to.not.throw(DivaParentElementNotFoundException);
+ });
+
+ it('should allow an element object to be passed in as a parent', () =>
+ {
+ let parent = document.createElement('div');
+ let fcn = () => { new Diva(parent, {}); };
+ expect(fcn).to.not.throw(DivaParentElementNotFoundException);
+ });
+
+ it('should throw an exception if objectData is not supplied', () =>
+ {
+ let parent = document.createElement('div');
+ let fcn = () => { new Diva(parent, {}); };
+ expect(fcn).to.throw(ObjectDataNotSuppliedException);
+ });
+
+ it('should not throw an exception if objectData is supplied', () =>
+ {
+ let parent = document.createElement('div');
+ let fcn = () => { new Diva(parent, {
+ objectData: 'https://example.com/iiif/manifest.json'
+ }); };
+ expect(fcn).to.not.throw(ObjectDataNotSuppliedException);
+ });
+});
diff --git a/test/hash-params_test.js b/test/hash-params_test.js
new file mode 100644
index 00000000..2ef18942
--- /dev/null
+++ b/test/hash-params_test.js
@@ -0,0 +1,221 @@
+import Diva from '../source/js/diva';
+
+// jQuery mimic
+let el = document.getElementById.bind(document);
+
+describe('Hash Params', function ()
+{
+ beforeEach(function ()
+ {
+ // reset event subscription so only current test is subscribed
+ Diva.Events.unsubscribeAll();
+
+ // recreate diva instance
+ let oldWrapper = document.getElementById('parent-wrapper');
+ oldWrapper.parentNode.removeChild(oldWrapper);
+ let newWrapper = document.createElement('div');
+ newWrapper.id = 'parent-wrapper';
+ newWrapper.setAttribute('style', 'width: 984px;');
+ let div = document.createElement('div');
+ div.id = 'diva-wrapper';
+ newWrapper.appendChild(div);
+ document.body.appendChild(newWrapper);
+ });
+
+ let testHashParams = function (testName, hashParams, onReadyCallback, config)
+ {
+ it(testName, function (done)
+ {
+ window.location.hash = Object.keys(hashParams).map(function (param)
+ {
+ return param + '=' + hashParams[param];
+ }).join('&');
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ hashParamSuffix: config && config.hashParamSuffix ? config.hashParamSuffix : '',
+ enableFilename: config && config.enableFilename ? config.enableFilename : ''
+ });
+
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ let scroll = {
+ left: settings.viewportElement.scrollLeft,
+ top: settings.viewportElement.scrollTop
+ };
+
+ onReadyCallback.call(this, settings, scroll);
+ done();
+ });
+ });
+ };
+
+ testHashParams('works with hashParamSuffix', {vxyz: 'g', f: 'true'}, function (settings)
+ {
+ assert.isOk(settings.inGrid, 'Should read properties with the specified suffix');
+ assert.isOk(!settings.inFullscreen, 'Should not read properties without it');
+ }, {hashParamSuffix: 'xyz'});
+
+ testHashParams("grid view (v)", {v: "g"}, function (settings)
+ {
+ assert.isOk(settings.inGrid, "inGrid setting should be true");
+ assert.strictEqual(el(settings.selector + 'view-menu').children[0].classList[0], 'diva-grid-icon', "Current toolbar view icon should be the grid icon");
+ });
+
+ testHashParams("book view (v)", {v: "b"}, function (settings)
+ {
+ assert.isOk(settings.inBookLayout, "inBookLayout setting should be true");
+ assert.strictEqual(el(settings.selector + 'view-menu').children[0].classList[0], 'diva-book-icon', "Current toolbar view icon should be the book icon");
+ assert.isOk(this.isPageInViewport(0), 'There should be some book pages');
+ });
+
+ testHashParams("invalid view parameter (v) ", {v: "a"}, function (settings)
+ {
+ assert.isFalse(settings.inBookLayout, 'Should not be in book layout');
+ assert.isFalse(settings.inGrid, 'Should also not be in grid layout');
+ });
+
+ testHashParams("fullscreen (f)", {f: "true"}, function (settings)
+ {
+ assert.isOk(settings.inFullscreen, "inFullscreen setting should be true");
+ assert.isOk(document.body.classList.contains('diva-hide-scrollbar'), "The body element should have the hide-scrollbar class");
+ });
+
+ testHashParams("view (v) = 'g' and fullscreen (f)", {v: "g", f: "true"}, function (settings)
+ {
+ assert.isOk(settings.inFullscreen, "inFullscreen setting should be true");
+ assert.isOk(settings.inGrid, "inGrid setting should be true");
+ });
+
+ testHashParams("zoom level (z) - valid value", {z: "3", f: "false"}, function (settings)
+ {
+ assert.strictEqual(settings.zoomLevel, 3, "Initial zoom level should be 3");
+ });
+
+ testHashParams("zoom level (z) - invalid value", {z: "6"}, function (settings)
+ {
+ assert.strictEqual(settings.zoomLevel, 0, "Initial zoom was invalid but >= 0, should be set to the min (0)");
+ });
+
+ testHashParams("zoom level (z) and view (v) = 'g' ", {z: "1", v: "g"}, function (settings)
+ {
+ assert.strictEqual(settings.zoomLevel, 1, "Initial zoom level should be 1");
+ assert.isOk(settings.inGrid, "Should be in grid initially");
+
+ // Now let's switch into document view and see if the zoom level is preserved
+ document.getElementsByClassName('diva-document-icon')[0].click();
+ assert.strictEqual(settings.zoomLevel, 1, "Zoom level setting should still be 1");
+ // zoom level is 0 indexed internally, so setting to 1 should display 2.00
+ assert.strictEqual(el(settings.selector + 'zoom-label').textContent, "Zoom level: 2", "Zoom buttons label should show a zoom level of 2");
+ });
+
+ testHashParams("zoom level (z) and fullscreen (f)", {z: "1", f: "true"}, function (settings)
+ {
+ assert.strictEqual(settings.zoomLevel, 1, "Initial zoom level should be 1");
+ assert.isOk(settings.inFullscreen, "Should be in fullscreen initially");
+
+ // Check that we're actually in fullscreen mode
+ assert.isOk(document.body.classList.contains('diva-hide-scrollbar'), "The body element should have the hide-scrollbar class");
+
+ // Check that the zoom level is actually 1 (second zoom)
+ assert.strictEqual(el(settings.selector + 'zoom-label').textContent, "Zoom level: 2", "Zoom buttons label should show a zoom level of 2");
+ });
+
+ testHashParams("pagesPerRow (n) - valid value", {n: "3"}, function (settings)
+ {
+ assert.strictEqual(settings.pagesPerRow, 3, "Pages per row should be 3 initially");
+ });
+
+ testHashParams("pagesPerRow (n) - invalid value", {n: "1"}, function (settings)
+ {
+ assert.strictEqual(settings.pagesPerRow, 8, "Pages per row should default to the maximum");
+ });
+
+ testHashParams("pagesPerRow (n) and view (v) = 'g'", {n: "3", v: "g"}, function (settings)
+ {
+ assert.strictEqual(settings.pagesPerRow, 3, "Pages per row should be 3 initially");
+ assert.isOk(settings.inGrid, "Should be in grid initially");
+
+ // Check that the pages per row setting is actually 3
+ assert.strictEqual(el(settings.selector + 'grid-label').textContent, "Pages per row: 3", "Grid buttons label should show 3 pages per row");
+ });
+
+ testHashParams("page filename (i) - valid value", {i: "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_003r.jp2"}, function (settings)
+ {
+ assert.strictEqual(settings.activePageIndex, 4, "The initial page should be page 5 (index of 4)");
+ }, {enableFilename: true});
+
+ testHashParams("page filename (i) - invalid value", {i: "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_000r.jp2"}, function (settings)
+ {
+ assert.strictEqual(settings.activePageIndex, 0, "The initial page should just be the first page");
+ }, {enableFilename: true});
+
+ testHashParams("page number (p) - valid value", {p: "6"}, function (settings)
+ {
+ assert.strictEqual(settings.activePageIndex, 5, "The initial page should be page 6 (index of 5)");
+ }, {enableFilename: false});
+
+ testHashParams("page number (p) - invalid value", {p: "600"}, function (settings)
+ {
+ assert.strictEqual(settings.activePageIndex, 0, "The initial page should just be the first page");
+ }, {enableFilename: false});
+
+ testHashParams("page number (p), view = 'g'", {p: "100", v: "g"}, function (settings)
+ {
+ assert.strictEqual(settings.activePageIndex, 99, "The initial page should be 100 (index of 99)");
+ assert.ok(settings.inGrid, "Should be in grid");
+ }, {enableFilename: false});
+
+ testHashParams("horizontal and vertical offsets (x, y) without page specified", {x: 100, y: 200}, function (settings, scroll)
+ {
+ assert.strictEqual(scroll.top, 0, 'y position should not change');
+ });
+
+ testHashParams("vertical offset (y) on first page - positive value", {y: "600", p: "1"}, function (settings, scroll)
+ {
+ assert.strictEqual(scroll.top, 353, "Should have scrolled 353 (600 = top of page - viewport y-center) vertically");
+ });
+
+ testHashParams("vertical offset (y) on first page - negative value", {y: "-600", p: "1"}, function (settings, scroll)
+ {
+ assert.strictEqual(scroll.top, 0, "Should not have scrolled negatively because, well, you can't");
+ });
+ testHashParams("vertical offset (y) and page number (p)", {y: 500, p: "50"}, function (settings, scroll)
+ {
+ let expectedTopScroll = 44994;
+ assert.strictEqual(settings.activePageIndex, 49, "Current page should be 50 (index of 49)");
+ assert.strictEqual(scroll.top, expectedTopScroll, "Should be heightAbovePages + 500 pixels of scroll from the top + page y-center");
+
+ // Check that the horizontal scroll hasn't been weirdly affected
+ let expectedLeftScroll = 0; // no scrollbar at this zoom level
+ assert.strictEqual(scroll.left, expectedLeftScroll, "Horizontal scroll should just center it");
+ }, {enableFilename: false, zoomLevel: 2});
+
+ testHashParams("horizontal offset (x) on first page - positive value", {x: "100", p: "1"}, function (settings, scroll)
+ {
+ // FIXME: https://github.com/DDMAL/diva.js/issues/331
+ assert.strictEqual(scroll.left, 0, "Horizontal scroll should center it + 100 pixels to the right");
+ });
+
+ testHashParams("horizontal offset (x) on first page - negative value", {x: "-100", p: "1"}, function (settings, scroll)
+ {
+ // FIXME: https://github.com/DDMAL/diva.js/issues/331
+ assert.strictEqual(scroll.left, 0, "Horizontal scroll should center it + 100 pixels to the left");
+ });
+
+ testHashParams("horizontal offset (x) and page number (p)", {x: 100, p: "50"}, function (settings, scroll)
+ {
+ // FIXME: https://github.com/DDMAL/diva.js/issues/331
+ let expectedTopScroll = 44741;
+ assert.strictEqual(scroll.top, expectedTopScroll, "vertical scroll should be just to page 50");
+ assert.strictEqual(scroll.left, 0, "Horizontal scroll should center it + 100 pixels to the right");
+ }, {enableFilename: false});
+
+ testHashParams("horizontal offset (x), vertical offset (y), page number (p)", {x: 100, y: 200, p: "50"}, function (settings, scroll)
+ {
+ // FIXME: https://github.com/DDMAL/diva.js/issues/331
+ let expectedTopScroll = 44694;
+ assert.strictEqual(scroll.top, expectedTopScroll, "vertical scroll should be to page 50 + 200 + page y-center");
+ assert.strictEqual(scroll.left, 0, "Horizontal scroll should center it + 100 pixels to the right");
+ }, {enableFilename: false});
+});
\ No newline at end of file
diff --git a/test/image-cache_test.js b/test/image-cache_test.js
new file mode 100644
index 00000000..c1bf0c86
--- /dev/null
+++ b/test/image-cache_test.js
@@ -0,0 +1,106 @@
+'use strict';
+
+import ImageCache from '../source/js/image-cache';
+
+describe('Image Cache', function ()
+{
+ it('Default max entries is 100', function ()
+ {
+ let cache = new ImageCache();
+ assert.strictEqual(cache.maxKeys, 100);
+ });
+
+ it('Evicts the least recently used entry', function ()
+ {
+ let cache = new ImageCache({ maxKeys: 2 });
+
+ let imgA = new Image();
+ let imgB = new Image();
+ let imgC = new Image();
+
+ cache.put('A', imgA);
+ cache.put('B', imgB);
+ cache.put('C', imgC);
+
+ assert.strictEqual(cache.has('A'), false, 'A evicted [has]');
+ assert.strictEqual(cache.has('B'), true, 'B remains [has]');
+ assert.strictEqual(cache.has('C'), true, 'C remains [has]');
+
+ assert.strictEqual(cache.get('A'), null, 'A evicted [get]');
+ assert.strictEqual(cache.get('B'), imgB, 'B remains [get]');
+ assert.strictEqual(cache.get('C'), imgC, 'C remains [get]');
+
+ cache.put('A', imgA);
+ assert.strictEqual(cache.has('A'), true, 'A restored [has v2]');
+ assert.strictEqual(cache.has('B'), false, 'B evicted [has v2]');
+ assert.strictEqual(cache.has('C'), true, 'C remains [has v2]');
+ });
+
+ it('Put overwrites existing entries and bumps their LRU position', function ()
+ {
+ let cache = new ImageCache({ maxKeys: 2 });
+
+ let imgA = new Image();
+ let imgA2 = new Image();
+ let imgB = new Image();
+ let imgC = new Image();
+
+ cache.put('A', imgA);
+ cache.put('B', imgB);
+ cache.put('A', imgA2);
+ cache.put('C', imgC);
+
+ assert.strictEqual(cache.get('A'), imgA2, 'A overwritten, still in cache');
+ assert.strictEqual(cache.get('B'), null, 'B evicted');
+ assert.strictEqual(cache.get('C'), imgC, 'C still in cache');
+ });
+
+ it("Entries which have been acquire()'d are promoted", function ()
+ {
+ let cache = new ImageCache({ maxKeys: 2 });
+
+ let imgA = new Image();
+ let imgB = new Image();
+ let imgC = new Image();
+
+ cache.put('A', imgA);
+ cache.put('B', imgB);
+
+ cache.acquire('A');
+ cache.release('A');
+
+ cache.put('C', imgC); // A would be evicted here if not promoted
+
+ assert.strictEqual(cache.has('A'), true, 'A remains');
+ assert.strictEqual(cache.has('B'), false, 'B evicted');
+ assert.strictEqual(cache.has('C'), true, 'C remains');
+ });
+
+ it("Entries which have been acquire()'d are not evicted until released", function ()
+ {
+ let cache = new ImageCache({ maxKeys: 2 });
+
+ let imgA = new Image();
+ let imgB = new Image();
+ let imgC = new Image();
+
+ cache.put('A', imgA);
+ cache.acquire('A');
+
+ cache.put('B', imgB);
+ cache.acquire('B');
+
+ cache.put('C', imgC); // A would be evicted here if not held
+
+ assert.strictEqual(cache.has('A'), true, 'A remains');
+ assert.strictEqual(cache.has('B'), true, 'B remains');
+ assert.strictEqual(cache.has('C'), true, 'C still entered');
+
+ cache.release('B'); // B will be evicted even though it still has priority over A
+
+ assert.strictEqual(cache.has('A'), true, 'A still remains (held)');
+ assert.strictEqual(cache.has('B'), false, 'B evicted');
+ assert.strictEqual(cache.has('C'), true, 'C still remains (by LRU policy)');
+ });
+
+});
\ No newline at end of file
diff --git a/test/main.js b/test/main.js
new file mode 100644
index 00000000..4539eb78
--- /dev/null
+++ b/test/main.js
@@ -0,0 +1,6 @@
+
+const srcContext = require.context('../source/js', true, /\.js$/);
+srcContext.keys().forEach(srcContext);
+
+const testsContext = require.context('.', true, /\.js$/);
+testsContext.keys().forEach(testsContext);
\ No newline at end of file
diff --git a/demo/beromunster-iiif-test.json b/test/manifests/beromunsterManifest.json
similarity index 100%
rename from demo/beromunster-iiif-test.json
rename to test/manifests/beromunsterManifest.json
diff --git a/test/manifests/iiifv2.json b/test/manifests/iiifv2.json
new file mode 100644
index 00000000..f4c4cce0
--- /dev/null
+++ b/test/manifests/iiifv2.json
@@ -0,0 +1,11032 @@
+{
+ "@context": "http://iiif.io/api/presentation/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json",
+ "@type": "sc:Manifest",
+ "label": "Salzinnes, CDN-Hsmu M2149.L4",
+ "metadata": [{"label": "Date", "value": "1554-5"}, {
+ "label": "Siglum",
+ "value": "CDN-Hsmu M2149.L4"
+ }, {"label": "Provenance", "value": "Salzinnes"}],
+ "description": "Cistercian antiphonal from the Abbey of Salzinnes, Namur, in the Diocese of Li\u00e8ge. Manuscript produced on vellum and completed in 1554 and 1555. Square notation on red, 4-line staves. Monastic cursus. 238 folios with two lacunae (Volume I, f.125 and Volume II, f.32) and several inserted folios with full-page illuminations (between ff.45 and 46, ff. 50 and 51, and ff.117 and 118). 61.5 x 39.5 x 14.5 cm.\nPainted in a bright palette in gouache, the Salzinnes Antiphonal contains six full-page illuminations and six historiated initials and includes several scenes depicting multiple narratives from the Bible. The most significant feature of the Antiphonal is the full-length portraits of thirty-four nuns with their names in cursive and block script, some with patrons\u2019 coats-of-arms. In addition, three different religious orders are represented: Cistercians, Carmelites and Benedictines, in honour of the de Glymes family.\n",
+ "sequences": [{
+ "@type": "sc:Sequence",
+ "canvases": [{
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-001r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 001r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_001r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_001r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-001r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-001v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 001v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_001v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_001v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-001v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-002r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 002r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_002r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_002r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-002r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-002v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 002v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_002v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_002v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-002v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-003r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 003r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_003r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_003r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-003r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-003v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 003v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_003v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_003v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-003v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-004r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 004r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_004r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_004r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-004r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-004v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 004v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_004v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_004v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-004v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-005r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 005r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_005r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_005r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-005r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-005v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 005v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_005v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_005v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-005v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-006r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 006r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_006r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_006r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-006r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-006v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 006v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_006v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_006v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-006v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-007r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 007r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_007r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_007r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-007r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-007v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 007v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_007v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_007v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-007v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-008r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 008r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_008r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_008r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-008r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-008v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 008v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_008v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_008v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-008v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-009r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 009r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_009r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_009r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-009r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-009v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 009v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_009v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_009v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-009v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-010r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 010r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_010r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_010r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-010r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-010v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 010v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_010v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_010v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-010v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-011r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 011r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_011r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_011r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-011r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-011v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 011v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_011v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_011v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-011v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-012r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 012r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_012r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_012r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-012r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-012v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 012v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_012v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_012v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-012v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-013r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 013r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_013r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_013r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-013r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-013v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 013v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_013v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_013v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-013v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-014r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 014r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_014r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_014r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-014r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-014v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 014v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_014v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_014v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-014v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-015r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 015r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_015r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_015r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-015r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-015v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 015v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_015v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_015v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-015v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-016r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 016r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_016r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_016r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-016r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-016v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 016v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_016v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_016v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-016v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-017r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 017r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_017r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_017r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-017r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-017v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 017v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_017v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_017v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-017v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-018r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 018r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_018r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_018r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-018r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-018v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 018v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_018v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_018v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-018v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-019r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 019r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_019r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_019r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-019r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-019v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 019v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_019v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_019v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-019v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-020r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 020r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_020r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_020r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-020r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-020v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 020v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_020v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_020v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-020v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-021r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 021r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_021r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_021r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-021r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-021v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 021v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_021v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_021v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-021v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-022r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 022r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_022r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_022r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-022r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-022v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 022v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_022v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_022v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-022v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-023r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 023r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_023r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_023r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-023r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-023v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 023v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_023v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_023v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-023v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-024r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 024r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_024r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_024r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-024r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-024v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 024v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_024v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_024v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-024v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-025r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 025r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_025r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_025r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-025r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-025v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 025v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_025v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_025v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-025v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-026r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 026r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_026r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_026r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-026r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-026v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 026v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_026v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_026v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-026v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-027r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 027r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_027r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_027r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-027r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-027v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 027v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_027v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_027v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-027v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-028r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 028r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_028r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_028r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-028r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-028v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 028v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_028v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_028v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-028v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-029r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 029r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_029r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_029r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-029r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-029v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 029v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_029v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_029v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-029v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-030r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 030r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_030r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_030r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-030r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-030v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 030v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_030v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_030v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-030v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-031r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 031r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_031r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_031r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-031r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-031v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 031v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_031v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_031v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-031v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-032r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 032r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_032r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_032r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-032r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-032v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 032v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_032v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_032v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-032v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-033r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 033r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_033r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_033r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-033r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-033v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 033v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_033v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_033v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-033v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-034r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 034r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_034r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_034r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-034r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-034v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 034v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_034v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_034v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-034v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-035r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 035r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_035r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_035r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-035r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-035v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 035v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_035v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_035v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-035v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-036r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 036r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_036r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_036r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-036r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-036v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 036v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_036v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_036v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-036v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-037r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 037r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_037r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_037r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-037r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-037v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 037v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_037v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_037v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-037v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-038r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 038r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_038r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_038r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-038r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-038v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 038v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_038v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_038v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-038v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-039r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 039r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_039r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_039r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-039r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-039v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 039v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_039v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_039v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-039v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-040r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 040r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_040r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_040r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-040r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-040v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 040v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_040v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_040v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-040v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-041r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 041r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_041r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_041r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-041r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-041v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 041v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_041v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_041v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-041v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-042r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 042r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_042r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_042r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-042r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-042v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 042v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_042v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_042v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-042v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-043r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 043r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_043r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_043r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-043r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-043v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 043v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_043v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_043v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-043v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-044r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 044r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_044r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_044r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-044r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-044v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 044v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_044v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_044v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-044v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-045r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 045r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_045r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_045r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-045r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-045v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 045v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_045v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_045v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-045v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-046r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 046r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_046r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_046r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-046r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-046v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 046v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_046v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_046v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-046v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-047r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 047r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_047r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_047r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-047r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-047v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 047v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_047v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_047v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-047v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-048r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 048r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_048r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_048r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-048r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-048v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 048v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_048v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_048v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-048v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-049r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 049r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_049r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_049r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-049r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-049v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 049v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_049v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_049v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-049v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-050r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 050r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_050r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_050r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-050r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-050v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 050v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_050v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_050v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-050v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-051r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 051r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_051r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_051r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-051r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-051v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 051v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_051v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_051v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-051v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-052r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 052r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_052r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_052r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-052r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-052v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 052v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_052v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_052v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-052v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-053r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 053r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_053r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_053r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-053r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-053v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 053v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_053v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_053v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-053v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-054r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 054r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_054r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_054r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-054r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-054v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 054v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_054v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_054v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-054v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-055r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 055r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_055r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_055r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-055r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-055v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 055v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_055v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_055v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-055v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-056r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 056r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_056r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_056r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-056r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-056v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 056v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_056v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_056v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-056v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-057r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 057r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_057r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_057r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-057r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-057v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 057v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_057v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_057v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-057v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-058r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 058r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_058r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_058r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-058r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-058v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 058v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_058v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_058v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-058v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-059r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 059r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_059r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_059r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-059r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-059v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 059v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_059v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_059v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-059v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-060r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 060r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_060r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_060r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-060r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-060v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 060v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_060v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_060v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-060v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-061r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 061r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_061r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_061r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-061r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-061v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 061v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_061v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_061v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-061v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-062r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 062r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_062r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_062r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-062r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-062v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 062v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_062v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_062v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-062v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-063r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 063r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_063r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_063r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-063r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-063v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 063v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_063v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_063v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-063v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-064r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 064r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_064r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_064r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-064r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-064v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 064v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_064v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_064v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-064v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-065r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 065r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_065r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_065r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-065r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-065v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 065v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_065v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_065v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-065v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-066r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 066r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_066r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_066r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-066r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-066v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 066v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_066v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_066v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-066v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-067r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 067r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_067r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_067r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-067r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-067v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 067v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_067v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_067v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-067v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-068r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 068r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_068r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_068r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-068r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-068v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 068v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_068v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_068v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-068v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-069r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 069r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_069r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_069r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-069r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-069v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 069v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_069v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_069v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-069v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-070r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 070r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_070r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_070r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-070r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-070v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 070v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_070v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_070v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-070v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-071r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 071r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_071r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_071r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-071r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-071v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 071v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_071v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_071v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-071v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-072r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 072r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_072r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_072r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-072r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-072v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 072v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_072v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_072v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-072v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-073r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 073r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_073r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_073r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-073r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-073v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 073v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_073v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_073v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-073v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-074r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 074r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_074r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_074r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-074r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-074v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 074v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_074v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_074v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-074v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-075r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 075r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_075r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_075r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-075r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-075v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 075v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_075v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_075v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-075v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-076r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 076r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_076r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_076r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-076r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-076v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 076v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_076v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_076v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-076v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-077r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 077r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_077r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_077r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-077r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-077v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 077v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_077v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_077v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-077v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-078r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 078r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_078r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_078r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-078r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-078v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 078v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_078v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_078v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-078v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-079r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 079r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_079r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_079r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-079r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-079v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 079v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_079v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_079v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-079v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-080r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 080r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_080r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_080r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-080r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-080v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 080v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_080v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_080v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-080v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-081r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 081r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_081r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_081r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-081r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-081v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 081v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_081v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_081v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-081v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-082r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 082r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_082r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_082r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-082r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-082v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 082v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_082v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_082v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-082v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-083r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 083r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_083r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_083r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-083r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-083v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 083v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_083v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_083v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-083v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-084r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 084r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_084r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_084r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-084r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-084v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 084v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_084v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_084v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-084v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-085r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 085r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_085r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_085r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-085r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-085v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 085v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_085v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_085v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-085v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-086r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 086r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_086r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_086r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-086r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-086v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 086v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_086v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_086v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-086v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-087r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 087r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_087r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_087r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-087r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-087v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 087v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_087v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_087v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-087v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-088r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 088r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_088r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_088r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-088r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-088v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 088v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_088v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_088v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-088v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-089r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 089r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_089r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_089r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-089r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-089v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 089v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_089v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_089v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-089v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-090r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 090r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_090r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_090r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-090r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-090v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 090v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_090v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_090v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-090v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-091r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 091r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_091r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_091r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-091r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-091v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 091v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_091v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_091v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-091v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-092r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 092r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_092r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_092r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-092r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-092v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 092v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_092v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_092v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-092v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-093r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 093r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_093r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_093r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-093r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-093v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 093v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_093v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_093v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-093v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-094r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 094r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_094r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_094r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-094r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-094v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 094v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_094v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_094v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-094v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-095r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 095r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_095r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_095r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-095r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-095v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 095v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_095v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_095v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-095v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-096r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 096r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_096r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_096r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-096r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-096v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 096v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_096v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_096v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-096v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-097r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 097r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_097r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_097r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-097r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-097v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 097v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_097v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_097v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-097v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-098r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 098r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_098r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_098r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-098r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-098v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 098v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_098v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_098v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-098v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-099r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 099r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_099r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_099r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-099r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-099v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 099v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_099v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_099v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-099v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-100r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 100r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_100r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_100r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-100r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-100v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 100v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_100v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_100v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-100v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-101r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 101r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_101r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_101r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-101r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-101v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 101v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_101v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_101v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-101v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-102r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 102r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_102r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_102r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-102r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-102v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 102v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_102v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_102v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-102v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-103r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 103r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_103r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_103r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-103r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-103v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 103v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_103v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_103v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-103v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-104r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 104r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_104r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_104r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-104r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-104v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 104v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_104v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_104v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-104v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-105r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 105r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_105r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_105r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-105r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-105v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 105v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_105v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_105v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-105v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-106r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 106r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_106r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_106r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-106r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-106v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 106v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_106v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_106v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-106v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-107r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 107r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_107r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_107r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-107r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-107v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 107v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_107v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_107v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-107v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-108r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 108r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_108r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_108r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-108r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-108v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 108v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_108v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_108v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-108v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-109r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 109r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_109r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_109r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-109r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-109v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 109v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_109v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_109v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-109v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-110r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 110r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_110r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_110r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-110r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-110v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 110v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_110v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_110v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-110v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-111r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 111r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_111r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_111r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-111r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-111v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 111v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_111v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_111v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-111v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-112r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 112r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_112r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_112r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-112r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-112v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 112v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_112v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_112v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-112v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-113r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 113r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_113r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_113r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-113r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-113v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 113v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_113v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_113v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-113v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-114r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 114r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_114r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_114r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-114r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-114v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 114v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_114v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_114v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-114v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-115r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 115r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_115r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_115r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-115r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-115v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 115v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_115v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_115v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-115v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-116r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 116r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_116r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_116r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-116r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-116v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 116v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_116v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_116v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-116v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-117ar.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 117ar",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_117ar.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_117ar.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-117ar.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-117av.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 117av",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_117av.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_117av.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-117av.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-117r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 117r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_117r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_117r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-117r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-117v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 117v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_117v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_117v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-117v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-118r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 118r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_118r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_118r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-118r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-118v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 118v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_118v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_118v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-118v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-119r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 119r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_119r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_119r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-119r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-119v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 119v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_119v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_119v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-119v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-120r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 120r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_120r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_120r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-120r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-120v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 120v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_120v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_120v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-120v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-121r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 121r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_121r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_121r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-121r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-121v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 121v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_121v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_121v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-121v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-122r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 122r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_122r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_122r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-122r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-122v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 122v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_122v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_122v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-122v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-123r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 123r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_123r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_123r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-123r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-123v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 123v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_123v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_123v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-123v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-124r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 124r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_124r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_124r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-124r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-124v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 124v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_124v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_124v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-124v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-126v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 126v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_126v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_126v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-126v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-127r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 127r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_127r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_127r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-127r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-127v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 127v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_127v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_127v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-127v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-128r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 128r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_128r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_128r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-128r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-128v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 128v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_128v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_128v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-128v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-129r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 129r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_129r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_129r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-129r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-129v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 129v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_129v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_129v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-129v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-130r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 130r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_130r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_130r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-130r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-130v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 130v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_130v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_130v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-130v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-131r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 131r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_131r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_131r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-131r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-131v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 131v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_131v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_131v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-131v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-132r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 132r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_132r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_132r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-132r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-132v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 132v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_132v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_132v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-132v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-133ar.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 133ar",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_133ar.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_133ar.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-133ar.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-133av.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 133av",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_133av.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_133av.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-133av.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-133r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 133r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_133r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_133r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-133r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-133v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 133v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_133v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_133v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-133v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-134r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 134r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_134r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_134r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-134r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-134v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 134v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_134v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_134v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-134v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-135r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 135r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_135r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_135r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-135r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-135v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 135v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_135v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_135v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-135v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-136r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 136r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_136r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_136r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-136r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-136v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 136v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_136v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_136v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-136v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-137r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 137r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_137r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_137r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-137r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-137v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 137v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_137v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_137v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-137v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-138r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 138r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_138r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_138r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-138r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-138v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 138v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_138v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_138v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-138v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-139r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 139r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_139r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_139r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-139r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-139v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 139v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_139v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_139v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-139v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-140r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 140r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_140r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_140r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-140r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-140v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 140v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_140v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_140v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-140v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-141r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 141r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_141r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_141r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-141r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-141v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 141v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_141v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_141v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-141v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-142r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 142r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_142r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_142r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-142r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-142v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 142v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_142v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_142v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-142v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-143r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 143r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_143r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_143r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-143r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-143v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 143v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_143v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_143v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-143v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-144r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 144r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_144r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_144r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-144r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-144v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 144v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_144v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_144v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-144v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-145r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 145r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_145r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_145r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-145r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-145v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 145v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_145v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_145v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-145v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-146r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 146r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_146r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_146r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-146r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-146v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 146v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_146v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_146v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-146v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-147r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 147r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_147r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_147r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-147r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-147v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 147v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_147v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_147v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-147v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-148r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 148r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_148r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_148r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-148r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-148v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 148v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_148v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_148v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-148v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-149r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 149r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_149r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_149r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-149r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-149v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 149v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_149v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_149v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-149v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-150r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 150r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_150r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_150r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-150r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-150v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 150v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_150v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_150v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-150v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-151r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 151r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_151r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_151r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-151r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-151v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 151v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_151v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_151v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-151v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-152r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 152r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_152r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_152r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-152r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-152v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 152v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_152v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_152v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-152v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-153r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 153r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_153r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_153r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-153r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-153v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 153v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_153v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_153v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-153v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-154r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 154r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_154r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_154r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-154r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-154v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 154v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_154v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_154v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-154v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-155r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 155r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_155r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_155r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-155r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-155v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 155v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_155v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_155v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-155v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-156r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 156r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_156r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_156r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-156r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-156v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 156v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_156v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_156v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-156v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-157r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 157r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_157r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_157r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-157r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-157v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 157v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_157v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_157v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-157v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-158r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 158r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_158r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_158r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-158r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-158v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 158v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_158v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_158v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-158v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-159r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 159r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_159r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_159r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-159r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-159v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 159v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_159v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_159v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-159v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-160r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 160r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_160r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_160r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-160r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-160v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 160v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_160v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_160v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-160v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-161r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 161r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_161r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_161r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-161r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-161v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 161v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_161v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_161v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-161v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-162r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 162r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_162r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_162r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-162r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-162v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 162v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_162v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_162v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-162v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-163r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 163r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_163r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_163r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-163r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-163v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 163v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_163v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_163v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-163v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-164r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 164r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_164r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_164r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-164r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-164v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 164v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_164v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_164v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-164v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-165r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 165r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_165r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_165r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-165r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-165v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 165v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_165v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_165v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-165v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-166r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 166r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_166r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_166r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-166r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-166v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 166v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_166v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_166v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-166v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-167r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 167r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_167r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_167r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-167r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-167v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 167v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_167v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_167v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-167v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-168r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 168r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_168r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_168r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-168r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-168v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 168v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_168v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_168v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-168v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-169r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 169r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_169r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_169r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-169r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-169v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 169v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_169v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_169v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-169v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-170r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 170r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_170r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_170r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-170r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-170v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 170v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_170v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_170v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-170v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-171r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 171r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_171r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_171r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-171r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-171v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 171v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_171v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_171v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-171v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-172r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 172r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_172r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_172r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-172r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-172v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 172v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_172v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_172v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-172v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-173r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 173r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_173r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_173r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-173r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-173v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 173v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_173v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_173v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-173v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-174r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 174r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_174r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_174r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-174r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-174v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 174v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_174v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_174v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-174v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-175r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 175r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_175r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_175r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-175r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-175v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 175v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_175v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_175v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-175v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-176r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 176r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_176r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_176r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-176r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-176v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 176v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_176v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_176v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-176v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-177r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 177r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_177r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_177r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-177r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-177v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 177v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_177v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_177v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-177v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-178r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 178r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_178r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_178r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-178r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-178v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 178v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_178v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_178v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-178v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-179r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 179r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_179r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_179r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-179r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-179v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 179v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_179v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_179v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-179v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-180r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 180r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_180r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_180r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-180r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-180v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 180v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_180v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_180v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-180v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-181r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 181r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_181r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_181r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-181r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-181v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 181v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_181v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_181v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-181v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-182r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 182r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_182r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_182r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-182r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-182v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 182v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_182v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_182v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-182v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-183r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 183r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_183r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_183r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-183r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-183v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 183v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_183v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_183v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-183v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-184r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 184r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_184r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_184r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-184r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-184v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 184v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_184v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_184v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-184v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-185r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 185r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_185r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_185r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-185r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-185v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 185v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_185v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_185v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-185v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-186r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 186r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_186r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_186r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-186r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-186v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 186v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_186v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_186v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-186v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-187r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 187r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_187r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_187r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-187r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-187v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 187v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_187v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_187v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-187v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-188r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 188r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_188r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_188r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-188r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-188v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 188v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_188v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_188v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-188v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-189r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 189r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_189r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_189r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-189r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-189v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 189v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_189v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_189v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-189v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-190r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 190r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_190r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_190r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-190r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-190v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 190v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_190v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_190v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-190v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-191r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 191r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_191r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_191r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-191r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-191v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 191v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_191v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_191v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-191v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-192r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 192r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_192r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_192r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-192r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-192v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 192v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_192v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_192v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-192v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-193r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 193r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_193r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_193r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-193r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-193v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 193v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_193v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_193v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-193v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-194r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 194r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_194r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_194r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-194r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-194v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 194v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_194v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_194v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-194v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-195r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 195r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_195r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_195r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-195r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-195v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 195v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_195v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_195v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-195v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-196r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 196r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_196r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_196r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-196r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-196v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 196v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_196v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_196v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-196v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-197r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 197r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_197r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_197r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-197r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-197v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 197v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_197v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_197v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-197v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-198r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 198r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_198r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_198r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-198r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-198v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 198v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_198v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_198v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-198v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-45ar.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 45ar",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_45ar.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_45ar.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-45ar.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-45av.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 45av",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_45av.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_45av.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-45av.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-50ar.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 50ar",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_50ar.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_50ar.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-50ar.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-50av.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 50av",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_50av.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_50av.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-50av.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A01r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A01r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A01r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A01r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A01r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A01v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A01v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A01v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A01v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A01v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A02r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A02r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A02r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A02r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A02r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A02v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A02v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A02v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A02v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A02v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A03r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A03r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A03r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A03r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A03r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A03v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A03v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A03v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A03v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A03v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A04r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A04r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A04r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A04r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A04r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A04v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A04v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A04v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A04v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A04v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A05r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A05r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A05r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A05r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A05r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A05v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A05v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A05v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A05v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A05v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A06r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A06r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A06r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A06r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A06r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A06v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A06v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A06v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A06v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A06v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A07r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A07r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A07r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A07r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A07r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A07v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A07v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A07v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A07v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A07v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A08r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A08r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A08r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A08r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A08r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A08v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A08v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A08v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A08v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A08v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A09r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A09r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A09r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A09r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A09r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A09v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A09v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A09v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A09v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A09v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A10r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A10r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A10r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A10r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A10r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A10v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A10v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A10v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A10v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A10v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A11r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A11r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A11r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A11r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A11r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A11v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A11v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A11v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A11v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A11v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A12r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A12r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A12r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A12r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A12r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A12v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A12v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A12v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A12v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A12v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A13r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A13r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A13r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A13r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A13r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A13v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A13v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A13v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A13v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A13v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A14r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A14r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A14r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A14r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A14r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A14v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A14v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A14v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A14v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A14v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A15r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A15r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A15r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A15r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A15r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A15v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A15v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A15v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A15v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A15v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A16r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A16r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A16r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A16r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A16r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A16v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A16v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A16v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A16v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A16v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A17r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A17r",
+ "height": 6604,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A17r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6604,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A17r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A17r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A17v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A17v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A17v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A17v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A17v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A18r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A18r",
+ "height": 6604,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A18r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6604,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A18r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A18r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A18v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A18v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A18v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A18v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A18v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A19r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A19r",
+ "height": 6604,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A19r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6604,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A19r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A19r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A19v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A19v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A19v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A19v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A19v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A20r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A20r",
+ "height": 6604,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A20r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6604,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A20r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A20r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A20v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A20v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A20v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A20v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A20v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A21r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A21r",
+ "height": 6604,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A21r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6604,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A21r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A21r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A21v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A21v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A21v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A21v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A21v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A22r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A22r",
+ "height": 6604,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A22r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6604,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A22r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A22r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A22v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A22v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A22v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A22v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A22v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A23r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A23r",
+ "height": 6604,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A23r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6604,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A23r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A23r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A23v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A23v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A23v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A23v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A23v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A24r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A24r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A24r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A24r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A24r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A24v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A24v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A24v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A24v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A24v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A25r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A25r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A25r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A25r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A25r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A25v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A25v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A25v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A25v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A25v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A26r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A26r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A26r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A26r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A26r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A26v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A26v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A26v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A26v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A26v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A27r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A27r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A27r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A27r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A27r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A27v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A27v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A27v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A27v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A27v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A28r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A28r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A28r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A28r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A28r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A28v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A28v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A28v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A28v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A28v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A29r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A29r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A29r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A29r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A29r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A29v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A29v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A29v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A29v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A29v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A30r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A30r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A30r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A30r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A30r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A30v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A30v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A30v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A30v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A30v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A31r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A31r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A31r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A31r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A31r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A31v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A31v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A31v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A31v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A31v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A33r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A33r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A33r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A33r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A33r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A33v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A33v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A33v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A33v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A33v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A34r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A34r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A34r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A34r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A34r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A34v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A34v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A34v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A34v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A34v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A35r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A35r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A35r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A35r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A35r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A35v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A35v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A35v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A35v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A35v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A36r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A36r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A36r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A36r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A36r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A36v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A36v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A36v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A36v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A36v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A37r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A37r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A37r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A37r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A37r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A37v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A37v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A37v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A37v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A37v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A38r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A38r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A38r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A38r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A38r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A38v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A38v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A38v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A38v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A38v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A39r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A39r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A39r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A39r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A39r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A39v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A39v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A39v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A39v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A39v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A40r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A40r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A40r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A40r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A40r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A40v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A40v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A40v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A40v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A40v.json"
+ }]
+ }]
+ }]
+}
\ No newline at end of file
diff --git a/test/manifests/iiifv2pages.json b/test/manifests/iiifv2pages.json
new file mode 100644
index 00000000..693d216e
--- /dev/null
+++ b/test/manifests/iiifv2pages.json
@@ -0,0 +1,30437 @@
+{
+ "@context": "http://iiif.io/api/presentation/2/context.json",
+ "@id": "https://www.diamm.ac.uk/sources/117/manifest/",
+ "@type": "sc:Manifest",
+ "label": "I-Bc Q.15",
+ "metadata": [
+ {
+ "label": "Shelfmark",
+ "value": "Q.15"
+ },
+ {
+ "label": "Archive",
+ "value": "Museo Internazionale e Biblioteca della Musica di Bologna"
+ },
+ {
+ "label": "Surface Type",
+ "value": "Other"
+ },
+ {
+ "label": "Measurements",
+ "value": "280 x 200 mm"
+ },
+ {
+ "label": "Identifiers",
+ "value": "I-Bc15"
+ },
+ {
+ "label": "Identifiers",
+ "value": "BL"
+ },
+ {
+ "label": "Identifiers",
+ "value": "BolC Q15"
+ },
+ {
+ "label": "Identifiers",
+ "value": "Liceo Musicale 37"
+ },
+ {
+ "label": "Date Statement",
+ "value": "15th century, copying completed 1440"
+ },
+ {
+ "label": "Source Type",
+ "value": "complete choirbook"
+ }
+ ],
+ "seeAlso": {
+ "@id": "https://www.diamm.ac.uk/sources/117/",
+ "format": "application/json"
+ },
+ "description": "About a third of the pieces have ornamented initials",
+ "related": {
+ "@id": "https://www.diamm.ac.uk/sources/117/",
+ "format": "text/html"
+ },
+ "sequences": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/manifest/sequence/default",
+ "@type": "sc:Sequence",
+ "label": "Default",
+ "canvases": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5474/",
+ "@type": "sc:Canvas",
+ "label": "early bindings back",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5474/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5474/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 10214,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5474/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 10214
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5475/",
+ "@type": "sc:Canvas",
+ "label": "early bindings front",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5475/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5475/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 10022,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5475/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 10022
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5476/",
+ "@type": "sc:Canvas",
+ "label": "early bindings spine",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5476/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5476/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 6672,
+ "height": 10262,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5476/"
+ }
+ }
+ }
+ ],
+ "width": 6672,
+ "height": 10262
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5473/",
+ "@type": "sc:Canvas",
+ "label": "early binding complete",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5473/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5473/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 10102,
+ "height": 7200,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5473/"
+ }
+ }
+ }
+ ],
+ "width": 10102,
+ "height": 7200
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5477/",
+ "@type": "sc:Canvas",
+ "label": "fragment front binding recto",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5477/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5477/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 4656,
+ "height": 6804,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5477/"
+ }
+ }
+ }
+ ],
+ "width": 4656,
+ "height": 6804
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5478/",
+ "@type": "sc:Canvas",
+ "label": "fragment front binding verso",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5478/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5478/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 4560,
+ "height": 6804,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5478/"
+ }
+ }
+ }
+ ],
+ "width": 4560,
+ "height": 6804
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5481/",
+ "@type": "sc:Canvas",
+ "label": "late binding completer",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5481/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5481/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 10006,
+ "height": 6976,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5481/"
+ }
+ }
+ }
+ ],
+ "width": 10006,
+ "height": 6976
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5484/",
+ "@type": "sc:Canvas",
+ "label": "strips 1 recto",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5484/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5484/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7440,
+ "height": 9093,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5484/"
+ }
+ }
+ }
+ ],
+ "width": 7440,
+ "height": 9093
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5485/",
+ "@type": "sc:Canvas",
+ "label": "strips 1 verso",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5485/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5485/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 6848,
+ "height": 9125,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5485/"
+ }
+ }
+ }
+ ],
+ "width": 6848,
+ "height": 9125
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5486/",
+ "@type": "sc:Canvas",
+ "label": "strips 2 recto",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5486/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5486/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7280,
+ "height": 9910,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5486/"
+ }
+ }
+ }
+ ],
+ "width": 7280,
+ "height": 9910
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5487/",
+ "@type": "sc:Canvas",
+ "label": "strips 2 verso",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5487/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5487/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 3416,
+ "height": 4471,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5487/"
+ }
+ }
+ }
+ ],
+ "width": 3416,
+ "height": 4471
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4747/",
+ "@type": "sc:Canvas",
+ "label": "01r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4747/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4747/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4747/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4748/",
+ "@type": "sc:Canvas",
+ "label": "01v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4748/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4748/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4748/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4749/",
+ "@type": "sc:Canvas",
+ "label": "02r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4749/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4749/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4749/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4750/",
+ "@type": "sc:Canvas",
+ "label": "02v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4750/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4750/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4750/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4751/",
+ "@type": "sc:Canvas",
+ "label": "03r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4751/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4751/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9830,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4751/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9830
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4754/",
+ "@type": "sc:Canvas",
+ "label": "03v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4754/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4754/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4754/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4755/",
+ "@type": "sc:Canvas",
+ "label": "04r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4755/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4755/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9830,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4755/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9830
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4756/",
+ "@type": "sc:Canvas",
+ "label": "04v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4756/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4756/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4756/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4757/",
+ "@type": "sc:Canvas",
+ "label": "05r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4757/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4757/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9830,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4757/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9830
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4758/",
+ "@type": "sc:Canvas",
+ "label": "05v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4758/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4758/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4758/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4759/",
+ "@type": "sc:Canvas",
+ "label": "06r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4759/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4759/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9830,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4759/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9830
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4760/",
+ "@type": "sc:Canvas",
+ "label": "06v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4760/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4760/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4760/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4761/",
+ "@type": "sc:Canvas",
+ "label": "07r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4761/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4761/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9830,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4761/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9830
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4762/",
+ "@type": "sc:Canvas",
+ "label": "07v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4762/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4762/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4762/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4763/",
+ "@type": "sc:Canvas",
+ "label": "08r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4763/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4763/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9830,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4763/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9830
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4764/",
+ "@type": "sc:Canvas",
+ "label": "08v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4764/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4764/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4764/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4765/",
+ "@type": "sc:Canvas",
+ "label": "09r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4765/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4765/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4765/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58651/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2449,
+ "height": 5040,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58651/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4766/",
+ "@type": "sc:Canvas",
+ "label": "09v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4766/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4766/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9830,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4766/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9830
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4767/",
+ "@type": "sc:Canvas",
+ "label": "10r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4767/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4767/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4767/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58652/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2433,
+ "height": 4832,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58652/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4769/",
+ "@type": "sc:Canvas",
+ "label": "10v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4769/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4769/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9830,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4769/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9830
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4770/",
+ "@type": "sc:Canvas",
+ "label": "11r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4770/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4770/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4770/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58653/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2385,
+ "height": 5600,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58653/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4771/",
+ "@type": "sc:Canvas",
+ "label": "11v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4771/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4771/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9830,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4771/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9830
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4772/",
+ "@type": "sc:Canvas",
+ "label": "12r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4772/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4772/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4772/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58654/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2321,
+ "height": 5024,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58654/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4773/",
+ "@type": "sc:Canvas",
+ "label": "12v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4773/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4773/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9830,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4773/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9830
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4774/",
+ "@type": "sc:Canvas",
+ "label": "13r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4774/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4774/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4774/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58655/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2385,
+ "height": 5264,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58655/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4775/",
+ "@type": "sc:Canvas",
+ "label": "13v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4775/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4775/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9830,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4775/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9830
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4776/",
+ "@type": "sc:Canvas",
+ "label": "14r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4776/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4776/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4776/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4777/",
+ "@type": "sc:Canvas",
+ "label": "14v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4777/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4777/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9830,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4777/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9830
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4778/",
+ "@type": "sc:Canvas",
+ "label": "15r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4778/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4778/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4778/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4779/",
+ "@type": "sc:Canvas",
+ "label": "15v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4779/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4779/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4779/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4780/",
+ "@type": "sc:Canvas",
+ "label": "16r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4780/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4780/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4780/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4781/",
+ "@type": "sc:Canvas",
+ "label": "16v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4781/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4781/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4781/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4782/",
+ "@type": "sc:Canvas",
+ "label": "17r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4782/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4782/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4782/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4784/",
+ "@type": "sc:Canvas",
+ "label": "17v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4784/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4784/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4784/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4785/",
+ "@type": "sc:Canvas",
+ "label": "18r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4785/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4785/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4785/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4786/",
+ "@type": "sc:Canvas",
+ "label": "18v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4786/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4786/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4786/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4787/",
+ "@type": "sc:Canvas",
+ "label": "19r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4787/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4787/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4787/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4788/",
+ "@type": "sc:Canvas",
+ "label": "19v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4788/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4788/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4788/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4789/",
+ "@type": "sc:Canvas",
+ "label": "20r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4789/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4789/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4789/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4790/",
+ "@type": "sc:Canvas",
+ "label": "20v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4790/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4790/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4790/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4791/",
+ "@type": "sc:Canvas",
+ "label": "21r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4791/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4791/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4791/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4792/",
+ "@type": "sc:Canvas",
+ "label": "21v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4792/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4792/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4792/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4793/",
+ "@type": "sc:Canvas",
+ "label": "22r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4793/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4793/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4793/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4794/",
+ "@type": "sc:Canvas",
+ "label": "22v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4794/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4794/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4794/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4795/",
+ "@type": "sc:Canvas",
+ "label": "23r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4795/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4795/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4795/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4796/",
+ "@type": "sc:Canvas",
+ "label": "23v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4796/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4796/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4796/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4797/",
+ "@type": "sc:Canvas",
+ "label": "24r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4797/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4797/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4797/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4799/",
+ "@type": "sc:Canvas",
+ "label": "24v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4799/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4799/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4799/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4800/",
+ "@type": "sc:Canvas",
+ "label": "25r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4800/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4800/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4800/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4801/",
+ "@type": "sc:Canvas",
+ "label": "25v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4801/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4801/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4801/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4802/",
+ "@type": "sc:Canvas",
+ "label": "26r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4802/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4802/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4802/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4803/",
+ "@type": "sc:Canvas",
+ "label": "26v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4803/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4803/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4803/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4804/",
+ "@type": "sc:Canvas",
+ "label": "27r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4804/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4804/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4804/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4805/",
+ "@type": "sc:Canvas",
+ "label": "27v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4805/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4805/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4805/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58656/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2513,
+ "height": 5328,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58656/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4806/",
+ "@type": "sc:Canvas",
+ "label": "28r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4806/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4806/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4806/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4807/",
+ "@type": "sc:Canvas",
+ "label": "28v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4807/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4807/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4807/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4808/",
+ "@type": "sc:Canvas",
+ "label": "29r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4808/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4808/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4808/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4809/",
+ "@type": "sc:Canvas",
+ "label": "29v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4809/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4809/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4809/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58657/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2481,
+ "height": 6384,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58657/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4810/",
+ "@type": "sc:Canvas",
+ "label": "30r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4810/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4810/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4810/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4811/",
+ "@type": "sc:Canvas",
+ "label": "30v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4811/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4811/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4811/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4812/",
+ "@type": "sc:Canvas",
+ "label": "31r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4812/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4812/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4812/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4814/",
+ "@type": "sc:Canvas",
+ "label": "31v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4814/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4814/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4814/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4815/",
+ "@type": "sc:Canvas",
+ "label": "32r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4815/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4815/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4815/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4816/",
+ "@type": "sc:Canvas",
+ "label": "32v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4816/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4816/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4816/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4817/",
+ "@type": "sc:Canvas",
+ "label": "33r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4817/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4817/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4817/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58658/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2433,
+ "height": 6496,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58658/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4818/",
+ "@type": "sc:Canvas",
+ "label": "33v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4818/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4818/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4818/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4819/",
+ "@type": "sc:Canvas",
+ "label": "34r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4819/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4819/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4819/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4820/",
+ "@type": "sc:Canvas",
+ "label": "34v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4820/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4820/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4820/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4821/",
+ "@type": "sc:Canvas",
+ "label": "35r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4821/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4821/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4821/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58659/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2529,
+ "height": 5696,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58659/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4822/",
+ "@type": "sc:Canvas",
+ "label": "35v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4822/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4822/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4822/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4823/",
+ "@type": "sc:Canvas",
+ "label": "36r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4823/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4823/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4823/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4824/",
+ "@type": "sc:Canvas",
+ "label": "36v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4824/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4824/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4824/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4825/",
+ "@type": "sc:Canvas",
+ "label": "37r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4825/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4825/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4825/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4826/",
+ "@type": "sc:Canvas",
+ "label": "37v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4826/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4826/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4826/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4827/",
+ "@type": "sc:Canvas",
+ "label": "38r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4827/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4827/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4827/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4829/",
+ "@type": "sc:Canvas",
+ "label": "38v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4829/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4829/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4829/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4830/",
+ "@type": "sc:Canvas",
+ "label": "39r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4830/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4830/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4830/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4831/",
+ "@type": "sc:Canvas",
+ "label": "39v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4831/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4831/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4831/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4832/",
+ "@type": "sc:Canvas",
+ "label": "40r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4832/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4832/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4832/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4833/",
+ "@type": "sc:Canvas",
+ "label": "40v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4833/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4833/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4833/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4834/",
+ "@type": "sc:Canvas",
+ "label": "41r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4834/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4834/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4834/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4835/",
+ "@type": "sc:Canvas",
+ "label": "41v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4835/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4835/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4835/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4836/",
+ "@type": "sc:Canvas",
+ "label": "42r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4836/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4836/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4836/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4837/",
+ "@type": "sc:Canvas",
+ "label": "42v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4837/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4837/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4837/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4838/",
+ "@type": "sc:Canvas",
+ "label": "43r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4838/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4838/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4838/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4839/",
+ "@type": "sc:Canvas",
+ "label": "43v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4839/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4839/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4839/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/6925/",
+ "@type": "sc:Canvas",
+ "label": "43 bisr",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/6925/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/6925/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/6925/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/6926/",
+ "@type": "sc:Canvas",
+ "label": "43 bis v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/6926/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/6926/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/6926/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4840/",
+ "@type": "sc:Canvas",
+ "label": "44r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4840/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4840/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4840/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4841/",
+ "@type": "sc:Canvas",
+ "label": "44v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4841/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4841/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4841/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4842/",
+ "@type": "sc:Canvas",
+ "label": "45r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4842/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4842/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4842/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4844/",
+ "@type": "sc:Canvas",
+ "label": "45v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4844/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4844/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4844/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4845/",
+ "@type": "sc:Canvas",
+ "label": "46r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4845/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4845/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4845/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4846/",
+ "@type": "sc:Canvas",
+ "label": "46v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4846/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4846/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4846/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4847/",
+ "@type": "sc:Canvas",
+ "label": "47r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4847/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4847/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4847/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4848/",
+ "@type": "sc:Canvas",
+ "label": "47v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4848/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4848/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4848/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4849/",
+ "@type": "sc:Canvas",
+ "label": "48r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4849/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4849/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4849/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4850/",
+ "@type": "sc:Canvas",
+ "label": "48v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4850/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4850/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4850/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4851/",
+ "@type": "sc:Canvas",
+ "label": "49r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4851/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4851/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4851/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4852/",
+ "@type": "sc:Canvas",
+ "label": "49v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4852/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4852/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4852/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4853/",
+ "@type": "sc:Canvas",
+ "label": "50r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4853/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4853/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4853/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4854/",
+ "@type": "sc:Canvas",
+ "label": "50v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4854/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4854/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4854/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58660/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2513,
+ "height": 6544,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58660/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4855/",
+ "@type": "sc:Canvas",
+ "label": "51r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4855/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4855/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4855/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4856/",
+ "@type": "sc:Canvas",
+ "label": "51v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4856/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4856/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4856/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58661/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2401,
+ "height": 5360,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58661/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4857/",
+ "@type": "sc:Canvas",
+ "label": "52r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4857/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4857/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4857/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4859/",
+ "@type": "sc:Canvas",
+ "label": "52v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4859/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4859/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4859/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4860/",
+ "@type": "sc:Canvas",
+ "label": "53r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4860/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4860/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4860/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4861/",
+ "@type": "sc:Canvas",
+ "label": "53v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4861/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4861/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4861/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4862/",
+ "@type": "sc:Canvas",
+ "label": "54r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4862/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4862/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4862/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4863/",
+ "@type": "sc:Canvas",
+ "label": "54v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4863/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4863/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4863/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58662/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2337,
+ "height": 5344,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58662/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4864/",
+ "@type": "sc:Canvas",
+ "label": "55r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4864/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4864/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4864/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4865/",
+ "@type": "sc:Canvas",
+ "label": "55v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4865/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4865/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4865/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4866/",
+ "@type": "sc:Canvas",
+ "label": "56r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4866/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4866/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4866/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58663/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2529,
+ "height": 4496,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58663/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4867/",
+ "@type": "sc:Canvas",
+ "label": "56v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4867/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4867/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4867/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4868/",
+ "@type": "sc:Canvas",
+ "label": "57r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4868/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4868/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4868/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58664/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2401,
+ "height": 5392,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58664/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4869/",
+ "@type": "sc:Canvas",
+ "label": "57v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4869/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4869/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4869/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4870/",
+ "@type": "sc:Canvas",
+ "label": "58r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4870/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4870/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4870/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4871/",
+ "@type": "sc:Canvas",
+ "label": "58v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4871/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4871/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4871/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4872/",
+ "@type": "sc:Canvas",
+ "label": "59r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4872/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4872/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4872/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4874/",
+ "@type": "sc:Canvas",
+ "label": "59v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4874/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4874/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4874/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4875/",
+ "@type": "sc:Canvas",
+ "label": "60r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4875/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4875/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4875/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4876/",
+ "@type": "sc:Canvas",
+ "label": "60v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4876/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4876/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4876/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4877/",
+ "@type": "sc:Canvas",
+ "label": "61r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4877/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4877/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4877/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4878/",
+ "@type": "sc:Canvas",
+ "label": "61v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4878/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4878/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4878/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4879/",
+ "@type": "sc:Canvas",
+ "label": "62r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4879/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4879/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4879/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4880/",
+ "@type": "sc:Canvas",
+ "label": "62v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4880/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4880/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4880/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4881/",
+ "@type": "sc:Canvas",
+ "label": "63r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4881/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4881/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4881/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4882/",
+ "@type": "sc:Canvas",
+ "label": "63v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4882/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4882/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4882/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4883/",
+ "@type": "sc:Canvas",
+ "label": "64r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4883/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4883/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4883/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4884/",
+ "@type": "sc:Canvas",
+ "label": "64v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4884/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4884/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4884/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4885/",
+ "@type": "sc:Canvas",
+ "label": "65r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4885/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4885/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4885/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4886/",
+ "@type": "sc:Canvas",
+ "label": "65v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4886/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4886/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4886/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4887/",
+ "@type": "sc:Canvas",
+ "label": "66r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4887/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4887/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4887/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4889/",
+ "@type": "sc:Canvas",
+ "label": "66v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4889/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4889/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4889/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4890/",
+ "@type": "sc:Canvas",
+ "label": "67r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4890/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4890/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4890/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4891/",
+ "@type": "sc:Canvas",
+ "label": "67v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4891/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4891/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4891/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4892/",
+ "@type": "sc:Canvas",
+ "label": "68r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4892/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4892/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4892/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4893/",
+ "@type": "sc:Canvas",
+ "label": "68v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4893/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4893/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4893/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4894/",
+ "@type": "sc:Canvas",
+ "label": "69r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4894/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4894/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4894/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4895/",
+ "@type": "sc:Canvas",
+ "label": "69v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4895/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4895/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4895/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4896/",
+ "@type": "sc:Canvas",
+ "label": "70r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4896/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4896/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4896/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4897/",
+ "@type": "sc:Canvas",
+ "label": "70v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4897/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4897/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4897/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4898/",
+ "@type": "sc:Canvas",
+ "label": "71r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4898/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4898/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4898/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4899/",
+ "@type": "sc:Canvas",
+ "label": "71v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4899/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4899/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4899/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4900/",
+ "@type": "sc:Canvas",
+ "label": "72r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4900/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4900/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4900/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4901/",
+ "@type": "sc:Canvas",
+ "label": "72v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4901/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4901/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4901/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4902/",
+ "@type": "sc:Canvas",
+ "label": "73r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4902/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4902/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4902/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4904/",
+ "@type": "sc:Canvas",
+ "label": "73v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4904/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4904/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4904/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4905/",
+ "@type": "sc:Canvas",
+ "label": "74r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4905/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4905/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4905/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4906/",
+ "@type": "sc:Canvas",
+ "label": "74v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4906/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4906/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4906/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4907/",
+ "@type": "sc:Canvas",
+ "label": "75r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4907/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4907/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4907/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4908/",
+ "@type": "sc:Canvas",
+ "label": "75v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4908/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4908/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4908/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4909/",
+ "@type": "sc:Canvas",
+ "label": "76r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4909/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4909/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4909/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4910/",
+ "@type": "sc:Canvas",
+ "label": "76v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4910/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4910/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4910/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4911/",
+ "@type": "sc:Canvas",
+ "label": "77r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4911/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4911/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4911/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4912/",
+ "@type": "sc:Canvas",
+ "label": "77v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4912/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4912/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4912/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4913/",
+ "@type": "sc:Canvas",
+ "label": "78r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4913/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4913/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4913/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4914/",
+ "@type": "sc:Canvas",
+ "label": "78v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4914/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4914/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4914/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4915/",
+ "@type": "sc:Canvas",
+ "label": "79r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4915/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4915/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4915/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4916/",
+ "@type": "sc:Canvas",
+ "label": "79v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4916/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4916/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4916/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4917/",
+ "@type": "sc:Canvas",
+ "label": "80r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4917/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4917/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4917/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4919/",
+ "@type": "sc:Canvas",
+ "label": "80v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4919/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4919/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4919/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4920/",
+ "@type": "sc:Canvas",
+ "label": "81r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4920/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4920/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4920/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4921/",
+ "@type": "sc:Canvas",
+ "label": "81v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4921/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4921/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4921/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4922/",
+ "@type": "sc:Canvas",
+ "label": "82r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4922/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4922/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4922/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4923/",
+ "@type": "sc:Canvas",
+ "label": "82v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4923/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4923/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4923/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4924/",
+ "@type": "sc:Canvas",
+ "label": "83r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4924/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4924/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4924/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4925/",
+ "@type": "sc:Canvas",
+ "label": "83v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4925/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4925/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4925/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4926/",
+ "@type": "sc:Canvas",
+ "label": "84r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4926/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4926/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4926/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4927/",
+ "@type": "sc:Canvas",
+ "label": "84v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4927/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4927/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4927/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4928/",
+ "@type": "sc:Canvas",
+ "label": "85r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4928/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4928/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4928/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4929/",
+ "@type": "sc:Canvas",
+ "label": "85v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4929/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4929/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4929/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4930/",
+ "@type": "sc:Canvas",
+ "label": "86r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4930/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4930/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4930/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4931/",
+ "@type": "sc:Canvas",
+ "label": "86v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4931/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4931/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4931/"
+ }
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4932/",
+ "@type": "sc:Canvas",
+ "label": "87r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4932/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4932/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4932/"
+ }
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4934/",
+ "@type": "sc:Canvas",
+ "label": "87v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4934/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4934/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4934/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58675/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 944,
+ "height": 5312,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58675/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4935/",
+ "@type": "sc:Canvas",
+ "label": "88r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4935/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4935/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4935/"
+ }
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4936/",
+ "@type": "sc:Canvas",
+ "label": "88v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4936/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4936/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9734,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4936/"
+ }
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9734
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4937/",
+ "@type": "sc:Canvas",
+ "label": "89r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4937/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4937/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4937/"
+ }
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4938/",
+ "@type": "sc:Canvas",
+ "label": "89v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4938/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4938/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9734,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4938/"
+ }
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9734
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4939/",
+ "@type": "sc:Canvas",
+ "label": "90r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4939/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4939/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4939/"
+ }
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4940/",
+ "@type": "sc:Canvas",
+ "label": "90v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4940/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4940/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9734,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4940/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58665/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2321,
+ "height": 3872,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58665/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9734
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4941/",
+ "@type": "sc:Canvas",
+ "label": "91r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4941/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4941/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4941/"
+ }
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4942/",
+ "@type": "sc:Canvas",
+ "label": "91v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4942/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4942/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9734,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4942/"
+ }
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9734
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4943/",
+ "@type": "sc:Canvas",
+ "label": "92r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4943/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4943/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9734,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4943/"
+ }
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9734
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4944/",
+ "@type": "sc:Canvas",
+ "label": "92v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4944/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4944/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4944/"
+ }
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4945/",
+ "@type": "sc:Canvas",
+ "label": "93r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4945/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4945/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9734,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4945/"
+ }
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9734
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4946/",
+ "@type": "sc:Canvas",
+ "label": "93v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4946/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4946/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4946/"
+ }
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4947/",
+ "@type": "sc:Canvas",
+ "label": "94r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4947/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4947/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9734,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4947/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58666/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2529,
+ "height": 6352,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58666/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9734
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4949/",
+ "@type": "sc:Canvas",
+ "label": "94v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4949/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4949/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4949/"
+ }
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4950/",
+ "@type": "sc:Canvas",
+ "label": "95r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4950/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4950/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9734,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4950/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58667/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2721,
+ "height": 4592,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58667/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9734
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4951/",
+ "@type": "sc:Canvas",
+ "label": "95v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4951/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4951/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4951/"
+ }
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4952/",
+ "@type": "sc:Canvas",
+ "label": "96r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4952/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4952/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4952/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58668/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2225,
+ "height": 4624,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58668/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4953/",
+ "@type": "sc:Canvas",
+ "label": "96v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4953/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4953/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4953/"
+ }
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4954/",
+ "@type": "sc:Canvas",
+ "label": "97r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4954/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4954/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4954/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58669/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2321,
+ "height": 4480,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58669/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4955/",
+ "@type": "sc:Canvas",
+ "label": "97v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4955/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4955/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4955/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4956/",
+ "@type": "sc:Canvas",
+ "label": "98r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4956/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4956/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4956/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58676/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1392,
+ "height": 2448,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58676/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4957/",
+ "@type": "sc:Canvas",
+ "label": "98v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4957/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4957/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4957/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4958/",
+ "@type": "sc:Canvas",
+ "label": "99r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4958/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4958/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4958/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58677/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 640,
+ "height": 1184,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58677/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4959/",
+ "@type": "sc:Canvas",
+ "label": "99v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4959/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4959/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4959/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4960/",
+ "@type": "sc:Canvas",
+ "label": "100r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4960/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4960/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4960/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4961/",
+ "@type": "sc:Canvas",
+ "label": "100v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4961/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4961/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4961/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4962/",
+ "@type": "sc:Canvas",
+ "label": "101r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4962/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4962/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4962/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4964/",
+ "@type": "sc:Canvas",
+ "label": "101v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4964/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4964/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4964/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4965/",
+ "@type": "sc:Canvas",
+ "label": "102r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4965/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4965/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7798,
+ "height": 9681,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4965/"
+ }
+ }
+ }
+ ],
+ "width": 7798,
+ "height": 9681
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4966/",
+ "@type": "sc:Canvas",
+ "label": "102v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4966/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4966/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4966/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4967/",
+ "@type": "sc:Canvas",
+ "label": "103r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4967/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4967/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4967/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4968/",
+ "@type": "sc:Canvas",
+ "label": "103v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4968/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4968/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4968/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4969/",
+ "@type": "sc:Canvas",
+ "label": "104r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4969/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4969/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4969/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4970/",
+ "@type": "sc:Canvas",
+ "label": "104v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4970/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4970/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4970/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58578/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2369,
+ "height": 4704,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58578/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4971/",
+ "@type": "sc:Canvas",
+ "label": "105r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4971/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4971/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4971/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4972/",
+ "@type": "sc:Canvas",
+ "label": "105v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4972/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4972/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4972/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4973/",
+ "@type": "sc:Canvas",
+ "label": "106r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4973/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4973/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4973/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58579/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2337,
+ "height": 5024,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58579/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4974/",
+ "@type": "sc:Canvas",
+ "label": "106v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4974/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4974/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4974/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4975/",
+ "@type": "sc:Canvas",
+ "label": "107r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4975/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4975/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4975/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58580/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2913,
+ "height": 4800,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58580/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4976/",
+ "@type": "sc:Canvas",
+ "label": "107v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4976/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4976/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4976/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4977/",
+ "@type": "sc:Canvas",
+ "label": "108r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4977/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4977/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4977/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4979/",
+ "@type": "sc:Canvas",
+ "label": "108v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4979/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4979/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4979/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4980/",
+ "@type": "sc:Canvas",
+ "label": "109r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4980/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4980/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4980/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4981/",
+ "@type": "sc:Canvas",
+ "label": "109v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4981/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4981/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4981/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4982/",
+ "@type": "sc:Canvas",
+ "label": "110r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4982/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4982/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4982/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4983/",
+ "@type": "sc:Canvas",
+ "label": "110v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4983/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4983/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4983/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58678/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 912,
+ "height": 1360,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58678/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4984/",
+ "@type": "sc:Canvas",
+ "label": "111r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4984/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4984/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4984/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4985/",
+ "@type": "sc:Canvas",
+ "label": "111v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4985/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4985/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4985/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58679/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 880,
+ "height": 3872,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58679/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4986/",
+ "@type": "sc:Canvas",
+ "label": "112r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4986/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4986/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9830,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4986/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9830
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4987/",
+ "@type": "sc:Canvas",
+ "label": "112v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4987/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4987/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9397,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4987/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58680/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1360,
+ "height": 3824,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58680/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9397
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4988/",
+ "@type": "sc:Canvas",
+ "label": "113r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4988/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4988/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4988/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58681/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1472,
+ "height": 1745,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58681/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4989/",
+ "@type": "sc:Canvas",
+ "label": "113v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4989/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4989/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7712,
+ "height": 9542,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4989/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58581/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1952,
+ "height": 2353,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58581/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58682/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1088,
+ "height": 1264,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58682/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7712,
+ "height": 9542
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4990/",
+ "@type": "sc:Canvas",
+ "label": "114r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4990/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4990/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4990/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58582/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2400,
+ "height": 2449,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58582/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4991/",
+ "@type": "sc:Canvas",
+ "label": "114v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4991/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4991/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4991/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58683/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 912,
+ "height": 3776,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58683/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4992/",
+ "@type": "sc:Canvas",
+ "label": "115r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4992/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4992/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9494,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4992/"
+ }
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9494
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4993/",
+ "@type": "sc:Canvas",
+ "label": "115v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4993/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4993/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4993/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58684/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1008,
+ "height": 3394,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58684/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4994/",
+ "@type": "sc:Canvas",
+ "label": "116r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4994/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4994/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7728,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4994/"
+ }
+ }
+ }
+ ],
+ "width": 7728,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4995/",
+ "@type": "sc:Canvas",
+ "label": "116v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4995/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4995/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4995/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58583/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2128,
+ "height": 2385,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58583/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58685/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 928,
+ "height": 3458,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58685/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4996/",
+ "@type": "sc:Canvas",
+ "label": "117r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4996/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4996/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9462,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4996/"
+ }
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9462
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4997/",
+ "@type": "sc:Canvas",
+ "label": "117v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4997/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4997/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7584,
+ "height": 9429,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4997/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58686/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1264,
+ "height": 2209,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58686/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7584,
+ "height": 9429
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4998/",
+ "@type": "sc:Canvas",
+ "label": "118r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4998/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4998/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9494,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4998/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58687/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 6656,
+ "height": 3490,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58687/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9494
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4999/",
+ "@type": "sc:Canvas",
+ "label": "118v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4999/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4999/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4999/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58688/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 992,
+ "height": 3298,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58688/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5000/",
+ "@type": "sc:Canvas",
+ "label": "119r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5000/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5000/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5000/"
+ }
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5001/",
+ "@type": "sc:Canvas",
+ "label": "119v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5001/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5001/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5001/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58689/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1232,
+ "height": 2545,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58689/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5002/",
+ "@type": "sc:Canvas",
+ "label": "120r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5002/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5002/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5002/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58584/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2400,
+ "height": 2401,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58584/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58690/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1424,
+ "height": 2209,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58690/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5003/",
+ "@type": "sc:Canvas",
+ "label": "120v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5003/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5003/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5003/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58691/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 5456,
+ "height": 5315,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58691/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5004/",
+ "@type": "sc:Canvas",
+ "label": "121r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5004/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5004/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5004/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5005/",
+ "@type": "sc:Canvas",
+ "label": "121v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5005/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5005/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5005/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5006/",
+ "@type": "sc:Canvas",
+ "label": "122r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5006/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5006/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9830,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5006/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9830
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5007/",
+ "@type": "sc:Canvas",
+ "label": "122v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5007/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5007/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5007/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5008/",
+ "@type": "sc:Canvas",
+ "label": "123r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5008/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5008/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5008/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5009/",
+ "@type": "sc:Canvas",
+ "label": "123v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5009/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5009/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9478,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5009/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58692/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1456,
+ "height": 4610,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58692/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9478
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5010/",
+ "@type": "sc:Canvas",
+ "label": "124r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5010/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5010/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5010/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5011/",
+ "@type": "sc:Canvas",
+ "label": "124v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5011/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5011/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5011/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5012/",
+ "@type": "sc:Canvas",
+ "label": "125r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5012/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5012/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5012/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5013/",
+ "@type": "sc:Canvas",
+ "label": "125v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5013/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5013/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5013/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5014/",
+ "@type": "sc:Canvas",
+ "label": "126r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5014/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5014/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5014/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5015/",
+ "@type": "sc:Canvas",
+ "label": "126v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5015/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5015/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5015/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58585/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2385,
+ "height": 5760,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58585/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5016/",
+ "@type": "sc:Canvas",
+ "label": "127r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5016/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5016/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5016/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5017/",
+ "@type": "sc:Canvas",
+ "label": "127v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5017/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5017/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5017/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5018/",
+ "@type": "sc:Canvas",
+ "label": "128r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5018/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5018/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5018/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5019/",
+ "@type": "sc:Canvas",
+ "label": "128v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5019/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5019/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5019/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5020/",
+ "@type": "sc:Canvas",
+ "label": "129r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5020/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5020/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5020/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5022/",
+ "@type": "sc:Canvas",
+ "label": "129v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5022/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5022/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5022/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5023/",
+ "@type": "sc:Canvas",
+ "label": "130r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5023/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5023/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5023/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5024/",
+ "@type": "sc:Canvas",
+ "label": "130v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5024/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5024/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5024/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5025/",
+ "@type": "sc:Canvas",
+ "label": "131r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5025/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5025/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5025/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58586/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2129,
+ "height": 5312,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58586/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5026/",
+ "@type": "sc:Canvas",
+ "label": "131v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5026/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5026/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5026/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5027/",
+ "@type": "sc:Canvas",
+ "label": "132r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5027/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5027/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5027/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58587/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2241,
+ "height": 4864,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58587/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5028/",
+ "@type": "sc:Canvas",
+ "label": "132v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5028/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5028/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5028/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5029/",
+ "@type": "sc:Canvas",
+ "label": "133r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5029/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5029/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5029/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58588/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2273,
+ "height": 5424,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58588/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5030/",
+ "@type": "sc:Canvas",
+ "label": "133v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5030/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5030/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5030/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5031/",
+ "@type": "sc:Canvas",
+ "label": "134r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5031/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5031/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5031/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58589/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2097,
+ "height": 6416,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58589/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5032/",
+ "@type": "sc:Canvas",
+ "label": "134v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5032/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5032/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5032/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5033/",
+ "@type": "sc:Canvas",
+ "label": "135r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5033/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5033/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5033/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5034/",
+ "@type": "sc:Canvas",
+ "label": "135v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5034/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5034/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5034/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5035/",
+ "@type": "sc:Canvas",
+ "label": "136r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5035/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5035/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5035/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58590/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2289,
+ "height": 5616,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58590/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5037/",
+ "@type": "sc:Canvas",
+ "label": "136v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5037/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5037/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5037/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5038/",
+ "@type": "sc:Canvas",
+ "label": "137r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5038/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5038/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9734,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5038/"
+ }
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9734
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5039/",
+ "@type": "sc:Canvas",
+ "label": "137v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5039/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5039/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5039/"
+ }
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5040/",
+ "@type": "sc:Canvas",
+ "label": "138r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5040/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5040/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5040/"
+ }
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5041/",
+ "@type": "sc:Canvas",
+ "label": "138v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5041/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5041/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5041/"
+ }
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5042/",
+ "@type": "sc:Canvas",
+ "label": "139r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5042/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5042/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7744,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5042/"
+ }
+ }
+ }
+ ],
+ "width": 7744,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5043/",
+ "@type": "sc:Canvas",
+ "label": "139v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5043/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5043/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7744,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5043/"
+ }
+ }
+ }
+ ],
+ "width": 7744,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5044/",
+ "@type": "sc:Canvas",
+ "label": "140r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5044/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5044/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5044/"
+ }
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5045/",
+ "@type": "sc:Canvas",
+ "label": "140v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5045/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5045/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5045/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58591/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 3089,
+ "height": 6032,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58591/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5046/",
+ "@type": "sc:Canvas",
+ "label": "141r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5046/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5046/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5046/"
+ }
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5047/",
+ "@type": "sc:Canvas",
+ "label": "141v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5047/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5047/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5047/"
+ }
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5048/",
+ "@type": "sc:Canvas",
+ "label": "142r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5048/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5048/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7744,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5048/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58592/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2353,
+ "height": 5776,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58592/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7744,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5049/",
+ "@type": "sc:Canvas",
+ "label": "142v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5049/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5049/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7744,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5049/"
+ }
+ }
+ }
+ ],
+ "width": 7744,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5050/",
+ "@type": "sc:Canvas",
+ "label": "143r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5050/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5050/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7744,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5050/"
+ }
+ }
+ }
+ ],
+ "width": 7744,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5052/",
+ "@type": "sc:Canvas",
+ "label": "143v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5052/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5052/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9734,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5052/"
+ }
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9734
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5053/",
+ "@type": "sc:Canvas",
+ "label": "144r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5053/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5053/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5053/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5054/",
+ "@type": "sc:Canvas",
+ "label": "144v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5054/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5054/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5054/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5055/",
+ "@type": "sc:Canvas",
+ "label": "145r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5055/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5055/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5055/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5056/",
+ "@type": "sc:Canvas",
+ "label": "145v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5056/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5056/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5056/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5057/",
+ "@type": "sc:Canvas",
+ "label": "146r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5057/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5057/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5057/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5058/",
+ "@type": "sc:Canvas",
+ "label": "146v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5058/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5058/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5058/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5059/",
+ "@type": "sc:Canvas",
+ "label": "147r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5059/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5059/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5059/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5060/",
+ "@type": "sc:Canvas",
+ "label": "147v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5060/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5060/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5060/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58593/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2384,
+ "height": 2673,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58593/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5061/",
+ "@type": "sc:Canvas",
+ "label": "148r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5061/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5061/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5061/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5062/",
+ "@type": "sc:Canvas",
+ "label": "148v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5062/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5062/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5062/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58594/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2416,
+ "height": 3009,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58594/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5063/",
+ "@type": "sc:Canvas",
+ "label": "149r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5063/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5063/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5063/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5064/",
+ "@type": "sc:Canvas",
+ "label": "149v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5064/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5064/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5064/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5065/",
+ "@type": "sc:Canvas",
+ "label": "150r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5065/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5065/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5065/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5067/",
+ "@type": "sc:Canvas",
+ "label": "150v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5067/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5067/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5067/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5068/",
+ "@type": "sc:Canvas",
+ "label": "151r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5068/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5068/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5068/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5069/",
+ "@type": "sc:Canvas",
+ "label": "151v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5069/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5069/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5069/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5070/",
+ "@type": "sc:Canvas",
+ "label": "152r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5070/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5070/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5070/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5071/",
+ "@type": "sc:Canvas",
+ "label": "152v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5071/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5071/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5071/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5072/",
+ "@type": "sc:Canvas",
+ "label": "153r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5072/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5072/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5072/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58595/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2065,
+ "height": 4064,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58595/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5073/",
+ "@type": "sc:Canvas",
+ "label": "153v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5073/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5073/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5073/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58693/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 944,
+ "height": 2416,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58693/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5074/",
+ "@type": "sc:Canvas",
+ "label": "154r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5074/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5074/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5074/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5075/",
+ "@type": "sc:Canvas",
+ "label": "154v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5075/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5075/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5075/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5076/",
+ "@type": "sc:Canvas",
+ "label": "155r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5076/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5076/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5076/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5077/",
+ "@type": "sc:Canvas",
+ "label": "155v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5077/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5077/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5077/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5078/",
+ "@type": "sc:Canvas",
+ "label": "156r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5078/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5078/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5078/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5079/",
+ "@type": "sc:Canvas",
+ "label": "156v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5079/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5079/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5079/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58694/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 912,
+ "height": 3376,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58694/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5080/",
+ "@type": "sc:Canvas",
+ "label": "157r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5080/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5080/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5080/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58596/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 6528,
+ "height": 2753,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58596/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58695/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 928,
+ "height": 1232,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58695/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5082/",
+ "@type": "sc:Canvas",
+ "label": "157v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5082/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5082/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5082/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58696/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 864,
+ "height": 1152,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58696/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5083/",
+ "@type": "sc:Canvas",
+ "label": "158r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5083/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5083/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5083/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58597/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 6576,
+ "height": 2801,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58597/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58697/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1040,
+ "height": 1088,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58697/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5084/",
+ "@type": "sc:Canvas",
+ "label": "158v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5084/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5084/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5084/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58698/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 864,
+ "height": 3632,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58698/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5085/",
+ "@type": "sc:Canvas",
+ "label": "159r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5085/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5085/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5085/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58598/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 6400,
+ "height": 2769,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58598/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5086/",
+ "@type": "sc:Canvas",
+ "label": "159v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5086/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5086/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5086/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58699/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 960,
+ "height": 3328,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58699/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58156/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 848,
+ "height": 2832,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58156/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5087/",
+ "@type": "sc:Canvas",
+ "label": "160r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5087/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5087/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5087/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5088/",
+ "@type": "sc:Canvas",
+ "label": "160v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5088/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5088/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5088/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5089/",
+ "@type": "sc:Canvas",
+ "label": "161r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5089/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5089/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5089/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5090/",
+ "@type": "sc:Canvas",
+ "label": "161v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5090/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5090/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5090/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58700/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 976,
+ "height": 1280,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58700/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5091/",
+ "@type": "sc:Canvas",
+ "label": "162r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5091/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5091/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5091/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5092/",
+ "@type": "sc:Canvas",
+ "label": "162v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5092/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5092/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5092/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5093/",
+ "@type": "sc:Canvas",
+ "label": "163r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5093/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5093/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5093/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5094/",
+ "@type": "sc:Canvas",
+ "label": "163v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5094/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5094/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5094/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5095/",
+ "@type": "sc:Canvas",
+ "label": "164r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5095/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5095/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5095/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5097/",
+ "@type": "sc:Canvas",
+ "label": "164v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5097/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5097/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5097/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58701/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 848,
+ "height": 2448,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58701/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5098/",
+ "@type": "sc:Canvas",
+ "label": "165r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5098/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5098/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5098/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5099/",
+ "@type": "sc:Canvas",
+ "label": "165v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5099/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5099/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5099/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58702/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1024,
+ "height": 2896,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58702/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5100/",
+ "@type": "sc:Canvas",
+ "label": "166r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5100/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5100/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5100/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5101/",
+ "@type": "sc:Canvas",
+ "label": "166v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5101/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5101/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5101/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5102/",
+ "@type": "sc:Canvas",
+ "label": "167r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5102/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5102/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5102/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5103/",
+ "@type": "sc:Canvas",
+ "label": "167v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5103/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5103/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5103/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5104/",
+ "@type": "sc:Canvas",
+ "label": "168r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5104/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5104/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5104/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5105/",
+ "@type": "sc:Canvas",
+ "label": "168v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5105/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5105/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9558,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5105/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58703/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1184,
+ "height": 2768,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58703/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58157/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 736,
+ "height": 1056,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58157/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9558
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5106/",
+ "@type": "sc:Canvas",
+ "label": "169r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5106/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5106/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7728,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5106/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58704/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2352,
+ "height": 1232,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58704/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7728,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5107/",
+ "@type": "sc:Canvas",
+ "label": "169v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5107/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5107/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9558,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5107/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9558
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5108/",
+ "@type": "sc:Canvas",
+ "label": "170r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5108/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5108/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5108/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5109/",
+ "@type": "sc:Canvas",
+ "label": "170v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5109/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5109/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9558,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5109/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58599/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2192,
+ "height": 3073,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58599/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9558
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5110/",
+ "@type": "sc:Canvas",
+ "label": "171r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5110/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5110/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5110/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5112/",
+ "@type": "sc:Canvas",
+ "label": "171v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5112/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5112/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9558,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5112/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58600/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2400,
+ "height": 2433,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58600/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9558
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5113/",
+ "@type": "sc:Canvas",
+ "label": "172r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5113/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5113/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5113/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5114/",
+ "@type": "sc:Canvas",
+ "label": "172v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5114/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5114/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9558,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5114/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58601/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1953,
+ "height": 2352,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58601/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58705/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1296,
+ "height": 1984,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58705/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9558
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5115/",
+ "@type": "sc:Canvas",
+ "label": "173r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5115/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5115/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5115/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5116/",
+ "@type": "sc:Canvas",
+ "label": "173v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5116/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5116/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9558,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5116/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9558
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5117/",
+ "@type": "sc:Canvas",
+ "label": "174r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5117/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5117/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9558,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5117/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9558
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5118/",
+ "@type": "sc:Canvas",
+ "label": "174v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5118/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5118/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5118/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5119/",
+ "@type": "sc:Canvas",
+ "label": "175r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5119/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5119/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9558,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5119/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9558
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5120/",
+ "@type": "sc:Canvas",
+ "label": "175v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5120/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5120/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5120/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5121/",
+ "@type": "sc:Canvas",
+ "label": "176r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5121/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5121/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9558,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5121/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9558
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5122/",
+ "@type": "sc:Canvas",
+ "label": "176v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5122/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5122/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5122/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5123/",
+ "@type": "sc:Canvas",
+ "label": "177r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5123/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5123/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9558,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5123/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9558
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5124/",
+ "@type": "sc:Canvas",
+ "label": "177v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5124/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5124/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5124/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58706/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1424,
+ "height": 1328,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58706/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5125/",
+ "@type": "sc:Canvas",
+ "label": "178r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5125/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5125/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9558,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5125/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58707/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1168,
+ "height": 1248,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58707/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9558
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5127/",
+ "@type": "sc:Canvas",
+ "label": "178v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5127/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5127/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7728,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5127/"
+ }
+ }
+ }
+ ],
+ "width": 7728,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5128/",
+ "@type": "sc:Canvas",
+ "label": "179r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5128/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5128/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9558,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5128/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9558
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5129/",
+ "@type": "sc:Canvas",
+ "label": "179v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5129/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5129/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5129/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58708/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1008,
+ "height": 1104,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58708/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5130/",
+ "@type": "sc:Canvas",
+ "label": "180r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5130/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5130/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5130/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58709/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1296,
+ "height": 2640,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58709/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5131/",
+ "@type": "sc:Canvas",
+ "label": "180v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5131/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5131/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5131/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58710/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 896,
+ "height": 2640,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58710/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5132/",
+ "@type": "sc:Canvas",
+ "label": "181r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5132/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5132/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5132/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58158/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1184,
+ "height": 480,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58158/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5133/",
+ "@type": "sc:Canvas",
+ "label": "181v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5133/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5133/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5133/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5134/",
+ "@type": "sc:Canvas",
+ "label": "182r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5134/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5134/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5134/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5135/",
+ "@type": "sc:Canvas",
+ "label": "182v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5135/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5135/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5135/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58602/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2016,
+ "height": 2209,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58602/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58711/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1120,
+ "height": 1200,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58711/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5136/",
+ "@type": "sc:Canvas",
+ "label": "183r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5136/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5136/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5136/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5137/",
+ "@type": "sc:Canvas",
+ "label": "183v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5137/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5137/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5137/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5138/",
+ "@type": "sc:Canvas",
+ "label": "184r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5138/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5138/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5138/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5139/",
+ "@type": "sc:Canvas",
+ "label": "184v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5139/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5139/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5139/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58712/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 880,
+ "height": 3104,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58712/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5140/",
+ "@type": "sc:Canvas",
+ "label": "185r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5140/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5140/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5140/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58159/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1264,
+ "height": 464,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58159/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5142/",
+ "@type": "sc:Canvas",
+ "label": "185v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5142/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5142/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5142/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5143/",
+ "@type": "sc:Canvas",
+ "label": "186r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5143/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5143/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5143/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58160/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1280,
+ "height": 544,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58160/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5144/",
+ "@type": "sc:Canvas",
+ "label": "186v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5144/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5144/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5144/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5145/",
+ "@type": "sc:Canvas",
+ "label": "187r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5145/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5145/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5145/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58161/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1280,
+ "height": 544,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58161/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5146/",
+ "@type": "sc:Canvas",
+ "label": "187v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5146/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5146/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5146/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5147/",
+ "@type": "sc:Canvas",
+ "label": "188r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5147/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5147/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5147/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58162/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1184,
+ "height": 480,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58162/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58603/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2241,
+ "height": 4064,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58603/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5148/",
+ "@type": "sc:Canvas",
+ "label": "188v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5148/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5148/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5148/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5149/",
+ "@type": "sc:Canvas",
+ "label": "189r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5149/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5149/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5149/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58163/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1184,
+ "height": 480,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58163/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5150/",
+ "@type": "sc:Canvas",
+ "label": "189v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5150/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5150/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5150/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5151/",
+ "@type": "sc:Canvas",
+ "label": "190r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5151/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5151/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5151/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58604/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2241,
+ "height": 4288,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58604/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58713/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1072,
+ "height": 1376,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58713/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5152/",
+ "@type": "sc:Canvas",
+ "label": "190v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5152/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5152/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5152/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5153/",
+ "@type": "sc:Canvas",
+ "label": "191r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5153/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5153/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5153/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5154/",
+ "@type": "sc:Canvas",
+ "label": "191v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5154/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5154/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5154/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58164/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 624,
+ "height": 1120,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58164/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58605/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2064,
+ "height": 2417,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58605/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58714/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 976,
+ "height": 1056,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58714/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5155/",
+ "@type": "sc:Canvas",
+ "label": "192r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5155/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5155/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5155/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5156/",
+ "@type": "sc:Canvas",
+ "label": "192v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5156/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5156/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5156/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58165/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1184,
+ "height": 480,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58165/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5157/",
+ "@type": "sc:Canvas",
+ "label": "193r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5157/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5157/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5157/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5158/",
+ "@type": "sc:Canvas",
+ "label": "193v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5158/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5158/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5158/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5159/",
+ "@type": "sc:Canvas",
+ "label": "194r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5159/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5159/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5159/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5160/",
+ "@type": "sc:Canvas",
+ "label": "194v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5160/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5160/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5160/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5161/",
+ "@type": "sc:Canvas",
+ "label": "195r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5161/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5161/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5161/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5162/",
+ "@type": "sc:Canvas",
+ "label": "195v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5162/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5162/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5162/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5163/",
+ "@type": "sc:Canvas",
+ "label": "196r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5163/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5163/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5163/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5164/",
+ "@type": "sc:Canvas",
+ "label": "196v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5164/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5164/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5164/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5165/",
+ "@type": "sc:Canvas",
+ "label": "197r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5165/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5165/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5165/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5166/",
+ "@type": "sc:Canvas",
+ "label": "197v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5166/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5166/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5166/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5167/",
+ "@type": "sc:Canvas",
+ "label": "198r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5167/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5167/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5167/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5168/",
+ "@type": "sc:Canvas",
+ "label": "198v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5168/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5168/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5168/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5169/",
+ "@type": "sc:Canvas",
+ "label": "199r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5169/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5169/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5169/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5171/",
+ "@type": "sc:Canvas",
+ "label": "199v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5171/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5171/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5171/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5172/",
+ "@type": "sc:Canvas",
+ "label": "200r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5172/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5172/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5172/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5173/",
+ "@type": "sc:Canvas",
+ "label": "200v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5173/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5173/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5173/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58606/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2513,
+ "height": 4976,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58606/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5174/",
+ "@type": "sc:Canvas",
+ "label": "201r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5174/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5174/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5174/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5175/",
+ "@type": "sc:Canvas",
+ "label": "201v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5175/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5175/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5175/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58607/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2273,
+ "height": 6272,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58607/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5176/",
+ "@type": "sc:Canvas",
+ "label": "202r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5176/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5176/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5176/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5177/",
+ "@type": "sc:Canvas",
+ "label": "202v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5177/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5177/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5177/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5178/",
+ "@type": "sc:Canvas",
+ "label": "203r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5178/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5178/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5178/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5179/",
+ "@type": "sc:Canvas",
+ "label": "203v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5179/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5179/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5179/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5180/",
+ "@type": "sc:Canvas",
+ "label": "204r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5180/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5180/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5180/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5181/",
+ "@type": "sc:Canvas",
+ "label": "204v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5181/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5181/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5181/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5182/",
+ "@type": "sc:Canvas",
+ "label": "205r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5182/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5182/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5182/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5183/",
+ "@type": "sc:Canvas",
+ "label": "205v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5183/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5183/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5183/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5184/",
+ "@type": "sc:Canvas",
+ "label": "206r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5184/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5184/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5184/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5186/",
+ "@type": "sc:Canvas",
+ "label": "206v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5186/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5186/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5186/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5187/",
+ "@type": "sc:Canvas",
+ "label": "207r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5187/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5187/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5187/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5188/",
+ "@type": "sc:Canvas",
+ "label": "207v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5188/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5188/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5188/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5189/",
+ "@type": "sc:Canvas",
+ "label": "208r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5189/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5189/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5189/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5190/",
+ "@type": "sc:Canvas",
+ "label": "208v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5190/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5190/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5190/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5191/",
+ "@type": "sc:Canvas",
+ "label": "209r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5191/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5191/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5191/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5192/",
+ "@type": "sc:Canvas",
+ "label": "209v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5192/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5192/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5192/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5193/",
+ "@type": "sc:Canvas",
+ "label": "210r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5193/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5193/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9526,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5193/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9526
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5194/",
+ "@type": "sc:Canvas",
+ "label": "210v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5194/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5194/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5194/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5195/",
+ "@type": "sc:Canvas",
+ "label": "211r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5195/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5195/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5195/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5196/",
+ "@type": "sc:Canvas",
+ "label": "211v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5196/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5196/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5196/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58715/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 736,
+ "height": 1120,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58715/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5197/",
+ "@type": "sc:Canvas",
+ "label": "212r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5197/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5197/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5197/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58608/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 5728,
+ "height": 3041,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58608/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5198/",
+ "@type": "sc:Canvas",
+ "label": "212v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5198/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5198/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5198/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58716/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 800,
+ "height": 992,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58716/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5199/",
+ "@type": "sc:Canvas",
+ "label": "213r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5199/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5199/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5199/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5201/",
+ "@type": "sc:Canvas",
+ "label": "213v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5201/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5201/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5201/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5202/",
+ "@type": "sc:Canvas",
+ "label": "214r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5202/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5202/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5202/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58609/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 6352,
+ "height": 2865,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58609/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5203/",
+ "@type": "sc:Canvas",
+ "label": "214v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5203/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5203/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5203/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5204/",
+ "@type": "sc:Canvas",
+ "label": "215r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5204/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5204/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5204/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5205/",
+ "@type": "sc:Canvas",
+ "label": "215v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5205/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5205/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5205/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58717/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1040,
+ "height": 1024,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58717/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5206/",
+ "@type": "sc:Canvas",
+ "label": "216r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5206/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5206/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5206/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5207/",
+ "@type": "sc:Canvas",
+ "label": "216v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5207/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5207/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5207/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5208/",
+ "@type": "sc:Canvas",
+ "label": "217r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5208/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5208/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5208/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5209/",
+ "@type": "sc:Canvas",
+ "label": "217v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5209/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5209/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5209/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5210/",
+ "@type": "sc:Canvas",
+ "label": "218r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5210/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5210/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5210/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5211/",
+ "@type": "sc:Canvas",
+ "label": "218v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5211/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5211/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5211/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58718/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 992,
+ "height": 880,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58718/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5212/",
+ "@type": "sc:Canvas",
+ "label": "219r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5212/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5212/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5212/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5213/",
+ "@type": "sc:Canvas",
+ "label": "219v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5213/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5213/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5213/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58719/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1024,
+ "height": 1296,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58719/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5214/",
+ "@type": "sc:Canvas",
+ "label": "220r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5214/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5214/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5214/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5216/",
+ "@type": "sc:Canvas",
+ "label": "220v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5216/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5216/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5216/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58720/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 992,
+ "height": 1088,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58720/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5217/",
+ "@type": "sc:Canvas",
+ "label": "221r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5217/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5217/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5217/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58721/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1373,
+ "height": 1600,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58721/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5218/",
+ "@type": "sc:Canvas",
+ "label": "221v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5218/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5218/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5218/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5219/",
+ "@type": "sc:Canvas",
+ "label": "222r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5219/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5219/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5219/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5220/",
+ "@type": "sc:Canvas",
+ "label": "222v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5220/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5220/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5220/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58610/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2320,
+ "height": 3394,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58610/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5221/",
+ "@type": "sc:Canvas",
+ "label": "223r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5221/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5221/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5221/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5222/",
+ "@type": "sc:Canvas",
+ "label": "223v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5222/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5222/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5222/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58611/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2369,
+ "height": 4848,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58611/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5223/",
+ "@type": "sc:Canvas",
+ "label": "224r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5223/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5223/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5223/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5224/",
+ "@type": "sc:Canvas",
+ "label": "224v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5224/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5224/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5224/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58612/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2737,
+ "height": 4608,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58612/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58722/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 784,
+ "height": 1072,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58722/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5225/",
+ "@type": "sc:Canvas",
+ "label": "225r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5225/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5225/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5225/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5226/",
+ "@type": "sc:Canvas",
+ "label": "225v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5226/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5226/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5226/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5227/",
+ "@type": "sc:Canvas",
+ "label": "226r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5227/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5227/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5227/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5228/",
+ "@type": "sc:Canvas",
+ "label": "226v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5228/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5228/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5228/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5229/",
+ "@type": "sc:Canvas",
+ "label": "227r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5229/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5229/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5229/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5231/",
+ "@type": "sc:Canvas",
+ "label": "227v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5231/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5231/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5231/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5232/",
+ "@type": "sc:Canvas",
+ "label": "228r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5232/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5232/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5232/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58613/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2401,
+ "height": 4672,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58613/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5233/",
+ "@type": "sc:Canvas",
+ "label": "228v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5233/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5233/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5233/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5234/",
+ "@type": "sc:Canvas",
+ "label": "229r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5234/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5234/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5234/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5235/",
+ "@type": "sc:Canvas",
+ "label": "229v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5235/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5235/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5235/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5236/",
+ "@type": "sc:Canvas",
+ "label": "230r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5236/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5236/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5236/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58614/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2449,
+ "height": 5280,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58614/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5237/",
+ "@type": "sc:Canvas",
+ "label": "230v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5237/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5237/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5237/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5238/",
+ "@type": "sc:Canvas",
+ "label": "231r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5238/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5238/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5238/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58615/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2705,
+ "height": 6096,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58615/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5239/",
+ "@type": "sc:Canvas",
+ "label": "231v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5239/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5239/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5239/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5240/",
+ "@type": "sc:Canvas",
+ "label": "232r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5240/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5240/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5240/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58616/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2577,
+ "height": 6304,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58616/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5241/",
+ "@type": "sc:Canvas",
+ "label": "232v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5241/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5241/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5241/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5242/",
+ "@type": "sc:Canvas",
+ "label": "233r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5242/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5242/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5242/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5243/",
+ "@type": "sc:Canvas",
+ "label": "233v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5243/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5243/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5243/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5244/",
+ "@type": "sc:Canvas",
+ "label": "234r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5244/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5244/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5244/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58617/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2401,
+ "height": 5424,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58617/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5246/",
+ "@type": "sc:Canvas",
+ "label": "234v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5246/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5246/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5246/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5247/",
+ "@type": "sc:Canvas",
+ "label": "235r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5247/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5247/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5247/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5248/",
+ "@type": "sc:Canvas",
+ "label": "235v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5248/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5248/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5248/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5249/",
+ "@type": "sc:Canvas",
+ "label": "236r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5249/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5249/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5249/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58723/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 944,
+ "height": 1520,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58723/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5250/",
+ "@type": "sc:Canvas",
+ "label": "236v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5250/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5250/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5250/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58724/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1120,
+ "height": 5280,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58724/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5251/",
+ "@type": "sc:Canvas",
+ "label": "237r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5251/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5251/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5251/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58618/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 5888,
+ "height": 2993,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58618/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58725/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1040,
+ "height": 1168,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58725/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5252/",
+ "@type": "sc:Canvas",
+ "label": "237v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5252/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5252/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5252/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58726/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 944,
+ "height": 1152,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58726/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5253/",
+ "@type": "sc:Canvas",
+ "label": "238r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5253/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5253/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5253/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5254/",
+ "@type": "sc:Canvas",
+ "label": "238v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5254/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5254/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5254/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58727/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 880,
+ "height": 1056,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58727/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5255/",
+ "@type": "sc:Canvas",
+ "label": "239r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5255/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5255/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5255/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58619/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 4368,
+ "height": 2545,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58619/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5256/",
+ "@type": "sc:Canvas",
+ "label": "239v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5256/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5256/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5256/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58728/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 816,
+ "height": 1184,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58728/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5257/",
+ "@type": "sc:Canvas",
+ "label": "240r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5257/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5257/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5257/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5258/",
+ "@type": "sc:Canvas",
+ "label": "240v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5258/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5258/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5258/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5259/",
+ "@type": "sc:Canvas",
+ "label": "241r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5259/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5259/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5259/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5260/",
+ "@type": "sc:Canvas",
+ "label": "241v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5260/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5260/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5260/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58729/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 976,
+ "height": 2800,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58729/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5261/",
+ "@type": "sc:Canvas",
+ "label": "242r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5261/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5261/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5261/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5262/",
+ "@type": "sc:Canvas",
+ "label": "242v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5262/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5262/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5262/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5263/",
+ "@type": "sc:Canvas",
+ "label": "243r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5263/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5263/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5263/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5264/",
+ "@type": "sc:Canvas",
+ "label": "243v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5264/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5264/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5264/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5265/",
+ "@type": "sc:Canvas",
+ "label": "244r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5265/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5265/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5265/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5266/",
+ "@type": "sc:Canvas",
+ "label": "244v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5266/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5266/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5266/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58620/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 960,
+ "height": 1312,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58620/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58730/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 960,
+ "height": 1232,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58730/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5267/",
+ "@type": "sc:Canvas",
+ "label": "245r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5267/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5267/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5267/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58731/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 864,
+ "height": 1136,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58731/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5268/",
+ "@type": "sc:Canvas",
+ "label": "245v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5268/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5268/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5268/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58732/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1024,
+ "height": 1712,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58732/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5269/",
+ "@type": "sc:Canvas",
+ "label": "246r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5269/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5269/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5269/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58733/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1430,
+ "height": 1560,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58733/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5270/",
+ "@type": "sc:Canvas",
+ "label": "246v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5270/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5270/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5270/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58734/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 992,
+ "height": 1440,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58734/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5271/",
+ "@type": "sc:Canvas",
+ "label": "247r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5271/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5271/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5271/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5272/",
+ "@type": "sc:Canvas",
+ "label": "247v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5272/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5272/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5272/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5273/",
+ "@type": "sc:Canvas",
+ "label": "248r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5273/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5273/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5273/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5275/",
+ "@type": "sc:Canvas",
+ "label": "248v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5275/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5275/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9510,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5275/"
+ }
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9510
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5276/",
+ "@type": "sc:Canvas",
+ "label": "249r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5276/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5276/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5276/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58621/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2176,
+ "height": 2209,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58621/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5277/",
+ "@type": "sc:Canvas",
+ "label": "249v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5277/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5277/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5277/"
+ }
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5278/",
+ "@type": "sc:Canvas",
+ "label": "250r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5278/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5278/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5278/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58166/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1968,
+ "height": 496,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58166/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5279/",
+ "@type": "sc:Canvas",
+ "label": "250v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5279/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5279/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5279/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58622/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2224,
+ "height": 1649,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58622/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5280/",
+ "@type": "sc:Canvas",
+ "label": "251r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5280/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5280/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5280/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58167/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1808,
+ "height": 480,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58167/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5281/",
+ "@type": "sc:Canvas",
+ "label": "251v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5281/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5281/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5281/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58623/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2128,
+ "height": 1585,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58623/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5282/",
+ "@type": "sc:Canvas",
+ "label": "252r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5282/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5282/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5282/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5283/",
+ "@type": "sc:Canvas",
+ "label": "252v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5283/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5283/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9830,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5283/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58735/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1072,
+ "height": 1360,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58735/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9830
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5284/",
+ "@type": "sc:Canvas",
+ "label": "253r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5284/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5284/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5284/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5285/",
+ "@type": "sc:Canvas",
+ "label": "253v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5285/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5285/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9830,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5285/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58624/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2289,
+ "height": 5200,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58624/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9830
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5286/",
+ "@type": "sc:Canvas",
+ "label": "254r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5286/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5286/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9830,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5286/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9830
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5287/",
+ "@type": "sc:Canvas",
+ "label": "254v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5287/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5287/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5287/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5288/",
+ "@type": "sc:Canvas",
+ "label": "255r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5288/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5288/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9830,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5288/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58168/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1616,
+ "height": 480,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58168/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58625/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2192,
+ "height": 2769,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58625/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9830
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5290/",
+ "@type": "sc:Canvas",
+ "label": "255v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5290/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5290/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5290/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5291/",
+ "@type": "sc:Canvas",
+ "label": "256r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5291/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5291/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9814,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5291/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58626/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1968,
+ "height": 496,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58626/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58736/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 3874,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58736/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9814
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5292/",
+ "@type": "sc:Canvas",
+ "label": "256v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5292/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5292/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5292/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5293/",
+ "@type": "sc:Canvas",
+ "label": "257r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5293/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5293/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5293/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58169/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1968,
+ "height": 496,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58169/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5294/",
+ "@type": "sc:Canvas",
+ "label": "257v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5294/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5294/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5294/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5295/",
+ "@type": "sc:Canvas",
+ "label": "258r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5295/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5295/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5295/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58170/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2304,
+ "height": 608,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58170/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5296/",
+ "@type": "sc:Canvas",
+ "label": "258v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5296/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5296/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5296/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5297/",
+ "@type": "sc:Canvas",
+ "label": "259r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5297/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5297/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5297/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58171/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1648,
+ "height": 560,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58171/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5298/",
+ "@type": "sc:Canvas",
+ "label": "259v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5298/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5298/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5298/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58172/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 912,
+ "height": 480,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58172/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58627/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2992,
+ "height": 3025,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58627/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5299/",
+ "@type": "sc:Canvas",
+ "label": "260r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5299/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5299/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5299/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5300/",
+ "@type": "sc:Canvas",
+ "label": "260v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5300/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5300/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5300/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58737/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1072,
+ "height": 1488,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58737/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5301/",
+ "@type": "sc:Canvas",
+ "label": "261r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5301/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5301/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5301/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58173/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1888,
+ "height": 528,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58173/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5302/",
+ "@type": "sc:Canvas",
+ "label": "261v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5302/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5302/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5302/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5303/",
+ "@type": "sc:Canvas",
+ "label": "262r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5303/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5303/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5303/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58174/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1888,
+ "height": 528,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58174/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5304/",
+ "@type": "sc:Canvas",
+ "label": "262v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5304/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5304/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5304/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5305/",
+ "@type": "sc:Canvas",
+ "label": "263r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5305/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5305/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5305/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58175/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2304,
+ "height": 496,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58175/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5306/",
+ "@type": "sc:Canvas",
+ "label": "263v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5306/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5306/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5306/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58628/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2369,
+ "height": 4080,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58628/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5307/",
+ "@type": "sc:Canvas",
+ "label": "264r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5307/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5307/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5307/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58176/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2272,
+ "height": 496,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58176/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5308/",
+ "@type": "sc:Canvas",
+ "label": "264v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5308/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5308/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5308/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5309/",
+ "@type": "sc:Canvas",
+ "label": "265r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5309/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5309/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5309/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58177/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1872,
+ "height": 480,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58177/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5310/",
+ "@type": "sc:Canvas",
+ "label": "265v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5310/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5310/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5310/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5311/",
+ "@type": "sc:Canvas",
+ "label": "266r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5311/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5311/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5311/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58178/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1872,
+ "height": 544,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58178/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5312/",
+ "@type": "sc:Canvas",
+ "label": "266v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5312/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5312/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5312/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5313/",
+ "@type": "sc:Canvas",
+ "label": "267r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5313/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5313/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5313/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58179/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2272,
+ "height": 496,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58179/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58629/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2305,
+ "height": 4512,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58629/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5314/",
+ "@type": "sc:Canvas",
+ "label": "267v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5314/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5314/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5314/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5315/",
+ "@type": "sc:Canvas",
+ "label": "268r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5315/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5315/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5315/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58180/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2304,
+ "height": 496,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58180/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5316/",
+ "@type": "sc:Canvas",
+ "label": "268v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5316/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5316/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5316/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5317/",
+ "@type": "sc:Canvas",
+ "label": "269r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5317/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5317/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5317/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5319/",
+ "@type": "sc:Canvas",
+ "label": "269v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5319/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5319/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5319/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5320/",
+ "@type": "sc:Canvas",
+ "label": "270r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5320/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5320/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5320/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5321/",
+ "@type": "sc:Canvas",
+ "label": "270v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5321/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5321/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5321/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58738/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 784,
+ "height": 1168,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58738/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5322/",
+ "@type": "sc:Canvas",
+ "label": "271r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5322/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5322/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5322/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5323/",
+ "@type": "sc:Canvas",
+ "label": "271v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5323/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5323/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5323/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58181/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 896,
+ "height": 416,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58181/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58739/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1104,
+ "height": 4480,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58739/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5324/",
+ "@type": "sc:Canvas",
+ "label": "272r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5324/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5324/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5324/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58182/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2240,
+ "height": 432,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58182/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5325/",
+ "@type": "sc:Canvas",
+ "label": "272v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5325/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5325/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5325/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5326/",
+ "@type": "sc:Canvas",
+ "label": "273r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5326/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5326/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5326/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58183/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2368,
+ "height": 432,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58183/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5327/",
+ "@type": "sc:Canvas",
+ "label": "273v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5327/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5327/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5327/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5328/",
+ "@type": "sc:Canvas",
+ "label": "274r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5328/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5328/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5328/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58184/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2288,
+ "height": 512,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58184/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5329/",
+ "@type": "sc:Canvas",
+ "label": "274v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5329/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5329/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5329/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5330/",
+ "@type": "sc:Canvas",
+ "label": "275r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5330/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5330/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5330/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58185/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2256,
+ "height": 496,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58185/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5331/",
+ "@type": "sc:Canvas",
+ "label": "275v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5331/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5331/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5331/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5332/",
+ "@type": "sc:Canvas",
+ "label": "276r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5332/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5332/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5332/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58630/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2368,
+ "height": 496,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58630/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58740/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 4578,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58740/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58186/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 5104,
+ "height": 832,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58186/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/6912/",
+ "@type": "sc:Canvas",
+ "label": "276r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/6912/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/6912/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 4578,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/6912/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 4578
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5333/",
+ "@type": "sc:Canvas",
+ "label": "276v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5333/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5333/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5333/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5334/",
+ "@type": "sc:Canvas",
+ "label": "277r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5334/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5334/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5334/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58187/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2080,
+ "height": 576,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58187/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5335/",
+ "@type": "sc:Canvas",
+ "label": "277v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5335/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5335/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5335/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5336/",
+ "@type": "sc:Canvas",
+ "label": "278r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5336/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5336/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5336/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58188/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2032,
+ "height": 576,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58188/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5337/",
+ "@type": "sc:Canvas",
+ "label": "278v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5337/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5337/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5337/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5338/",
+ "@type": "sc:Canvas",
+ "label": "279r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5338/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5338/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5338/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58189/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2256,
+ "height": 496,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58189/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5339/",
+ "@type": "sc:Canvas",
+ "label": "279v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5339/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5339/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5339/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5340/",
+ "@type": "sc:Canvas",
+ "label": "280r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5340/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5340/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5340/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58190/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2272,
+ "height": 544,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58190/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5341/",
+ "@type": "sc:Canvas",
+ "label": "280v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5341/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5341/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5341/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5342/",
+ "@type": "sc:Canvas",
+ "label": "281r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5342/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5342/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5342/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58191/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2176,
+ "height": 464,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58191/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5343/",
+ "@type": "sc:Canvas",
+ "label": "281v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5343/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5343/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5343/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5344/",
+ "@type": "sc:Canvas",
+ "label": "282r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5344/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5344/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5344/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58192/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2016,
+ "height": 400,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58192/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5345/",
+ "@type": "sc:Canvas",
+ "label": "282v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5345/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5345/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5345/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5346/",
+ "@type": "sc:Canvas",
+ "label": "283r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5346/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5346/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5346/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58193/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1968,
+ "height": 480,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58193/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5348/",
+ "@type": "sc:Canvas",
+ "label": "283v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5348/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5348/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5348/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58194/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 912,
+ "height": 448,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58194/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5349/",
+ "@type": "sc:Canvas",
+ "label": "284r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5349/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5349/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5349/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58195/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1792,
+ "height": 448,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58195/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5350/",
+ "@type": "sc:Canvas",
+ "label": "284v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5350/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5350/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5350/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5351/",
+ "@type": "sc:Canvas",
+ "label": "285r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5351/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5351/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5351/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58196/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1744,
+ "height": 480,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58196/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5352/",
+ "@type": "sc:Canvas",
+ "label": "285v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5352/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5352/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5352/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58631/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2257,
+ "height": 3984,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58631/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5353/",
+ "@type": "sc:Canvas",
+ "label": "286r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5353/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5353/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5353/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5354/",
+ "@type": "sc:Canvas",
+ "label": "286v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5354/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5354/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5354/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5355/",
+ "@type": "sc:Canvas",
+ "label": "287r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5355/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5355/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5355/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58197/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2016,
+ "height": 480,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58197/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5356/",
+ "@type": "sc:Canvas",
+ "label": "287v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5356/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5356/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5356/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5357/",
+ "@type": "sc:Canvas",
+ "label": "288r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5357/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5357/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5357/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58198/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1920,
+ "height": 480,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58198/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5358/",
+ "@type": "sc:Canvas",
+ "label": "288v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5358/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5358/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5358/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58632/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2241,
+ "height": 4656,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58632/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5359/",
+ "@type": "sc:Canvas",
+ "label": "289r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5359/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5359/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5359/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58199/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2016,
+ "height": 480,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58199/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5360/",
+ "@type": "sc:Canvas",
+ "label": "289v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5360/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5360/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5360/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5361/",
+ "@type": "sc:Canvas",
+ "label": "290r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5361/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5361/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5361/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58200/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2016,
+ "height": 480,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58200/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58633/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2097,
+ "height": 3824,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58633/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5362/",
+ "@type": "sc:Canvas",
+ "label": "290v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5362/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5362/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5362/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5363/",
+ "@type": "sc:Canvas",
+ "label": "291r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5363/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5363/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5363/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58634/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2145,
+ "height": 4128,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58634/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5364/",
+ "@type": "sc:Canvas",
+ "label": "291v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5364/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5364/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5364/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5365/",
+ "@type": "sc:Canvas",
+ "label": "292r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5365/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5365/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5365/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5366/",
+ "@type": "sc:Canvas",
+ "label": "292v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5366/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5366/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5366/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5367/",
+ "@type": "sc:Canvas",
+ "label": "293r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5367/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5367/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5367/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58635/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 3073,
+ "height": 5168,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58635/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5368/",
+ "@type": "sc:Canvas",
+ "label": "293v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5368/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5368/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5368/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58201/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1056,
+ "height": 448,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58201/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5369/",
+ "@type": "sc:Canvas",
+ "label": "294r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5369/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5369/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5369/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5370/",
+ "@type": "sc:Canvas",
+ "label": "294v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5370/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5370/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5370/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5371/",
+ "@type": "sc:Canvas",
+ "label": "295r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5371/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5371/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5371/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5372/",
+ "@type": "sc:Canvas",
+ "label": "295v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5372/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5372/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5372/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5373/",
+ "@type": "sc:Canvas",
+ "label": "296r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5373/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5373/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5373/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5374/",
+ "@type": "sc:Canvas",
+ "label": "296v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5374/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5374/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5374/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5375/",
+ "@type": "sc:Canvas",
+ "label": "297r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5375/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5375/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5375/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5377/",
+ "@type": "sc:Canvas",
+ "label": "297v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5377/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5377/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5377/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5378/",
+ "@type": "sc:Canvas",
+ "label": "298r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5378/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5378/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5378/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5379/",
+ "@type": "sc:Canvas",
+ "label": "298v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5379/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5379/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5379/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58202/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2256,
+ "height": 560,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58202/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5380/",
+ "@type": "sc:Canvas",
+ "label": "299r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5380/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5380/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5380/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5381/",
+ "@type": "sc:Canvas",
+ "label": "299v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5381/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5381/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5381/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5382/",
+ "@type": "sc:Canvas",
+ "label": "300r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5382/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5382/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5382/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5383/",
+ "@type": "sc:Canvas",
+ "label": "300v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5383/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5383/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5383/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5384/",
+ "@type": "sc:Canvas",
+ "label": "301r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5384/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5384/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5384/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5385/",
+ "@type": "sc:Canvas",
+ "label": "301v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5385/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5385/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5385/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5386/",
+ "@type": "sc:Canvas",
+ "label": "302r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5386/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5386/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5386/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5387/",
+ "@type": "sc:Canvas",
+ "label": "302v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5387/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5387/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5387/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5388/",
+ "@type": "sc:Canvas",
+ "label": "303r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5388/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5388/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5388/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5389/",
+ "@type": "sc:Canvas",
+ "label": "303v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5389/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5389/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5389/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5390/",
+ "@type": "sc:Canvas",
+ "label": "304r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5390/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5390/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5390/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5392/",
+ "@type": "sc:Canvas",
+ "label": "304v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5392/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5392/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5392/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5393/",
+ "@type": "sc:Canvas",
+ "label": "305r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5393/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5393/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5393/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5394/",
+ "@type": "sc:Canvas",
+ "label": "305v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5394/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5394/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5394/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58203/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 816,
+ "height": 288,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58203/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5395/",
+ "@type": "sc:Canvas",
+ "label": "306r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5395/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5395/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5395/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5396/",
+ "@type": "sc:Canvas",
+ "label": "306v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5396/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5396/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5396/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5397/",
+ "@type": "sc:Canvas",
+ "label": "307r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5397/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5397/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5397/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5398/",
+ "@type": "sc:Canvas",
+ "label": "307v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5398/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5398/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5398/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5399/",
+ "@type": "sc:Canvas",
+ "label": "308r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5399/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5399/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5399/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5400/",
+ "@type": "sc:Canvas",
+ "label": "308v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5400/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5400/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5400/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58636/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2225,
+ "height": 6400,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58636/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5401/",
+ "@type": "sc:Canvas",
+ "label": "309r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5401/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5401/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5401/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58741/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 5648,
+ "height": 7668,
+ "label": "Alternate Shot",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58741/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5402/",
+ "@type": "sc:Canvas",
+ "label": "309v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5402/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5402/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5402/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58637/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2545,
+ "height": 4464,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58637/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58742/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 5648,
+ "height": 7668,
+ "label": "Alternate Shot",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58742/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5403/",
+ "@type": "sc:Canvas",
+ "label": "310r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5403/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5403/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5403/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58743/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 5312,
+ "height": 7668,
+ "label": "Alternate Shot",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58743/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5404/",
+ "@type": "sc:Canvas",
+ "label": "310v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5404/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5404/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5404/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58744/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 5472,
+ "height": 7652,
+ "label": "Alternate Shot",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58744/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5405/",
+ "@type": "sc:Canvas",
+ "label": "311r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5405/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5405/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5405/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58745/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 5312,
+ "height": 7732,
+ "label": "Alternate Shot",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58745/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5407/",
+ "@type": "sc:Canvas",
+ "label": "311v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5407/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5407/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5407/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58746/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 5312,
+ "height": 7700,
+ "label": "Alternate Shot",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58746/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5408/",
+ "@type": "sc:Canvas",
+ "label": "312r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5408/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5408/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5408/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5409/",
+ "@type": "sc:Canvas",
+ "label": "312v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5409/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5409/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5409/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5410/",
+ "@type": "sc:Canvas",
+ "label": "313r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5410/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5410/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5410/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58638/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2225,
+ "height": 5920,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58638/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5411/",
+ "@type": "sc:Canvas",
+ "label": "313v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5411/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5411/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5411/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5412/",
+ "@type": "sc:Canvas",
+ "label": "314r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5412/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5412/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5412/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5413/",
+ "@type": "sc:Canvas",
+ "label": "314v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5413/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5413/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5413/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5414/",
+ "@type": "sc:Canvas",
+ "label": "315r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5414/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5414/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5414/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5415/",
+ "@type": "sc:Canvas",
+ "label": "315v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5415/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5415/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5415/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5416/",
+ "@type": "sc:Canvas",
+ "label": "316r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5416/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5416/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5416/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58639/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2241,
+ "height": 6496,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58639/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5417/",
+ "@type": "sc:Canvas",
+ "label": "316v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5417/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5417/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5417/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5418/",
+ "@type": "sc:Canvas",
+ "label": "317r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5418/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5418/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5418/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58640/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2225,
+ "height": 4528,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58640/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5419/",
+ "@type": "sc:Canvas",
+ "label": "317v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5419/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5419/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5419/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5420/",
+ "@type": "sc:Canvas",
+ "label": "318r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5420/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5420/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5420/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5422/",
+ "@type": "sc:Canvas",
+ "label": "318v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5422/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5422/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9590,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5422/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9590
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5423/",
+ "@type": "sc:Canvas",
+ "label": "319r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5423/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5423/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9862,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5423/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9862
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5424/",
+ "@type": "sc:Canvas",
+ "label": "319v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5424/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5424/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9510,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5424/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9510
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5425/",
+ "@type": "sc:Canvas",
+ "label": "320r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5425/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5425/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5425/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5426/",
+ "@type": "sc:Canvas",
+ "label": "320v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5426/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5426/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9510,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5426/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58641/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2433,
+ "height": 6192,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58641/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9510
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5427/",
+ "@type": "sc:Canvas",
+ "label": "321r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5427/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5427/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5427/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5428/",
+ "@type": "sc:Canvas",
+ "label": "321v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5428/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5428/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9510,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5428/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58642/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2225,
+ "height": 6384,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58642/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9510
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5429/",
+ "@type": "sc:Canvas",
+ "label": "322r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5429/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5429/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5429/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5430/",
+ "@type": "sc:Canvas",
+ "label": "322v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5430/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5430/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9510,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5430/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58643/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 3394,
+ "height": 4576,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58643/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9510
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5431/",
+ "@type": "sc:Canvas",
+ "label": "323r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5431/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5431/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5431/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5432/",
+ "@type": "sc:Canvas",
+ "label": "323v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5432/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5432/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9494,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5432/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58644/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2129,
+ "height": 4688,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58644/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9494
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5433/",
+ "@type": "sc:Canvas",
+ "label": "324r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5433/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5433/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9510,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5433/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9510
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5434/",
+ "@type": "sc:Canvas",
+ "label": "324v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5434/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5434/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5434/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5435/",
+ "@type": "sc:Canvas",
+ "label": "325r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5435/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5435/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9510,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5435/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9510
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5437/",
+ "@type": "sc:Canvas",
+ "label": "325v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5437/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5437/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5437/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5438/",
+ "@type": "sc:Canvas",
+ "label": "326r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5438/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5438/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9510,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5438/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9510
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5439/",
+ "@type": "sc:Canvas",
+ "label": "326v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5439/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5439/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5439/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5440/",
+ "@type": "sc:Canvas",
+ "label": "327r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5440/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5440/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9510,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5440/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9510
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5441/",
+ "@type": "sc:Canvas",
+ "label": "327v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5441/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5441/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5441/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5442/",
+ "@type": "sc:Canvas",
+ "label": "328r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5442/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5442/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9590,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5442/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58645/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 3298,
+ "height": 5552,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58645/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9590
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5443/",
+ "@type": "sc:Canvas",
+ "label": "328v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5443/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5443/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9862,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5443/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9862
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5444/",
+ "@type": "sc:Canvas",
+ "label": "329r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5444/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5444/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9494,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5444/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58646/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1729,
+ "height": 3312,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58646/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9494
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5445/",
+ "@type": "sc:Canvas",
+ "label": "329v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5445/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5445/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5445/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5446/",
+ "@type": "sc:Canvas",
+ "label": "330r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5446/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5446/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5446/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5447/",
+ "@type": "sc:Canvas",
+ "label": "330v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5447/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5447/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5447/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5448/",
+ "@type": "sc:Canvas",
+ "label": "331r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5448/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5448/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5448/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5449/",
+ "@type": "sc:Canvas",
+ "label": "331v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5449/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5449/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5449/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5450/",
+ "@type": "sc:Canvas",
+ "label": "332r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5450/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5450/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5450/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5452/",
+ "@type": "sc:Canvas",
+ "label": "332v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5452/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5452/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5452/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58647/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2161,
+ "height": 5088,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58647/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5453/",
+ "@type": "sc:Canvas",
+ "label": "333r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5453/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5453/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5453/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5454/",
+ "@type": "sc:Canvas",
+ "label": "333v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5454/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5454/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5454/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58648/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1921,
+ "height": 3728,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58648/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5455/",
+ "@type": "sc:Canvas",
+ "label": "334r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5455/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5455/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5455/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5456/",
+ "@type": "sc:Canvas",
+ "label": "334v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5456/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5456/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5456/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58649/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2241,
+ "height": 6448,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58649/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5457/",
+ "@type": "sc:Canvas",
+ "label": "335r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5457/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5457/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5457/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5458/",
+ "@type": "sc:Canvas",
+ "label": "335v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5458/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5458/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5458/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58650/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2465,
+ "height": 5440,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58650/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5459/",
+ "@type": "sc:Canvas",
+ "label": "336r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5459/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5459/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5459/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5460/",
+ "@type": "sc:Canvas",
+ "label": "336v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5460/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5460/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5460/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5461/",
+ "@type": "sc:Canvas",
+ "label": "337r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5461/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5461/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5461/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5462/",
+ "@type": "sc:Canvas",
+ "label": "337v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5462/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5462/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5462/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5463/",
+ "@type": "sc:Canvas",
+ "label": "338r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5463/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5463/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5463/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5464/",
+ "@type": "sc:Canvas",
+ "label": "338v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5464/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5464/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5464/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5465/",
+ "@type": "sc:Canvas",
+ "label": "339r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5465/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5465/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5465/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5466/",
+ "@type": "sc:Canvas",
+ "label": "339v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5466/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5466/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5466/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5467/",
+ "@type": "sc:Canvas",
+ "label": "340r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5467/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5467/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5467/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5468/",
+ "@type": "sc:Canvas",
+ "label": "340v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5468/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5468/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5468/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5469/",
+ "@type": "sc:Canvas",
+ "label": "341r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5469/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5469/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9590,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5469/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9590
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5470/",
+ "@type": "sc:Canvas",
+ "label": "341v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5470/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5470/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9590,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5470/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9590
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5471/",
+ "@type": "sc:Canvas",
+ "label": "342r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5471/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5471/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9510,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5471/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58204/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 5168,
+ "height": 832,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58204/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9510
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/6913/",
+ "@type": "sc:Canvas",
+ "label": "342r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/6913/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/6913/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 1344,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/6913/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58549/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 5168,
+ "height": 832,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58549/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 1344
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5472/",
+ "@type": "sc:Canvas",
+ "label": "342v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5472/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5472/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9590,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5472/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9590
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5479/",
+ "@type": "sc:Canvas",
+ "label": "front cover recto",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5479/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5479/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9253,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5479/"
+ }
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9253
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5480/",
+ "@type": "sc:Canvas",
+ "label": "front cover verso",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5480/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5480/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9253,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5480/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58530/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 8080,
+ "height": 9253,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58530/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9253
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5482/",
+ "@type": "sc:Canvas",
+ "label": "rear cover recto",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5482/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5482/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9253,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5482/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58531/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7072,
+ "height": 8565,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58531/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9253
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5483/",
+ "@type": "sc:Canvas",
+ "label": "rear cover verso",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5483/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5483/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9253,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5483/"
+ }
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9253
+ }
+ ]
+ }
+ ],
+ "structures": [
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4748/",
+ "@type": "sc:Canvas",
+ "label": "01v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4749/",
+ "@type": "sc:Canvas",
+ "label": "02r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16699/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16699/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4751/",
+ "@type": "sc:Canvas",
+ "label": "03r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6090/",
+ "@type": "sc:Range",
+ "label": "Salve sancta parens",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6090/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4754/",
+ "@type": "sc:Canvas",
+ "label": "03v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4755/",
+ "@type": "sc:Canvas",
+ "label": "04r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16700/",
+ "@type": "sc:Range",
+ "label": "Kyrie eleison",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16700/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4756/",
+ "@type": "sc:Canvas",
+ "label": "04v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4757/",
+ "@type": "sc:Canvas",
+ "label": "05r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4758/",
+ "@type": "sc:Canvas",
+ "label": "05v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4759/",
+ "@type": "sc:Canvas",
+ "label": "06r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16701/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria] [Tro] Spiritus et alme",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16701/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4760/",
+ "@type": "sc:Canvas",
+ "label": "06v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4761/",
+ "@type": "sc:Canvas",
+ "label": "07r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4762/",
+ "@type": "sc:Canvas",
+ "label": "07v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4763/",
+ "@type": "sc:Canvas",
+ "label": "08r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16702/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16702/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4764/",
+ "@type": "sc:Canvas",
+ "label": "08v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4765/",
+ "@type": "sc:Canvas",
+ "label": "09r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16703/",
+ "@type": "sc:Range",
+ "label": "Sanctus Marie filius",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16703/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4766/",
+ "@type": "sc:Canvas",
+ "label": "09v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4767/",
+ "@type": "sc:Canvas",
+ "label": "10r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16704/",
+ "@type": "sc:Range",
+ "label": "Agnus Dei",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16704/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4766/",
+ "@type": "sc:Canvas",
+ "label": "09v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4767/",
+ "@type": "sc:Canvas",
+ "label": "10r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16705/",
+ "@type": "sc:Range",
+ "label": "Se ce n’estoit la tres doulce pensee",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16705/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4769/",
+ "@type": "sc:Canvas",
+ "label": "10v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4770/",
+ "@type": "sc:Canvas",
+ "label": "11r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16706/",
+ "@type": "sc:Range",
+ "label": "Missa sine nomine = Resvelliés vous: Kyrie",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16706/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4771/",
+ "@type": "sc:Canvas",
+ "label": "11v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4772/",
+ "@type": "sc:Canvas",
+ "label": "12r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4773/",
+ "@type": "sc:Canvas",
+ "label": "12v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4774/",
+ "@type": "sc:Canvas",
+ "label": "13r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16707/",
+ "@type": "sc:Range",
+ "label": "Missa sine nomine = Resvelliés vous: Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16707/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4774/",
+ "@type": "sc:Canvas",
+ "label": "13r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16708/",
+ "@type": "sc:Range",
+ "label": "Kyrie Angelorum",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16708/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4775/",
+ "@type": "sc:Canvas",
+ "label": "13v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4776/",
+ "@type": "sc:Canvas",
+ "label": "14r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4777/",
+ "@type": "sc:Canvas",
+ "label": "14v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4778/",
+ "@type": "sc:Canvas",
+ "label": "15r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16709/",
+ "@type": "sc:Range",
+ "label": "Missa sine nomine = Resvelliés vous: Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16709/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4777/",
+ "@type": "sc:Canvas",
+ "label": "14v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4778/",
+ "@type": "sc:Canvas",
+ "label": "15r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16710/",
+ "@type": "sc:Range",
+ "label": "Belle teneis / La triquotee",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16710/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4779/",
+ "@type": "sc:Canvas",
+ "label": "15v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4780/",
+ "@type": "sc:Canvas",
+ "label": "16r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16711/",
+ "@type": "sc:Range",
+ "label": "Missa sine nomine = Resvelliés vous: Sanctus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16711/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4781/",
+ "@type": "sc:Canvas",
+ "label": "16v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4782/",
+ "@type": "sc:Canvas",
+ "label": "17r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16712/",
+ "@type": "sc:Range",
+ "label": "Missa sine nomine = Resvelliés vous: Agnus Dei",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16712/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4784/",
+ "@type": "sc:Canvas",
+ "label": "17v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4785/",
+ "@type": "sc:Canvas",
+ "label": "18r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16713/",
+ "@type": "sc:Range",
+ "label": "Kyrie eleison",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16713/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4786/",
+ "@type": "sc:Canvas",
+ "label": "18v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4787/",
+ "@type": "sc:Canvas",
+ "label": "19r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16714/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16714/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4788/",
+ "@type": "sc:Canvas",
+ "label": "19v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4789/",
+ "@type": "sc:Canvas",
+ "label": "20r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4790/",
+ "@type": "sc:Canvas",
+ "label": "20v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4791/",
+ "@type": "sc:Canvas",
+ "label": "21r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16715/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16715/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4792/",
+ "@type": "sc:Canvas",
+ "label": "21v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4793/",
+ "@type": "sc:Canvas",
+ "label": "22r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16716/",
+ "@type": "sc:Range",
+ "label": "Sanctus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16716/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4794/",
+ "@type": "sc:Canvas",
+ "label": "22v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4795/",
+ "@type": "sc:Canvas",
+ "label": "23r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16717/",
+ "@type": "sc:Range",
+ "label": "Sanctus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16717/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4796/",
+ "@type": "sc:Canvas",
+ "label": "23v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4797/",
+ "@type": "sc:Canvas",
+ "label": "24r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16718/",
+ "@type": "sc:Range",
+ "label": "Agnus Dei",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16718/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4796/",
+ "@type": "sc:Canvas",
+ "label": "23v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4797/",
+ "@type": "sc:Canvas",
+ "label": "24r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16719/",
+ "@type": "sc:Range",
+ "label": "Jone gente",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16719/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4799/",
+ "@type": "sc:Canvas",
+ "label": "24v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4800/",
+ "@type": "sc:Canvas",
+ "label": "25r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16720/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16720/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4801/",
+ "@type": "sc:Canvas",
+ "label": "25v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4802/",
+ "@type": "sc:Canvas",
+ "label": "26r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16721/",
+ "@type": "sc:Range",
+ "label": "Patrem",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16721/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4803/",
+ "@type": "sc:Canvas",
+ "label": "26v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4804/",
+ "@type": "sc:Canvas",
+ "label": "27r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16722/",
+ "@type": "sc:Range",
+ "label": "Sanctus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16722/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4805/",
+ "@type": "sc:Canvas",
+ "label": "27v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4806/",
+ "@type": "sc:Canvas",
+ "label": "28r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16723/",
+ "@type": "sc:Range",
+ "label": "Agnus Dei",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16723/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4807/",
+ "@type": "sc:Canvas",
+ "label": "28v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4808/",
+ "@type": "sc:Canvas",
+ "label": "29r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4809/",
+ "@type": "sc:Canvas",
+ "label": "29v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4810/",
+ "@type": "sc:Canvas",
+ "label": "30r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16724/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16724/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4809/",
+ "@type": "sc:Canvas",
+ "label": "29v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4810/",
+ "@type": "sc:Canvas",
+ "label": "30r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16725/",
+ "@type": "sc:Range",
+ "label": "Helas emy madame",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16725/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4811/",
+ "@type": "sc:Canvas",
+ "label": "30v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4812/",
+ "@type": "sc:Canvas",
+ "label": "31r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4814/",
+ "@type": "sc:Canvas",
+ "label": "31v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4815/",
+ "@type": "sc:Canvas",
+ "label": "32r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16726/",
+ "@type": "sc:Range",
+ "label": "Patrem / Factorem",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16726/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4816/",
+ "@type": "sc:Canvas",
+ "label": "32v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4817/",
+ "@type": "sc:Canvas",
+ "label": "33r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16727/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16727/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4818/",
+ "@type": "sc:Canvas",
+ "label": "33v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4819/",
+ "@type": "sc:Canvas",
+ "label": "34r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4820/",
+ "@type": "sc:Canvas",
+ "label": "34v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4821/",
+ "@type": "sc:Canvas",
+ "label": "35r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16728/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16728/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4818/",
+ "@type": "sc:Canvas",
+ "label": "33v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4819/",
+ "@type": "sc:Canvas",
+ "label": "34r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16729/",
+ "@type": "sc:Range",
+ "label": "Mon vrai desir",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16729/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4822/",
+ "@type": "sc:Canvas",
+ "label": "35v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4823/",
+ "@type": "sc:Canvas",
+ "label": "36r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4824/",
+ "@type": "sc:Canvas",
+ "label": "36v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4825/",
+ "@type": "sc:Canvas",
+ "label": "37r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16730/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16730/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4826/",
+ "@type": "sc:Canvas",
+ "label": "37v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4827/",
+ "@type": "sc:Canvas",
+ "label": "38r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4829/",
+ "@type": "sc:Canvas",
+ "label": "38v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4830/",
+ "@type": "sc:Canvas",
+ "label": "39r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4831/",
+ "@type": "sc:Canvas",
+ "label": "39v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4832/",
+ "@type": "sc:Canvas",
+ "label": "40r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16731/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16731/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4833/",
+ "@type": "sc:Canvas",
+ "label": "40v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4834/",
+ "@type": "sc:Canvas",
+ "label": "41r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16732/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16732/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4835/",
+ "@type": "sc:Canvas",
+ "label": "41v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4836/",
+ "@type": "sc:Canvas",
+ "label": "42r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4837/",
+ "@type": "sc:Canvas",
+ "label": "42v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4838/",
+ "@type": "sc:Canvas",
+ "label": "43r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16733/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16733/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4837/",
+ "@type": "sc:Canvas",
+ "label": "42v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4838/",
+ "@type": "sc:Canvas",
+ "label": "43r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16734/",
+ "@type": "sc:Range",
+ "label": "Un seul confort",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16734/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/6926/",
+ "@type": "sc:Canvas",
+ "label": "43 bis v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4840/",
+ "@type": "sc:Canvas",
+ "label": "44r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4841/",
+ "@type": "sc:Canvas",
+ "label": "44v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4842/",
+ "@type": "sc:Canvas",
+ "label": "45r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16736/",
+ "@type": "sc:Range",
+ "label": "Missa O pulcherrima: Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16736/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4839/",
+ "@type": "sc:Canvas",
+ "label": "43v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/6925/",
+ "@type": "sc:Canvas",
+ "label": "43 bisr"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16735/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16735/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4841/",
+ "@type": "sc:Canvas",
+ "label": "44v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4842/",
+ "@type": "sc:Canvas",
+ "label": "45r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16737/",
+ "@type": "sc:Range",
+ "label": "Chanter ne scay",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16737/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4844/",
+ "@type": "sc:Canvas",
+ "label": "45v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4845/",
+ "@type": "sc:Canvas",
+ "label": "46r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16738/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16738/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4846/",
+ "@type": "sc:Canvas",
+ "label": "46v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4847/",
+ "@type": "sc:Canvas",
+ "label": "47r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4848/",
+ "@type": "sc:Canvas",
+ "label": "47v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4849/",
+ "@type": "sc:Canvas",
+ "label": "48r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16739/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16739/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4850/",
+ "@type": "sc:Canvas",
+ "label": "48v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4851/",
+ "@type": "sc:Canvas",
+ "label": "49r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16740/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16740/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4852/",
+ "@type": "sc:Canvas",
+ "label": "49v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4853/",
+ "@type": "sc:Canvas",
+ "label": "50r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4854/",
+ "@type": "sc:Canvas",
+ "label": "50v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4855/",
+ "@type": "sc:Canvas",
+ "label": "51r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16741/",
+ "@type": "sc:Range",
+ "label": "Patrem",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16741/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4856/",
+ "@type": "sc:Canvas",
+ "label": "51v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4857/",
+ "@type": "sc:Canvas",
+ "label": "52r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16742/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16742/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4859/",
+ "@type": "sc:Canvas",
+ "label": "52v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4860/",
+ "@type": "sc:Canvas",
+ "label": "53r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4861/",
+ "@type": "sc:Canvas",
+ "label": "53v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4862/",
+ "@type": "sc:Canvas",
+ "label": "54r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16743/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16743/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4863/",
+ "@type": "sc:Canvas",
+ "label": "54v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4864/",
+ "@type": "sc:Canvas",
+ "label": "55r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16744/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16744/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4865/",
+ "@type": "sc:Canvas",
+ "label": "55v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4866/",
+ "@type": "sc:Canvas",
+ "label": "56r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4867/",
+ "@type": "sc:Canvas",
+ "label": "56v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4868/",
+ "@type": "sc:Canvas",
+ "label": "57r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16745/",
+ "@type": "sc:Range",
+ "label": "Missa O pulcherrima: Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16745/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4865/",
+ "@type": "sc:Canvas",
+ "label": "55v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4866/",
+ "@type": "sc:Canvas",
+ "label": "56r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16746/",
+ "@type": "sc:Range",
+ "label": "Mon douce espoir mon souvenir",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16746/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4869/",
+ "@type": "sc:Canvas",
+ "label": "57v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4870/",
+ "@type": "sc:Canvas",
+ "label": "58r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16747/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16747/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4871/",
+ "@type": "sc:Canvas",
+ "label": "58v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4872/",
+ "@type": "sc:Canvas",
+ "label": "59r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16748/",
+ "@type": "sc:Range",
+ "label": "Patrem",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16748/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4876/",
+ "@type": "sc:Canvas",
+ "label": "60v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4877/",
+ "@type": "sc:Canvas",
+ "label": "61r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16749/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16749/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4878/",
+ "@type": "sc:Canvas",
+ "label": "61v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4879/",
+ "@type": "sc:Canvas",
+ "label": "62r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4880/",
+ "@type": "sc:Canvas",
+ "label": "62v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4881/",
+ "@type": "sc:Canvas",
+ "label": "63r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16750/",
+ "@type": "sc:Range",
+ "label": "Patrem",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16750/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4882/",
+ "@type": "sc:Canvas",
+ "label": "63v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4883/",
+ "@type": "sc:Canvas",
+ "label": "64r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4884/",
+ "@type": "sc:Canvas",
+ "label": "64v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4885/",
+ "@type": "sc:Canvas",
+ "label": "65r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16751/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16751/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4886/",
+ "@type": "sc:Canvas",
+ "label": "65v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4887/",
+ "@type": "sc:Canvas",
+ "label": "66r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4889/",
+ "@type": "sc:Canvas",
+ "label": "66v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4890/",
+ "@type": "sc:Canvas",
+ "label": "67r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16752/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16752/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4891/",
+ "@type": "sc:Canvas",
+ "label": "67v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4892/",
+ "@type": "sc:Canvas",
+ "label": "68r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4893/",
+ "@type": "sc:Canvas",
+ "label": "68v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4894/",
+ "@type": "sc:Canvas",
+ "label": "69r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16753/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16753/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4895/",
+ "@type": "sc:Canvas",
+ "label": "69v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4896/",
+ "@type": "sc:Canvas",
+ "label": "70r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16754/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16754/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4901/",
+ "@type": "sc:Canvas",
+ "label": "72v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4902/",
+ "@type": "sc:Canvas",
+ "label": "73r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4904/",
+ "@type": "sc:Canvas",
+ "label": "73v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4905/",
+ "@type": "sc:Canvas",
+ "label": "74r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16755/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16755/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4906/",
+ "@type": "sc:Canvas",
+ "label": "74v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4907/",
+ "@type": "sc:Canvas",
+ "label": "75r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4908/",
+ "@type": "sc:Canvas",
+ "label": "75v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4909/",
+ "@type": "sc:Canvas",
+ "label": "76r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4910/",
+ "@type": "sc:Canvas",
+ "label": "76v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16756/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16756/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4910/",
+ "@type": "sc:Canvas",
+ "label": "76v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4911/",
+ "@type": "sc:Canvas",
+ "label": "77r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16757/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16757/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4912/",
+ "@type": "sc:Canvas",
+ "label": "77v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4913/",
+ "@type": "sc:Canvas",
+ "label": "78r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16758/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16758/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4914/",
+ "@type": "sc:Canvas",
+ "label": "78v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4915/",
+ "@type": "sc:Canvas",
+ "label": "79r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16759/",
+ "@type": "sc:Range",
+ "label": "Patrem / Factorem (some texting)",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16759/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4916/",
+ "@type": "sc:Canvas",
+ "label": "79v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4917/",
+ "@type": "sc:Canvas",
+ "label": "80r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16760/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16760/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4919/",
+ "@type": "sc:Canvas",
+ "label": "80v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4920/",
+ "@type": "sc:Canvas",
+ "label": "81r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4921/",
+ "@type": "sc:Canvas",
+ "label": "81v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4922/",
+ "@type": "sc:Canvas",
+ "label": "82r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16761/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16761/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4923/",
+ "@type": "sc:Canvas",
+ "label": "82v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4924/",
+ "@type": "sc:Canvas",
+ "label": "83r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16762/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16762/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4925/",
+ "@type": "sc:Canvas",
+ "label": "83v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4926/",
+ "@type": "sc:Canvas",
+ "label": "84r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4927/",
+ "@type": "sc:Canvas",
+ "label": "84v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4928/",
+ "@type": "sc:Canvas",
+ "label": "85r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16763/",
+ "@type": "sc:Range",
+ "label": "Patrem",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16763/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4929/",
+ "@type": "sc:Canvas",
+ "label": "85v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4930/",
+ "@type": "sc:Canvas",
+ "label": "86r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16764/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16764/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4931/",
+ "@type": "sc:Canvas",
+ "label": "86v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4932/",
+ "@type": "sc:Canvas",
+ "label": "87r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16765/",
+ "@type": "sc:Range",
+ "label": "Patrem",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16765/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4934/",
+ "@type": "sc:Canvas",
+ "label": "87v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4935/",
+ "@type": "sc:Canvas",
+ "label": "88r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4936/",
+ "@type": "sc:Canvas",
+ "label": "88v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4937/",
+ "@type": "sc:Canvas",
+ "label": "89r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16766/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria], [Tro] Gloria Laus Honor",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16766/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4938/",
+ "@type": "sc:Canvas",
+ "label": "89v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4939/",
+ "@type": "sc:Canvas",
+ "label": "90r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4940/",
+ "@type": "sc:Canvas",
+ "label": "90v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4941/",
+ "@type": "sc:Canvas",
+ "label": "91r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16767/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16767/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4942/",
+ "@type": "sc:Canvas",
+ "label": "91v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4943/",
+ "@type": "sc:Canvas",
+ "label": "92r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4944/",
+ "@type": "sc:Canvas",
+ "label": "92v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4945/",
+ "@type": "sc:Canvas",
+ "label": "93r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16768/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16768/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4944/",
+ "@type": "sc:Canvas",
+ "label": "92v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4945/",
+ "@type": "sc:Canvas",
+ "label": "93r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16769/",
+ "@type": "sc:Range",
+ "label": "L'aultre jour juer m'aloye",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16769/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4946/",
+ "@type": "sc:Canvas",
+ "label": "93v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4947/",
+ "@type": "sc:Canvas",
+ "label": "94r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4949/",
+ "@type": "sc:Canvas",
+ "label": "94v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4950/",
+ "@type": "sc:Canvas",
+ "label": "95r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4951/",
+ "@type": "sc:Canvas",
+ "label": "95v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4952/",
+ "@type": "sc:Canvas",
+ "label": "96r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16807/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16807/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4953/",
+ "@type": "sc:Canvas",
+ "label": "96v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4954/",
+ "@type": "sc:Canvas",
+ "label": "97r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16771/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16771/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4955/",
+ "@type": "sc:Canvas",
+ "label": "97v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4956/",
+ "@type": "sc:Canvas",
+ "label": "98r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4957/",
+ "@type": "sc:Canvas",
+ "label": "98v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16772/",
+ "@type": "sc:Range",
+ "label": "Patrem",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16772/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4957/",
+ "@type": "sc:Canvas",
+ "label": "98v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4958/",
+ "@type": "sc:Canvas",
+ "label": "99r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4959/",
+ "@type": "sc:Canvas",
+ "label": "99v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4960/",
+ "@type": "sc:Canvas",
+ "label": "100r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16773/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16773/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4959/",
+ "@type": "sc:Canvas",
+ "label": "99v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4960/",
+ "@type": "sc:Canvas",
+ "label": "100r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16774/",
+ "@type": "sc:Range",
+ "label": "De bien amer",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16774/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4961/",
+ "@type": "sc:Canvas",
+ "label": "100v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4962/",
+ "@type": "sc:Canvas",
+ "label": "101r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16775/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16775/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4964/",
+ "@type": "sc:Canvas",
+ "label": "101v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4965/",
+ "@type": "sc:Canvas",
+ "label": "102r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16776/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16776/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4966/",
+ "@type": "sc:Canvas",
+ "label": "102v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4967/",
+ "@type": "sc:Canvas",
+ "label": "103r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4968/",
+ "@type": "sc:Canvas",
+ "label": "103v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4969/",
+ "@type": "sc:Canvas",
+ "label": "104r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16777/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16777/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4970/",
+ "@type": "sc:Canvas",
+ "label": "104v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4971/",
+ "@type": "sc:Canvas",
+ "label": "105r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16778/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16778/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4972/",
+ "@type": "sc:Canvas",
+ "label": "105v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4973/",
+ "@type": "sc:Canvas",
+ "label": "106r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4974/",
+ "@type": "sc:Canvas",
+ "label": "106v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4975/",
+ "@type": "sc:Canvas",
+ "label": "107r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16779/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16779/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4976/",
+ "@type": "sc:Canvas",
+ "label": "107v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4977/",
+ "@type": "sc:Canvas",
+ "label": "108r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16780/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16780/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4976/",
+ "@type": "sc:Canvas",
+ "label": "107v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4977/",
+ "@type": "sc:Canvas",
+ "label": "108r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4979/",
+ "@type": "sc:Canvas",
+ "label": "108v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4980/",
+ "@type": "sc:Canvas",
+ "label": "109r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16781/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16781/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4981/",
+ "@type": "sc:Canvas",
+ "label": "109v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4982/",
+ "@type": "sc:Canvas",
+ "label": "110r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16782/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16782/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4983/",
+ "@type": "sc:Canvas",
+ "label": "110v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4984/",
+ "@type": "sc:Canvas",
+ "label": "111r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16783/",
+ "@type": "sc:Range",
+ "label": "Patrem",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16783/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4985/",
+ "@type": "sc:Canvas",
+ "label": "111v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4986/",
+ "@type": "sc:Canvas",
+ "label": "112r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16784/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16784/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4987/",
+ "@type": "sc:Canvas",
+ "label": "112v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4988/",
+ "@type": "sc:Canvas",
+ "label": "113r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4989/",
+ "@type": "sc:Canvas",
+ "label": "113v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16785/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16785/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4989/",
+ "@type": "sc:Canvas",
+ "label": "113v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4990/",
+ "@type": "sc:Canvas",
+ "label": "114r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6091/",
+ "@type": "sc:Range",
+ "label": "Benedicamus Domino",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6091/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4991/",
+ "@type": "sc:Canvas",
+ "label": "114v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4992/",
+ "@type": "sc:Canvas",
+ "label": "115r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16786/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16786/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4993/",
+ "@type": "sc:Canvas",
+ "label": "115v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4994/",
+ "@type": "sc:Canvas",
+ "label": "116r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4995/",
+ "@type": "sc:Canvas",
+ "label": "116v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4996/",
+ "@type": "sc:Canvas",
+ "label": "117r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16787/",
+ "@type": "sc:Range",
+ "label": "Missa O pulcherrima: Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16787/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4997/",
+ "@type": "sc:Canvas",
+ "label": "117v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4998/",
+ "@type": "sc:Canvas",
+ "label": "118r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16788/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16788/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4999/",
+ "@type": "sc:Canvas",
+ "label": "118v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5000/",
+ "@type": "sc:Canvas",
+ "label": "119r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5001/",
+ "@type": "sc:Canvas",
+ "label": "119v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5002/",
+ "@type": "sc:Canvas",
+ "label": "120r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16789/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16789/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5003/",
+ "@type": "sc:Canvas",
+ "label": "120v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5004/",
+ "@type": "sc:Canvas",
+ "label": "121r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16790/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16790/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5005/",
+ "@type": "sc:Canvas",
+ "label": "121v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5006/",
+ "@type": "sc:Canvas",
+ "label": "122r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5007/",
+ "@type": "sc:Canvas",
+ "label": "122v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5008/",
+ "@type": "sc:Canvas",
+ "label": "123r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5009/",
+ "@type": "sc:Canvas",
+ "label": "123v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16791/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16791/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5010/",
+ "@type": "sc:Canvas",
+ "label": "124r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16792/",
+ "@type": "sc:Range",
+ "label": "Kyrie Cum Jubilo in festis B.M.V. ou De domina",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16792/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5011/",
+ "@type": "sc:Canvas",
+ "label": "124v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5012/",
+ "@type": "sc:Canvas",
+ "label": "125r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16793/",
+ "@type": "sc:Range",
+ "label": "Kyrie eleison",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16793/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5005/",
+ "@type": "sc:Canvas",
+ "label": "121v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5006/",
+ "@type": "sc:Canvas",
+ "label": "122r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5007/",
+ "@type": "sc:Canvas",
+ "label": "122v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5013/",
+ "@type": "sc:Canvas",
+ "label": "125v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16794/",
+ "@type": "sc:Range",
+ "label": "Kyrie eleison",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16794/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5008/",
+ "@type": "sc:Canvas",
+ "label": "123r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5009/",
+ "@type": "sc:Canvas",
+ "label": "123v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5014/",
+ "@type": "sc:Canvas",
+ "label": "126r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5015/",
+ "@type": "sc:Canvas",
+ "label": "126v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16795/",
+ "@type": "sc:Range",
+ "label": "Kyrie eleison",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16795/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5005/",
+ "@type": "sc:Canvas",
+ "label": "121v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5006/",
+ "@type": "sc:Canvas",
+ "label": "122r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5007/",
+ "@type": "sc:Canvas",
+ "label": "122v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5008/",
+ "@type": "sc:Canvas",
+ "label": "123r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5009/",
+ "@type": "sc:Canvas",
+ "label": "123v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5010/",
+ "@type": "sc:Canvas",
+ "label": "124r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5016/",
+ "@type": "sc:Canvas",
+ "label": "127r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16796/",
+ "@type": "sc:Range",
+ "label": "Kyrie eleison",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16796/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5017/",
+ "@type": "sc:Canvas",
+ "label": "127v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5018/",
+ "@type": "sc:Canvas",
+ "label": "128r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16797/",
+ "@type": "sc:Range",
+ "label": "Kyrie Qui de stirpe regia",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16797/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5019/",
+ "@type": "sc:Canvas",
+ "label": "128v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5020/",
+ "@type": "sc:Canvas",
+ "label": "129r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16798/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16798/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5022/",
+ "@type": "sc:Canvas",
+ "label": "129v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5023/",
+ "@type": "sc:Canvas",
+ "label": "130r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5024/",
+ "@type": "sc:Canvas",
+ "label": "130v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5025/",
+ "@type": "sc:Canvas",
+ "label": "131r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5026/",
+ "@type": "sc:Canvas",
+ "label": "131v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5027/",
+ "@type": "sc:Canvas",
+ "label": "132r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16799/",
+ "@type": "sc:Range",
+ "label": "Patrem",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16799/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5028/",
+ "@type": "sc:Canvas",
+ "label": "132v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5029/",
+ "@type": "sc:Canvas",
+ "label": "133r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5030/",
+ "@type": "sc:Canvas",
+ "label": "133v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5031/",
+ "@type": "sc:Canvas",
+ "label": "134r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16800/",
+ "@type": "sc:Range",
+ "label": "Sanctus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16800/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5030/",
+ "@type": "sc:Canvas",
+ "label": "133v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5031/",
+ "@type": "sc:Canvas",
+ "label": "134r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16801/",
+ "@type": "sc:Range",
+ "label": "Agnus Dei",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16801/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5032/",
+ "@type": "sc:Canvas",
+ "label": "134v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5033/",
+ "@type": "sc:Canvas",
+ "label": "135r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5034/",
+ "@type": "sc:Canvas",
+ "label": "135v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5035/",
+ "@type": "sc:Canvas",
+ "label": "136r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5037/",
+ "@type": "sc:Canvas",
+ "label": "136v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16802/",
+ "@type": "sc:Range",
+ "label": "Sanctus Ave verum corpus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16802/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5039/",
+ "@type": "sc:Canvas",
+ "label": "137v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5040/",
+ "@type": "sc:Canvas",
+ "label": "138r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5041/",
+ "@type": "sc:Canvas",
+ "label": "138v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5042/",
+ "@type": "sc:Canvas",
+ "label": "139r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16803/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16803/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5043/",
+ "@type": "sc:Canvas",
+ "label": "139v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5044/",
+ "@type": "sc:Canvas",
+ "label": "140r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5045/",
+ "@type": "sc:Canvas",
+ "label": "140v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5046/",
+ "@type": "sc:Canvas",
+ "label": "141r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5047/",
+ "@type": "sc:Canvas",
+ "label": "141v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5048/",
+ "@type": "sc:Canvas",
+ "label": "142r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16804/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16804/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5049/",
+ "@type": "sc:Canvas",
+ "label": "142v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16805/",
+ "@type": "sc:Range",
+ "label": "untexted",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16805/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5052/",
+ "@type": "sc:Canvas",
+ "label": "143v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6092/",
+ "@type": "sc:Range",
+ "label": "Asperges me Domine isopo [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6092/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5052/",
+ "@type": "sc:Canvas",
+ "label": "143v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/72637/",
+ "@type": "sc:Range",
+ "label": "Miserere mei Deus / secundum magnam misericordiam tuam [2a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/72637/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5052/",
+ "@type": "sc:Canvas",
+ "label": "143v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/72638/",
+ "@type": "sc:Range",
+ "label": "Gloria patri / sicut erat [3a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/72638/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5053/",
+ "@type": "sc:Canvas",
+ "label": "144r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6093/",
+ "@type": "sc:Range",
+ "label": "Mihi autem nimis [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6093/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5054/",
+ "@type": "sc:Canvas",
+ "label": "144v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5055/",
+ "@type": "sc:Canvas",
+ "label": "145r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/73710/",
+ "@type": "sc:Range",
+ "label": "Domine probasti me [2a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/73710/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5054/",
+ "@type": "sc:Canvas",
+ "label": "144v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5055/",
+ "@type": "sc:Canvas",
+ "label": "145r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5056/",
+ "@type": "sc:Canvas",
+ "label": "145v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16770/",
+ "@type": "sc:Range",
+ "label": "Missa Sancti Jacobi: Kyrie",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16770/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5056/",
+ "@type": "sc:Canvas",
+ "label": "145v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5057/",
+ "@type": "sc:Canvas",
+ "label": "146r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5058/",
+ "@type": "sc:Canvas",
+ "label": "146v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5059/",
+ "@type": "sc:Canvas",
+ "label": "147r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16806/",
+ "@type": "sc:Range",
+ "label": "Missa Sancti Jacobí: Gloria",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16806/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5058/",
+ "@type": "sc:Canvas",
+ "label": "146v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5059/",
+ "@type": "sc:Canvas",
+ "label": "147r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6094/",
+ "@type": "sc:Range",
+ "label": "Missa Sancti Jacobi: Alleluia",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6094/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5060/",
+ "@type": "sc:Canvas",
+ "label": "147v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5061/",
+ "@type": "sc:Canvas",
+ "label": "148r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/73712/",
+ "@type": "sc:Range",
+ "label": "Missa Sancti Jacobi: Alleluia",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/73712/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5062/",
+ "@type": "sc:Canvas",
+ "label": "148v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5063/",
+ "@type": "sc:Canvas",
+ "label": "149r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5064/",
+ "@type": "sc:Canvas",
+ "label": "149v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5065/",
+ "@type": "sc:Canvas",
+ "label": "150r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16808/",
+ "@type": "sc:Range",
+ "label": "Missa Sancti Jacobi. Credo De apostolis. Patrem",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16808/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5067/",
+ "@type": "sc:Canvas",
+ "label": "150v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5068/",
+ "@type": "sc:Canvas",
+ "label": "151r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6095/",
+ "@type": "sc:Range",
+ "label": "Missa Sancti Jacobi: In omnem terram (Offertory)",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6095/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5069/",
+ "@type": "sc:Canvas",
+ "label": "151v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5070/",
+ "@type": "sc:Canvas",
+ "label": "152r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16809/",
+ "@type": "sc:Range",
+ "label": "Missa Sancti Jacobi. De apostolis. Sanctus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16809/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5071/",
+ "@type": "sc:Canvas",
+ "label": "152v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5072/",
+ "@type": "sc:Canvas",
+ "label": "153r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16810/",
+ "@type": "sc:Range",
+ "label": "Missa Sancti Jacobi: Agnus Dei",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16810/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5071/",
+ "@type": "sc:Canvas",
+ "label": "152v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5072/",
+ "@type": "sc:Canvas",
+ "label": "153r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6096/",
+ "@type": "sc:Range",
+ "label": "Missa Sancti Jacobi: Communio - Vos qui secuti estis me",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6096/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5073/",
+ "@type": "sc:Canvas",
+ "label": "153v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5074/",
+ "@type": "sc:Canvas",
+ "label": "154r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5075/",
+ "@type": "sc:Canvas",
+ "label": "154v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5076/",
+ "@type": "sc:Canvas",
+ "label": "155r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16811/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16811/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5077/",
+ "@type": "sc:Canvas",
+ "label": "155v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5078/",
+ "@type": "sc:Canvas",
+ "label": "156r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5079/",
+ "@type": "sc:Canvas",
+ "label": "156v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5080/",
+ "@type": "sc:Canvas",
+ "label": "157r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16812/",
+ "@type": "sc:Range",
+ "label": "Patrem",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16812/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5082/",
+ "@type": "sc:Canvas",
+ "label": "157v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16813/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16813/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5082/",
+ "@type": "sc:Canvas",
+ "label": "157v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5083/",
+ "@type": "sc:Canvas",
+ "label": "158r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16814/",
+ "@type": "sc:Range",
+ "label": "Kyrie eleison",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16814/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5084/",
+ "@type": "sc:Canvas",
+ "label": "158v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5085/",
+ "@type": "sc:Canvas",
+ "label": "159r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16815/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16815/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5086/",
+ "@type": "sc:Canvas",
+ "label": "159v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5087/",
+ "@type": "sc:Canvas",
+ "label": "160r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16816/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16816/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5086/",
+ "@type": "sc:Canvas",
+ "label": "159v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5087/",
+ "@type": "sc:Canvas",
+ "label": "160r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5088/",
+ "@type": "sc:Canvas",
+ "label": "160v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5089/",
+ "@type": "sc:Canvas",
+ "label": "161r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16817/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16817/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5090/",
+ "@type": "sc:Canvas",
+ "label": "161v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5091/",
+ "@type": "sc:Canvas",
+ "label": "162r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16818/",
+ "@type": "sc:Range",
+ "label": "Missa Admirabilis splendor: Kyrie eleison",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16818/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5090/",
+ "@type": "sc:Canvas",
+ "label": "161v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5091/",
+ "@type": "sc:Canvas",
+ "label": "162r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5092/",
+ "@type": "sc:Canvas",
+ "label": "162v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5093/",
+ "@type": "sc:Canvas",
+ "label": "163r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16819/",
+ "@type": "sc:Range",
+ "label": "Missa Admirabilis splendor: Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16819/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5092/",
+ "@type": "sc:Canvas",
+ "label": "162v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5093/",
+ "@type": "sc:Canvas",
+ "label": "163r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5094/",
+ "@type": "sc:Canvas",
+ "label": "163v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5095/",
+ "@type": "sc:Canvas",
+ "label": "164r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16820/",
+ "@type": "sc:Range",
+ "label": "Missa Admirabilis splendor: Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16820/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5097/",
+ "@type": "sc:Canvas",
+ "label": "164v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5098/",
+ "@type": "sc:Canvas",
+ "label": "165r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16821/",
+ "@type": "sc:Range",
+ "label": "Missa Admirabilis splendor: Sanctus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16821/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5099/",
+ "@type": "sc:Canvas",
+ "label": "165v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5100/",
+ "@type": "sc:Canvas",
+ "label": "166r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16822/",
+ "@type": "sc:Range",
+ "label": "Missa Admirabilis splendor: Agnus Dei",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16822/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5099/",
+ "@type": "sc:Canvas",
+ "label": "165v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5100/",
+ "@type": "sc:Canvas",
+ "label": "166r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5101/",
+ "@type": "sc:Canvas",
+ "label": "166v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5102/",
+ "@type": "sc:Canvas",
+ "label": "167r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16823/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16823/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5101/",
+ "@type": "sc:Canvas",
+ "label": "166v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5102/",
+ "@type": "sc:Canvas",
+ "label": "167r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5103/",
+ "@type": "sc:Canvas",
+ "label": "167v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5104/",
+ "@type": "sc:Canvas",
+ "label": "168r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16824/",
+ "@type": "sc:Range",
+ "label": "Patrem (partially texted)",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16824/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5105/",
+ "@type": "sc:Canvas",
+ "label": "168v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5106/",
+ "@type": "sc:Canvas",
+ "label": "169r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5107/",
+ "@type": "sc:Canvas",
+ "label": "169v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5108/",
+ "@type": "sc:Canvas",
+ "label": "170r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16825/",
+ "@type": "sc:Range",
+ "label": "Missa Spiritus et alme: Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16825/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5107/",
+ "@type": "sc:Canvas",
+ "label": "169v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5108/",
+ "@type": "sc:Canvas",
+ "label": "170r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6097/",
+ "@type": "sc:Range",
+ "label": "Benedicamus Domino",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6097/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5109/",
+ "@type": "sc:Canvas",
+ "label": "170v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5110/",
+ "@type": "sc:Canvas",
+ "label": "171r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5112/",
+ "@type": "sc:Canvas",
+ "label": "171v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16826/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16826/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5112/",
+ "@type": "sc:Canvas",
+ "label": "171v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5113/",
+ "@type": "sc:Canvas",
+ "label": "172r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16827/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16827/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5114/",
+ "@type": "sc:Canvas",
+ "label": "172v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5115/",
+ "@type": "sc:Canvas",
+ "label": "173r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5116/",
+ "@type": "sc:Canvas",
+ "label": "173v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16828/",
+ "@type": "sc:Range",
+ "label": "Missa O pulcherrima: Kyrie verbum incarnatum",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16828/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5116/",
+ "@type": "sc:Canvas",
+ "label": "173v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5117/",
+ "@type": "sc:Canvas",
+ "label": "174r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16829/",
+ "@type": "sc:Range",
+ "label": "Missa O pulcherrima: Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16829/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5118/",
+ "@type": "sc:Canvas",
+ "label": "174v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5119/",
+ "@type": "sc:Canvas",
+ "label": "175r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5120/",
+ "@type": "sc:Canvas",
+ "label": "175v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5121/",
+ "@type": "sc:Canvas",
+ "label": "176r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16830/",
+ "@type": "sc:Range",
+ "label": "Missa O pulcherrima: Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16830/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5120/",
+ "@type": "sc:Canvas",
+ "label": "175v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5121/",
+ "@type": "sc:Canvas",
+ "label": "176r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5122/",
+ "@type": "sc:Canvas",
+ "label": "176v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5123/",
+ "@type": "sc:Canvas",
+ "label": "177r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16831/",
+ "@type": "sc:Range",
+ "label": "Missa O pulcherrima: Sanctus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16831/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5122/",
+ "@type": "sc:Canvas",
+ "label": "176v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5123/",
+ "@type": "sc:Canvas",
+ "label": "177r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16832/",
+ "@type": "sc:Range",
+ "label": "Missa O pulcherrima: Agnus Dei",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16832/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5124/",
+ "@type": "sc:Canvas",
+ "label": "177v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5125/",
+ "@type": "sc:Canvas",
+ "label": "178r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5127/",
+ "@type": "sc:Canvas",
+ "label": "178v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5128/",
+ "@type": "sc:Canvas",
+ "label": "179r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16833/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16833/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5129/",
+ "@type": "sc:Canvas",
+ "label": "179v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5130/",
+ "@type": "sc:Canvas",
+ "label": "180r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16834/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16834/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5131/",
+ "@type": "sc:Canvas",
+ "label": "180v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5132/",
+ "@type": "sc:Canvas",
+ "label": "181r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16835/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16835/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5133/",
+ "@type": "sc:Canvas",
+ "label": "181v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5134/",
+ "@type": "sc:Canvas",
+ "label": "182r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16836/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16836/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5133/",
+ "@type": "sc:Canvas",
+ "label": "181v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5134/",
+ "@type": "sc:Canvas",
+ "label": "182r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16837/",
+ "@type": "sc:Range",
+ "label": "Se coeur damant (incipit texted)",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16837/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5135/",
+ "@type": "sc:Canvas",
+ "label": "182v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5136/",
+ "@type": "sc:Canvas",
+ "label": "183r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5137/",
+ "@type": "sc:Canvas",
+ "label": "183v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5138/",
+ "@type": "sc:Canvas",
+ "label": "184r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16838/",
+ "@type": "sc:Range",
+ "label": "Patrem",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16838/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5139/",
+ "@type": "sc:Canvas",
+ "label": "184v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5140/",
+ "@type": "sc:Canvas",
+ "label": "185r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16839/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16839/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5142/",
+ "@type": "sc:Canvas",
+ "label": "185v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5143/",
+ "@type": "sc:Canvas",
+ "label": "186r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5144/",
+ "@type": "sc:Canvas",
+ "label": "186v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5145/",
+ "@type": "sc:Canvas",
+ "label": "187r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16840/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16840/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5146/",
+ "@type": "sc:Canvas",
+ "label": "187v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5147/",
+ "@type": "sc:Canvas",
+ "label": "188r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16841/",
+ "@type": "sc:Range",
+ "label": "Kyrie eleison",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16841/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5146/",
+ "@type": "sc:Canvas",
+ "label": "187v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5147/",
+ "@type": "sc:Canvas",
+ "label": "188r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16842/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16842/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5148/",
+ "@type": "sc:Canvas",
+ "label": "188v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5149/",
+ "@type": "sc:Canvas",
+ "label": "189r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16843/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16843/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5150/",
+ "@type": "sc:Canvas",
+ "label": "189v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5151/",
+ "@type": "sc:Canvas",
+ "label": "190r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16844/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria] [incipits]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16844/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5154/",
+ "@type": "sc:Canvas",
+ "label": "191v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5155/",
+ "@type": "sc:Canvas",
+ "label": "192r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16845/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16845/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5156/",
+ "@type": "sc:Canvas",
+ "label": "192v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5157/",
+ "@type": "sc:Canvas",
+ "label": "193r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16846/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16846/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5158/",
+ "@type": "sc:Canvas",
+ "label": "193v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5159/",
+ "@type": "sc:Canvas",
+ "label": "194r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16847/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16847/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5162/",
+ "@type": "sc:Canvas",
+ "label": "195v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5163/",
+ "@type": "sc:Canvas",
+ "label": "196r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6098/",
+ "@type": "sc:Range",
+ "label": "Salve sancta parens",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6098/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5162/",
+ "@type": "sc:Canvas",
+ "label": "195v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5163/",
+ "@type": "sc:Canvas",
+ "label": "196r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16848/",
+ "@type": "sc:Range",
+ "label": "Kyrie O sacra virgo",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16848/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5164/",
+ "@type": "sc:Canvas",
+ "label": "196v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5165/",
+ "@type": "sc:Canvas",
+ "label": "197r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16849/",
+ "@type": "sc:Range",
+ "label": "Missa Admirabilis splendor: Kyrie eleison",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16849/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5166/",
+ "@type": "sc:Canvas",
+ "label": "197v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5167/",
+ "@type": "sc:Canvas",
+ "label": "198r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5168/",
+ "@type": "sc:Canvas",
+ "label": "198v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5169/",
+ "@type": "sc:Canvas",
+ "label": "199r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16850/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16850/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5171/",
+ "@type": "sc:Canvas",
+ "label": "199v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5172/",
+ "@type": "sc:Canvas",
+ "label": "200r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5173/",
+ "@type": "sc:Canvas",
+ "label": "200v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5174/",
+ "@type": "sc:Canvas",
+ "label": "201r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16851/",
+ "@type": "sc:Range",
+ "label": "Magnificat anima mea Dominum sexti toni",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16851/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5175/",
+ "@type": "sc:Canvas",
+ "label": "201v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5176/",
+ "@type": "sc:Canvas",
+ "label": "202r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16852/",
+ "@type": "sc:Range",
+ "label": "Magnificat: Et exultavit spiritus meus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16852/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5177/",
+ "@type": "sc:Canvas",
+ "label": "202v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6099/",
+ "@type": "sc:Range",
+ "label": "Alma redemptoris mater",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6099/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5179/",
+ "@type": "sc:Canvas",
+ "label": "203v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5180/",
+ "@type": "sc:Canvas",
+ "label": "204r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5181/",
+ "@type": "sc:Canvas",
+ "label": "204v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5182/",
+ "@type": "sc:Canvas",
+ "label": "205r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16853/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16853/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5181/",
+ "@type": "sc:Canvas",
+ "label": "204v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5182/",
+ "@type": "sc:Canvas",
+ "label": "205r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6100/",
+ "@type": "sc:Range",
+ "label": "Recordare [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6100/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5183/",
+ "@type": "sc:Canvas",
+ "label": "205v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5184/",
+ "@type": "sc:Canvas",
+ "label": "206r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6101/",
+ "@type": "sc:Range",
+ "label": "Ostendit mihi",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6101/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5186/",
+ "@type": "sc:Canvas",
+ "label": "206v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5187/",
+ "@type": "sc:Canvas",
+ "label": "207r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6102/",
+ "@type": "sc:Range",
+ "label": "Supremum est mortalibus bonum II: O sancta pax",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6102/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5188/",
+ "@type": "sc:Canvas",
+ "label": "207v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5189/",
+ "@type": "sc:Canvas",
+ "label": "208r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5190/",
+ "@type": "sc:Canvas",
+ "label": "208v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5191/",
+ "@type": "sc:Canvas",
+ "label": "209r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6103/",
+ "@type": "sc:Range",
+ "label": "Balsamus et munda / isti sunt agni novelli",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6103/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5190/",
+ "@type": "sc:Canvas",
+ "label": "208v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5191/",
+ "@type": "sc:Canvas",
+ "label": "209r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6104/",
+ "@type": "sc:Range",
+ "label": "Salve salus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6104/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5192/",
+ "@type": "sc:Canvas",
+ "label": "209v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5193/",
+ "@type": "sc:Canvas",
+ "label": "210r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5194/",
+ "@type": "sc:Canvas",
+ "label": "210v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6105/",
+ "@type": "sc:Range",
+ "label": "Tu nephanda prodigi / T: Emitat / Si inimicus meus / Emitat caelum",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6105/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5194/",
+ "@type": "sc:Canvas",
+ "label": "210v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5195/",
+ "@type": "sc:Canvas",
+ "label": "211r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6106/",
+ "@type": "sc:Range",
+ "label": "Ave fuit prima salus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6106/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5196/",
+ "@type": "sc:Canvas",
+ "label": "211v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5197/",
+ "@type": "sc:Canvas",
+ "label": "212r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6107/",
+ "@type": "sc:Range",
+ "label": "Inclita stella maris",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6107/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5198/",
+ "@type": "sc:Canvas",
+ "label": "212v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5199/",
+ "@type": "sc:Canvas",
+ "label": "213r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6108/",
+ "@type": "sc:Range",
+ "label": "Rite majorem Jacobum canimus / Artibus summis miseri reclusi",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6108/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5201/",
+ "@type": "sc:Canvas",
+ "label": "213v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5202/",
+ "@type": "sc:Canvas",
+ "label": "214r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6109/",
+ "@type": "sc:Range",
+ "label": "Surexit Christus hodie",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6109/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5203/",
+ "@type": "sc:Canvas",
+ "label": "214v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5204/",
+ "@type": "sc:Canvas",
+ "label": "215r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6110/",
+ "@type": "sc:Range",
+ "label": "Nova vobis gaudia / noua",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6110/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5205/",
+ "@type": "sc:Canvas",
+ "label": "215v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5206/",
+ "@type": "sc:Canvas",
+ "label": "216r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5207/",
+ "@type": "sc:Canvas",
+ "label": "216v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5208/",
+ "@type": "sc:Canvas",
+ "label": "217r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6111/",
+ "@type": "sc:Range",
+ "label": "Pulcra es amica",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6111/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5207/",
+ "@type": "sc:Canvas",
+ "label": "216v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5208/",
+ "@type": "sc:Canvas",
+ "label": "217r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6112/",
+ "@type": "sc:Range",
+ "label": "O pulc[h]er[r]ima mulierum",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6112/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5209/",
+ "@type": "sc:Canvas",
+ "label": "217v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5210/",
+ "@type": "sc:Canvas",
+ "label": "218r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6113/",
+ "@type": "sc:Range",
+ "label": "Salve regina mater misericordiae",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6113/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5209/",
+ "@type": "sc:Canvas",
+ "label": "217v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5210/",
+ "@type": "sc:Canvas",
+ "label": "218r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6114/",
+ "@type": "sc:Range",
+ "label": "In natali Domini [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6114/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5211/",
+ "@type": "sc:Canvas",
+ "label": "218v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5212/",
+ "@type": "sc:Canvas",
+ "label": "219r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6115/",
+ "@type": "sc:Range",
+ "label": "O lux et decus / Amen",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6115/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5213/",
+ "@type": "sc:Canvas",
+ "label": "219v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5214/",
+ "@type": "sc:Canvas",
+ "label": "220r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6116/",
+ "@type": "sc:Range",
+ "label": "Ave mater o Maria (last phrase only texted / partial text)",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6116/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5216/",
+ "@type": "sc:Canvas",
+ "label": "220v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5217/",
+ "@type": "sc:Canvas",
+ "label": "221r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6117/",
+ "@type": "sc:Range",
+ "label": "Descendi in ortum meum / partial text",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6117/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5216/",
+ "@type": "sc:Canvas",
+ "label": "220v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5217/",
+ "@type": "sc:Canvas",
+ "label": "221r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6118/",
+ "@type": "sc:Range",
+ "label": "Spes nostra salus [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6118/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5218/",
+ "@type": "sc:Canvas",
+ "label": "221v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5219/",
+ "@type": "sc:Canvas",
+ "label": "222r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6119/",
+ "@type": "sc:Range",
+ "label": "Benedicta es caelorum regina",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6119/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5220/",
+ "@type": "sc:Canvas",
+ "label": "222v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6120/",
+ "@type": "sc:Range",
+ "label": "Martires Dei incliti / Martires Dei incliti",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6120/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5222/",
+ "@type": "sc:Canvas",
+ "label": "223v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5223/",
+ "@type": "sc:Canvas",
+ "label": "224r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6121/",
+ "@type": "sc:Range",
+ "label": "Congruit mortalibus (partially texted)",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6121/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5224/",
+ "@type": "sc:Canvas",
+ "label": "224v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5225/",
+ "@type": "sc:Canvas",
+ "label": "225r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5226/",
+ "@type": "sc:Canvas",
+ "label": "225v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5227/",
+ "@type": "sc:Canvas",
+ "label": "226r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6122/",
+ "@type": "sc:Range",
+ "label": "Salve vere gratialis / Salve vere gratialis",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6122/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5228/",
+ "@type": "sc:Canvas",
+ "label": "226v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5229/",
+ "@type": "sc:Canvas",
+ "label": "227r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6123/",
+ "@type": "sc:Range",
+ "label": "In hac die celebri",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6123/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5231/",
+ "@type": "sc:Canvas",
+ "label": "227v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5232/",
+ "@type": "sc:Canvas",
+ "label": "228r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6124/",
+ "@type": "sc:Range",
+ "label": "Haec dies Quam fecit [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6124/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5233/",
+ "@type": "sc:Canvas",
+ "label": "228v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5234/",
+ "@type": "sc:Canvas",
+ "label": "229r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6125/",
+ "@type": "sc:Range",
+ "label": "Descendi in ortum / poma conualium si floruissent",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6125/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5235/",
+ "@type": "sc:Canvas",
+ "label": "229v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5236/",
+ "@type": "sc:Canvas",
+ "label": "230r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6126/",
+ "@type": "sc:Range",
+ "label": "Alma redemptoris mater",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6126/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5237/",
+ "@type": "sc:Canvas",
+ "label": "230v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5238/",
+ "@type": "sc:Canvas",
+ "label": "231r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5239/",
+ "@type": "sc:Canvas",
+ "label": "231v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6127/",
+ "@type": "sc:Range",
+ "label": "Gaude virgo mater / Gaude virgo mater [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6127/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5239/",
+ "@type": "sc:Canvas",
+ "label": "231v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5240/",
+ "@type": "sc:Canvas",
+ "label": "232r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16854/",
+ "@type": "sc:Range",
+ "label": "Dilectoza cortesia",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16854/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5241/",
+ "@type": "sc:Canvas",
+ "label": "232v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5242/",
+ "@type": "sc:Canvas",
+ "label": "233r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6128/",
+ "@type": "sc:Range",
+ "label": "Gaude tu baptista / Gaude tu baptista",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6128/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5243/",
+ "@type": "sc:Canvas",
+ "label": "233v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5244/",
+ "@type": "sc:Canvas",
+ "label": "234r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6129/",
+ "@type": "sc:Range",
+ "label": "Ave Jesu Christe",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6129/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5246/",
+ "@type": "sc:Canvas",
+ "label": "234v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5247/",
+ "@type": "sc:Canvas",
+ "label": "235r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6130/",
+ "@type": "sc:Range",
+ "label": "Tota pulchra es amica mea et macula",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6130/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5248/",
+ "@type": "sc:Canvas",
+ "label": "235v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6131/",
+ "@type": "sc:Range",
+ "label": "Imnizabo regi meo [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6131/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5249/",
+ "@type": "sc:Canvas",
+ "label": "236r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6132/",
+ "@type": "sc:Range",
+ "label": "Regina caeli laetare [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6132/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5250/",
+ "@type": "sc:Canvas",
+ "label": "236v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5251/",
+ "@type": "sc:Canvas",
+ "label": "237r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6133/",
+ "@type": "sc:Range",
+ "label": "Missus est Gabriel angelus ad Mariam",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6133/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5252/",
+ "@type": "sc:Canvas",
+ "label": "237v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5253/",
+ "@type": "sc:Canvas",
+ "label": "238r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16855/",
+ "@type": "sc:Range",
+ "label": "Virgene bella (partially texted: in sections 2 and 3)",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16855/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5254/",
+ "@type": "sc:Canvas",
+ "label": "238v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5255/",
+ "@type": "sc:Canvas",
+ "label": "239r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6134/",
+ "@type": "sc:Range",
+ "label": "Tota pulchra es amica mea et macula",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6134/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5256/",
+ "@type": "sc:Canvas",
+ "label": "239v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5257/",
+ "@type": "sc:Canvas",
+ "label": "240r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6135/",
+ "@type": "sc:Range",
+ "label": "Imera dat hodierno",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6135/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5258/",
+ "@type": "sc:Canvas",
+ "label": "240v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5259/",
+ "@type": "sc:Canvas",
+ "label": "241r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6136/",
+ "@type": "sc:Range",
+ "label": "Surge propera",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6136/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5260/",
+ "@type": "sc:Canvas",
+ "label": "241v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5261/",
+ "@type": "sc:Canvas",
+ "label": "242r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6137/",
+ "@type": "sc:Range",
+ "label": "Puer natus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6137/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5262/",
+ "@type": "sc:Canvas",
+ "label": "242v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5263/",
+ "@type": "sc:Canvas",
+ "label": "243r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6138/",
+ "@type": "sc:Range",
+ "label": "Carminibus festos / Carminibus festos",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6138/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5264/",
+ "@type": "sc:Canvas",
+ "label": "243v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5265/",
+ "@type": "sc:Canvas",
+ "label": "244r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6139/",
+ "@type": "sc:Range",
+ "label": "Ave gemma claritas",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6139/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5266/",
+ "@type": "sc:Canvas",
+ "label": "244v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5267/",
+ "@type": "sc:Canvas",
+ "label": "245r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6140/",
+ "@type": "sc:Range",
+ "label": "O felix flos florencia / O felix flos florencia / texted only in final section",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6140/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5268/",
+ "@type": "sc:Canvas",
+ "label": "245v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5269/",
+ "@type": "sc:Canvas",
+ "label": "246r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5270/",
+ "@type": "sc:Canvas",
+ "label": "246v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5271/",
+ "@type": "sc:Canvas",
+ "label": "247r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6141/",
+ "@type": "sc:Range",
+ "label": "Ad honorem sancte trinitatis",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6141/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5270/",
+ "@type": "sc:Canvas",
+ "label": "246v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5271/",
+ "@type": "sc:Canvas",
+ "label": "247r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6142/",
+ "@type": "sc:Range",
+ "label": "Ave verum corpus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6142/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5272/",
+ "@type": "sc:Canvas",
+ "label": "247v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5273/",
+ "@type": "sc:Canvas",
+ "label": "248r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5275/",
+ "@type": "sc:Canvas",
+ "label": "248v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6143/",
+ "@type": "sc:Range",
+ "label": "Sancte sebastiane",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6143/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5275/",
+ "@type": "sc:Canvas",
+ "label": "248v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5276/",
+ "@type": "sc:Canvas",
+ "label": "249r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6144/",
+ "@type": "sc:Range",
+ "label": "Ave verum corpus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6144/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5277/",
+ "@type": "sc:Canvas",
+ "label": "249v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5278/",
+ "@type": "sc:Canvas",
+ "label": "250r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6145/",
+ "@type": "sc:Range",
+ "label": "Jesu salvator saeculi / Quo vulneratus scelere",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6145/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5277/",
+ "@type": "sc:Canvas",
+ "label": "249v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5278/",
+ "@type": "sc:Canvas",
+ "label": "250r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16856/",
+ "@type": "sc:Range",
+ "label": "Ma seul amour et ma belle maistresse",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16856/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5279/",
+ "@type": "sc:Canvas",
+ "label": "250v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5280/",
+ "@type": "sc:Canvas",
+ "label": "251r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5281/",
+ "@type": "sc:Canvas",
+ "label": "251v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5282/",
+ "@type": "sc:Canvas",
+ "label": "252r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6146/",
+ "@type": "sc:Range",
+ "label": "Plaude decus mundi / Plaude decus mundi",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6146/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5283/",
+ "@type": "sc:Canvas",
+ "label": "252v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5284/",
+ "@type": "sc:Canvas",
+ "label": "253r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6147/",
+ "@type": "sc:Range",
+ "label": "O felix templum / O felix templum",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6147/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5285/",
+ "@type": "sc:Canvas",
+ "label": "253v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5286/",
+ "@type": "sc:Canvas",
+ "label": "254r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6148/",
+ "@type": "sc:Range",
+ "label": "Venite adoremus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6148/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5287/",
+ "@type": "sc:Canvas",
+ "label": "254v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5288/",
+ "@type": "sc:Canvas",
+ "label": "255r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6149/",
+ "@type": "sc:Range",
+ "label": "Sub Arturo plebs valata / Fons citharizantium ac organizantium / In omnem terram",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6149/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5290/",
+ "@type": "sc:Canvas",
+ "label": "255v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5291/",
+ "@type": "sc:Canvas",
+ "label": "256r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6150/",
+ "@type": "sc:Range",
+ "label": "Aurea flamigeri / Aurea flamigeri",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6150/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5292/",
+ "@type": "sc:Canvas",
+ "label": "256v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5293/",
+ "@type": "sc:Canvas",
+ "label": "257r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6151/",
+ "@type": "sc:Range",
+ "label": "Dominicus a dono",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6151/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5294/",
+ "@type": "sc:Canvas",
+ "label": "257v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5295/",
+ "@type": "sc:Canvas",
+ "label": "258r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6152/",
+ "@type": "sc:Range",
+ "label": "Jesus postquam monstraverat / Jesus postquam monstraverat",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6152/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5296/",
+ "@type": "sc:Canvas",
+ "label": "258v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5297/",
+ "@type": "sc:Canvas",
+ "label": "259r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6153/",
+ "@type": "sc:Range",
+ "label": "Ave verum corpus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6153/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5298/",
+ "@type": "sc:Canvas",
+ "label": "259v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5299/",
+ "@type": "sc:Canvas",
+ "label": "260r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6154/",
+ "@type": "sc:Range",
+ "label": "Plasmatoris humani / Plasmatoris humani",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6154/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5300/",
+ "@type": "sc:Canvas",
+ "label": "260v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5301/",
+ "@type": "sc:Canvas",
+ "label": "261r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6155/",
+ "@type": "sc:Range",
+ "label": "Alma redemptoris mater [1] [2a pars] et stella maris [3a pars] Virgo prius",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6155/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5302/",
+ "@type": "sc:Canvas",
+ "label": "261v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5303/",
+ "@type": "sc:Canvas",
+ "label": "262r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6156/",
+ "@type": "sc:Range",
+ "label": "Ave Regina caelorum [1]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6156/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5302/",
+ "@type": "sc:Canvas",
+ "label": "261v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5303/",
+ "@type": "sc:Canvas",
+ "label": "262r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16857/",
+ "@type": "sc:Range",
+ "label": "Mon seul vouloir",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16857/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5304/",
+ "@type": "sc:Canvas",
+ "label": "262v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5305/",
+ "@type": "sc:Canvas",
+ "label": "263r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5306/",
+ "@type": "sc:Canvas",
+ "label": "263v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6157/",
+ "@type": "sc:Range",
+ "label": "O Maria virgo davitica virginum flos / O Maria maris stella plena gratie",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6157/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5304/",
+ "@type": "sc:Canvas",
+ "label": "262v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16858/",
+ "@type": "sc:Range",
+ "label": "Et c'est assés pour m'esjouir",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16858/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5306/",
+ "@type": "sc:Canvas",
+ "label": "263v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5307/",
+ "@type": "sc:Canvas",
+ "label": "264r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6158/",
+ "@type": "sc:Range",
+ "label": "Ave Maria gratia plena / Ave Maria gratia plena",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6158/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5306/",
+ "@type": "sc:Canvas",
+ "label": "263v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5307/",
+ "@type": "sc:Canvas",
+ "label": "264r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16859/",
+ "@type": "sc:Range",
+ "label": "Par droit je suis bien complaindre et gemir",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16859/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5308/",
+ "@type": "sc:Canvas",
+ "label": "264v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5309/",
+ "@type": "sc:Canvas",
+ "label": "265r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6159/",
+ "@type": "sc:Range",
+ "label": "Cuius fructus ventris / Te Maria rogitassem",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6159/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5310/",
+ "@type": "sc:Canvas",
+ "label": "265v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5311/",
+ "@type": "sc:Canvas",
+ "label": "266r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6160/",
+ "@type": "sc:Range",
+ "label": "Salve regina [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6160/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5312/",
+ "@type": "sc:Canvas",
+ "label": "266v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5313/",
+ "@type": "sc:Canvas",
+ "label": "267r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6161/",
+ "@type": "sc:Range",
+ "label": "Ave mater pietatis texted for fermata passage / Ave mater pietatis [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6161/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5314/",
+ "@type": "sc:Canvas",
+ "label": "267v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5315/",
+ "@type": "sc:Canvas",
+ "label": "268r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6162/",
+ "@type": "sc:Range",
+ "label": "Flos florum fons ortorum",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6162/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5316/",
+ "@type": "sc:Canvas",
+ "label": "268v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5317/",
+ "@type": "sc:Canvas",
+ "label": "269r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6163/",
+ "@type": "sc:Range",
+ "label": "Anima mea liquefacta est",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6163/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5319/",
+ "@type": "sc:Canvas",
+ "label": "269v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5320/",
+ "@type": "sc:Canvas",
+ "label": "270r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6164/",
+ "@type": "sc:Range",
+ "label": "Ave virgo lux Maria [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6164/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5321/",
+ "@type": "sc:Canvas",
+ "label": "270v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5322/",
+ "@type": "sc:Canvas",
+ "label": "271r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6165/",
+ "@type": "sc:Range",
+ "label": "Apostolo glorioso / Apostolo glorioso",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6165/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5323/",
+ "@type": "sc:Canvas",
+ "label": "271v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5324/",
+ "@type": "sc:Canvas",
+ "label": "272r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6166/",
+ "@type": "sc:Range",
+ "label": "Regina caeli [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6166/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5324/",
+ "@type": "sc:Canvas",
+ "label": "272r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16860/",
+ "@type": "sc:Range",
+ "label": "Se vous scavies",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16860/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5325/",
+ "@type": "sc:Canvas",
+ "label": "272v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5326/",
+ "@type": "sc:Canvas",
+ "label": "273r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5327/",
+ "@type": "sc:Canvas",
+ "label": "273v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6167/",
+ "@type": "sc:Range",
+ "label": "Salve regina [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6167/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5327/",
+ "@type": "sc:Canvas",
+ "label": "273v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5328/",
+ "@type": "sc:Canvas",
+ "label": "274r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16861/",
+ "@type": "sc:Range",
+ "label": "Or vois-je bien",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16861/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5329/",
+ "@type": "sc:Canvas",
+ "label": "274v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5330/",
+ "@type": "sc:Canvas",
+ "label": "275r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6168/",
+ "@type": "sc:Range",
+ "label": "Pie pater Dominice",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6168/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5331/",
+ "@type": "sc:Canvas",
+ "label": "275v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5332/",
+ "@type": "sc:Canvas",
+ "label": "276r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6169/",
+ "@type": "sc:Range",
+ "label": "Ducalis sedes inclita/Stirps […] veneti",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6169/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5333/",
+ "@type": "sc:Canvas",
+ "label": "276v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5334/",
+ "@type": "sc:Canvas",
+ "label": "277r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6170/",
+ "@type": "sc:Range",
+ "label": "Vasilissa ergo gaude",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6170/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5335/",
+ "@type": "sc:Canvas",
+ "label": "277v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5336/",
+ "@type": "sc:Canvas",
+ "label": "278r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6171/",
+ "@type": "sc:Range",
+ "label": "Petrum marcello",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6171/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5337/",
+ "@type": "sc:Canvas",
+ "label": "278v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5338/",
+ "@type": "sc:Canvas",
+ "label": "279r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6172/",
+ "@type": "sc:Range",
+ "label": "Salve pater creator",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6172/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5339/",
+ "@type": "sc:Canvas",
+ "label": "279v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5340/",
+ "@type": "sc:Canvas",
+ "label": "280r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6173/",
+ "@type": "sc:Range",
+ "label": "Psallat chorus in novo carmine / Eximie pater egregie, rector / Aptatur",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6173/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5339/",
+ "@type": "sc:Canvas",
+ "label": "279v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5340/",
+ "@type": "sc:Canvas",
+ "label": "280r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16862/",
+ "@type": "sc:Range",
+ "label": "Par un regard",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16862/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5341/",
+ "@type": "sc:Canvas",
+ "label": "280v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5342/",
+ "@type": "sc:Canvas",
+ "label": "281r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6174/",
+ "@type": "sc:Range",
+ "label": "In pharaonis atrio [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6174/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5342/",
+ "@type": "sc:Canvas",
+ "label": "281r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16863/",
+ "@type": "sc:Range",
+ "label": "J'aime bien celui qui s'en va",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16863/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5343/",
+ "@type": "sc:Canvas",
+ "label": "281v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5344/",
+ "@type": "sc:Canvas",
+ "label": "282r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6175/",
+ "@type": "sc:Range",
+ "label": "Verbum tuum",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6175/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5345/",
+ "@type": "sc:Canvas",
+ "label": "282v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5346/",
+ "@type": "sc:Canvas",
+ "label": "283r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6176/",
+ "@type": "sc:Range",
+ "label": "Magne Deus potentiae",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6176/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5348/",
+ "@type": "sc:Canvas",
+ "label": "283v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5349/",
+ "@type": "sc:Canvas",
+ "label": "284r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6177/",
+ "@type": "sc:Range",
+ "label": "O flos in divo / O flos in divo",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6177/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5350/",
+ "@type": "sc:Canvas",
+ "label": "284v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5351/",
+ "@type": "sc:Canvas",
+ "label": "285r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6178/",
+ "@type": "sc:Range",
+ "label": "O virum omnimoda veneratione / O lux et decus tranensium / O beate Nicolae supplicum vota suscipe",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6178/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5352/",
+ "@type": "sc:Canvas",
+ "label": "285v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5353/",
+ "@type": "sc:Canvas",
+ "label": "286r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6179/",
+ "@type": "sc:Range",
+ "label": "O beatum incendium / O beatum incendium [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6179/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5354/",
+ "@type": "sc:Canvas",
+ "label": "286v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5355/",
+ "@type": "sc:Canvas",
+ "label": "287r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6180/",
+ "@type": "sc:Range",
+ "label": "O padua sidus preclarum",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6180/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5356/",
+ "@type": "sc:Canvas",
+ "label": "287v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5357/",
+ "@type": "sc:Canvas",
+ "label": "288r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6181/",
+ "@type": "sc:Range",
+ "label": "Venecie mundi splendor",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6181/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5358/",
+ "@type": "sc:Canvas",
+ "label": "288v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5359/",
+ "@type": "sc:Canvas",
+ "label": "289r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6182/",
+ "@type": "sc:Range",
+ "label": "O petre xpi discipuli / O petre xpi discipuli",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6182/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5360/",
+ "@type": "sc:Canvas",
+ "label": "289v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5361/",
+ "@type": "sc:Canvas",
+ "label": "290r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6183/",
+ "@type": "sc:Range",
+ "label": "Ut per te omnis",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6183/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5362/",
+ "@type": "sc:Canvas",
+ "label": "290v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5363/",
+ "@type": "sc:Canvas",
+ "label": "291r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6184/",
+ "@type": "sc:Range",
+ "label": "Summe summi tu patris",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6184/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5364/",
+ "@type": "sc:Canvas",
+ "label": "291v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5365/",
+ "@type": "sc:Canvas",
+ "label": "292r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6185/",
+ "@type": "sc:Range",
+ "label": "Prevalet simplicitas / Prevalet simplicitas",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6185/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5364/",
+ "@type": "sc:Canvas",
+ "label": "291v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5365/",
+ "@type": "sc:Canvas",
+ "label": "292r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6186/",
+ "@type": "sc:Range",
+ "label": "Caro mea vere est / Caro mea vere est",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6186/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5366/",
+ "@type": "sc:Canvas",
+ "label": "292v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5367/",
+ "@type": "sc:Canvas",
+ "label": "293r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6187/",
+ "@type": "sc:Range",
+ "label": "O gemma lux et speculum",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6187/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5368/",
+ "@type": "sc:Canvas",
+ "label": "293v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5369/",
+ "@type": "sc:Canvas",
+ "label": "294r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6188/",
+ "@type": "sc:Range",
+ "label": "O flos fragrans",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6188/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5370/",
+ "@type": "sc:Canvas",
+ "label": "294v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6189/",
+ "@type": "sc:Range",
+ "label": "Ave mater nostri redemptoris",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6189/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5370/",
+ "@type": "sc:Canvas",
+ "label": "294v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5371/",
+ "@type": "sc:Canvas",
+ "label": "295r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6190/",
+ "@type": "sc:Range",
+ "label": "Salve virgo regia [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6190/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5372/",
+ "@type": "sc:Canvas",
+ "label": "295v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5373/",
+ "@type": "sc:Canvas",
+ "label": "296r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6191/",
+ "@type": "sc:Range",
+ "label": "Te dignitas praesularis / O Martine",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6191/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5374/",
+ "@type": "sc:Canvas",
+ "label": "296v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6192/",
+ "@type": "sc:Range",
+ "label": "Gratulemur xpicole / Gratulemur xpicole / Gratulemur xpicole [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6192/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5374/",
+ "@type": "sc:Canvas",
+ "label": "296v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5375/",
+ "@type": "sc:Canvas",
+ "label": "297r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12698/",
+ "@type": "sc:Range",
+ "label": "Dilecto Jesu Christo [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12698/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5377/",
+ "@type": "sc:Canvas",
+ "label": "297v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5378/",
+ "@type": "sc:Canvas",
+ "label": "298r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6193/",
+ "@type": "sc:Range",
+ "label": "Introitus Recordare virgo mater [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6193/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5379/",
+ "@type": "sc:Canvas",
+ "label": "298v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5380/",
+ "@type": "sc:Canvas",
+ "label": "299r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6194/",
+ "@type": "sc:Range",
+ "label": "Excelsa civitas vincencia",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6194/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5381/",
+ "@type": "sc:Canvas",
+ "label": "299v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5382/",
+ "@type": "sc:Canvas",
+ "label": "300r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6195/",
+ "@type": "sc:Range",
+ "label": "Doctorum principem / Doctorum principem",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6195/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5383/",
+ "@type": "sc:Canvas",
+ "label": "300v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5384/",
+ "@type": "sc:Canvas",
+ "label": "301r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6196/",
+ "@type": "sc:Range",
+ "label": "Albane misse caelitus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6196/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5385/",
+ "@type": "sc:Canvas",
+ "label": "301v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5386/",
+ "@type": "sc:Canvas",
+ "label": "302r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6197/",
+ "@type": "sc:Range",
+ "label": "Sanctus itaque patriarcha / Sanctus itaque patriarcha",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6197/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5387/",
+ "@type": "sc:Canvas",
+ "label": "302v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5388/",
+ "@type": "sc:Canvas",
+ "label": "303r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6198/",
+ "@type": "sc:Range",
+ "label": "Summus secretarius",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6198/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5389/",
+ "@type": "sc:Canvas",
+ "label": "303v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6199/",
+ "@type": "sc:Range",
+ "label": "O quam mirabilis progenies",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6199/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5389/",
+ "@type": "sc:Canvas",
+ "label": "303v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5390/",
+ "@type": "sc:Canvas",
+ "label": "304r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6200/",
+ "@type": "sc:Range",
+ "label": "Alleluia. Katherina [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6200/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5392/",
+ "@type": "sc:Canvas",
+ "label": "304v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6201/",
+ "@type": "sc:Range",
+ "label": "Si nichil actuleris / Si nichil actuleris",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6201/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5392/",
+ "@type": "sc:Canvas",
+ "label": "304v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5393/",
+ "@type": "sc:Canvas",
+ "label": "305r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6202/",
+ "@type": "sc:Range",
+ "label": "Veni dilecte mi",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6202/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5394/",
+ "@type": "sc:Canvas",
+ "label": "305v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5395/",
+ "@type": "sc:Canvas",
+ "label": "306r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6203/",
+ "@type": "sc:Range",
+ "label": "Regina caeli laetare [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6203/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5396/",
+ "@type": "sc:Canvas",
+ "label": "306v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5397/",
+ "@type": "sc:Canvas",
+ "label": "307r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6204/",
+ "@type": "sc:Range",
+ "label": "Ave regina / Ave regina [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6204/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5398/",
+ "@type": "sc:Canvas",
+ "label": "307v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5399/",
+ "@type": "sc:Canvas",
+ "label": "308r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12699/",
+ "@type": "sc:Range",
+ "label": "Magne dies laetitiae",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12699/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5398/",
+ "@type": "sc:Canvas",
+ "label": "307v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5399/",
+ "@type": "sc:Canvas",
+ "label": "308r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6205/",
+ "@type": "sc:Range",
+ "label": "Verbum caro [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6205/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5400/",
+ "@type": "sc:Canvas",
+ "label": "308v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5401/",
+ "@type": "sc:Canvas",
+ "label": "309r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6206/",
+ "@type": "sc:Range",
+ "label": "O Maria maris stella / texted only for duet / partial text",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6206/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5401/",
+ "@type": "sc:Canvas",
+ "label": "309r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6207/",
+ "@type": "sc:Range",
+ "label": "Gaude flore virginali / Gaude flore virginali / Gaude flore virginali",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6207/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5402/",
+ "@type": "sc:Canvas",
+ "label": "309v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5403/",
+ "@type": "sc:Canvas",
+ "label": "310r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6208/",
+ "@type": "sc:Range",
+ "label": "O baptista mirabilis",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6208/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5402/",
+ "@type": "sc:Canvas",
+ "label": "309v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5403/",
+ "@type": "sc:Canvas",
+ "label": "310r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6209/",
+ "@type": "sc:Range",
+ "label": "In tua memoria / In tua memoria [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6209/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5404/",
+ "@type": "sc:Canvas",
+ "label": "310v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5405/",
+ "@type": "sc:Canvas",
+ "label": "311r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6210/",
+ "@type": "sc:Range",
+ "label": "Gaude felix padua",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6210/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5407/",
+ "@type": "sc:Canvas",
+ "label": "311v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5408/",
+ "@type": "sc:Canvas",
+ "label": "312r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6211/",
+ "@type": "sc:Range",
+ "label": "Beata Dei genitrix [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6211/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5409/",
+ "@type": "sc:Canvas",
+ "label": "312v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5410/",
+ "@type": "sc:Canvas",
+ "label": "313r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6212/",
+ "@type": "sc:Range",
+ "label": "Sub tuam protectionem [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6212/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5411/",
+ "@type": "sc:Canvas",
+ "label": "313v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5412/",
+ "@type": "sc:Canvas",
+ "label": "314r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6213/",
+ "@type": "sc:Range",
+ "label": "Quam pulchra es et quam decora",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6213/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5413/",
+ "@type": "sc:Canvas",
+ "label": "314v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5414/",
+ "@type": "sc:Canvas",
+ "label": "315r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6214/",
+ "@type": "sc:Range",
+ "label": "O beate sebastiane",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6214/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5413/",
+ "@type": "sc:Canvas",
+ "label": "314v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5414/",
+ "@type": "sc:Canvas",
+ "label": "315r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12700/",
+ "@type": "sc:Range",
+ "label": "Conditor alme siderum",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12700/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5415/",
+ "@type": "sc:Canvas",
+ "label": "315v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5416/",
+ "@type": "sc:Canvas",
+ "label": "316r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12701/",
+ "@type": "sc:Range",
+ "label": "Criste redemptor ... Ex patre",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12701/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5417/",
+ "@type": "sc:Canvas",
+ "label": "316v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5418/",
+ "@type": "sc:Canvas",
+ "label": "317r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12702/",
+ "@type": "sc:Range",
+ "label": "Christe redemptor omnium . Tu lumen tu splendor",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12702/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5418/",
+ "@type": "sc:Canvas",
+ "label": "317r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12149/",
+ "@type": "sc:Range",
+ "label": "Hostis Herodes impie (Ibant magi)",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12149/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5419/",
+ "@type": "sc:Canvas",
+ "label": "317v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12703/",
+ "@type": "sc:Range",
+ "label": "Ad caenam agni providi Cuius corpus sanctissimum [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12703/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5420/",
+ "@type": "sc:Canvas",
+ "label": "318r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12704/",
+ "@type": "sc:Range",
+ "label": "Jesu nostra redemptio",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12704/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5422/",
+ "@type": "sc:Canvas",
+ "label": "318v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12705/",
+ "@type": "sc:Range",
+ "label": "Veni creator spiritus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12705/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5423/",
+ "@type": "sc:Canvas",
+ "label": "319r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12706/",
+ "@type": "sc:Range",
+ "label": "O lux beata",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12706/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5424/",
+ "@type": "sc:Canvas",
+ "label": "319v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12707/",
+ "@type": "sc:Range",
+ "label": "Lucis creator optime",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12707/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5425/",
+ "@type": "sc:Canvas",
+ "label": "320r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5426/",
+ "@type": "sc:Canvas",
+ "label": "320v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12708/",
+ "@type": "sc:Range",
+ "label": "Pange lingua gloriosi corporis misterium",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12708/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5427/",
+ "@type": "sc:Canvas",
+ "label": "321r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12709/",
+ "@type": "sc:Range",
+ "label": "Urbs beata Jerusalem. Nova veniens e caelo",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12709/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5428/",
+ "@type": "sc:Canvas",
+ "label": "321v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12710/",
+ "@type": "sc:Range",
+ "label": "Ave maris stella Sumens illud ave",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12710/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5429/",
+ "@type": "sc:Canvas",
+ "label": "322r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12711/",
+ "@type": "sc:Range",
+ "label": "Christe redemptor omnium/conserva (Beata quoque agmina)",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12711/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5430/",
+ "@type": "sc:Canvas",
+ "label": "322v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12712/",
+ "@type": "sc:Range",
+ "label": "Christe redemptor omnium/conserva (Beata quoque agmina)",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12712/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5431/",
+ "@type": "sc:Canvas",
+ "label": "323r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12713/",
+ "@type": "sc:Range",
+ "label": "Tibi Christe splendor Patris",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12713/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5432/",
+ "@type": "sc:Canvas",
+ "label": "323v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12714/",
+ "@type": "sc:Range",
+ "label": "Ut queant Iaxis (Nuntius celso veniens)",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12714/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5433/",
+ "@type": "sc:Canvas",
+ "label": "324r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12715/",
+ "@type": "sc:Range",
+ "label": "Aurea luce et decore roseo",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12715/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5434/",
+ "@type": "sc:Canvas",
+ "label": "324v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12716/",
+ "@type": "sc:Range",
+ "label": "Exultet caelum laudibus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12716/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5435/",
+ "@type": "sc:Canvas",
+ "label": "325r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12717/",
+ "@type": "sc:Range",
+ "label": "Deus tuorum militum (Hic nempe mundi gaudia)",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12717/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5437/",
+ "@type": "sc:Canvas",
+ "label": "325v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5438/",
+ "@type": "sc:Canvas",
+ "label": "326r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12718/",
+ "@type": "sc:Range",
+ "label": "Sanctorum meritis Hi sunt quos retinens",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12718/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5438/",
+ "@type": "sc:Canvas",
+ "label": "326r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12719/",
+ "@type": "sc:Range",
+ "label": "Iste confessor (Qui pius prudens)",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12719/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5439/",
+ "@type": "sc:Canvas",
+ "label": "326v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12720/",
+ "@type": "sc:Range",
+ "label": "Virginis proles",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12720/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5440/",
+ "@type": "sc:Canvas",
+ "label": "327r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12721/",
+ "@type": "sc:Range",
+ "label": "Jesu corona virginum (Qui pascis inter lilia)",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12721/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5441/",
+ "@type": "sc:Canvas",
+ "label": "327v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5442/",
+ "@type": "sc:Canvas",
+ "label": "328r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5443/",
+ "@type": "sc:Canvas",
+ "label": "328v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6215/",
+ "@type": "sc:Range",
+ "label": "Letabundus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6215/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5444/",
+ "@type": "sc:Canvas",
+ "label": "329r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5445/",
+ "@type": "sc:Canvas",
+ "label": "329v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5446/",
+ "@type": "sc:Canvas",
+ "label": "330r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6216/",
+ "@type": "sc:Range",
+ "label": "Veni sancte spiritus et emitte caelitus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6216/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5447/",
+ "@type": "sc:Canvas",
+ "label": "330v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5448/",
+ "@type": "sc:Canvas",
+ "label": "331r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5449/",
+ "@type": "sc:Canvas",
+ "label": "331v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5450/",
+ "@type": "sc:Canvas",
+ "label": "332r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5452/",
+ "@type": "sc:Canvas",
+ "label": "332v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5453/",
+ "@type": "sc:Canvas",
+ "label": "333r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16864/",
+ "@type": "sc:Range",
+ "label": "Magnificat anima mea Dominum",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16864/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5452/",
+ "@type": "sc:Canvas",
+ "label": "332v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5453/",
+ "@type": "sc:Canvas",
+ "label": "333r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5454/",
+ "@type": "sc:Canvas",
+ "label": "333v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5455/",
+ "@type": "sc:Canvas",
+ "label": "334r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16865/",
+ "@type": "sc:Range",
+ "label": "Magnificat: Et exultavit spiritus meus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16865/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5454/",
+ "@type": "sc:Canvas",
+ "label": "333v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5455/",
+ "@type": "sc:Canvas",
+ "label": "334r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16866/",
+ "@type": "sc:Range",
+ "label": "Magnificat: Et exultavit spiritus meus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16866/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5456/",
+ "@type": "sc:Canvas",
+ "label": "334v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5457/",
+ "@type": "sc:Canvas",
+ "label": "335r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16867/",
+ "@type": "sc:Range",
+ "label": "Magnificat anima mea Dominum",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16867/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5458/",
+ "@type": "sc:Canvas",
+ "label": "335v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5459/",
+ "@type": "sc:Canvas",
+ "label": "336r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/100291/",
+ "@type": "sc:Range",
+ "label": "Esurientes [Magnificat]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/100291/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5460/",
+ "@type": "sc:Canvas",
+ "label": "336v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5463/",
+ "@type": "sc:Canvas",
+ "label": "338r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16868/",
+ "@type": "sc:Range",
+ "label": "Magnificat anima mea Dominum",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16868/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5460/",
+ "@type": "sc:Canvas",
+ "label": "336v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5461/",
+ "@type": "sc:Canvas",
+ "label": "337r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5462/",
+ "@type": "sc:Canvas",
+ "label": "337v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5463/",
+ "@type": "sc:Canvas",
+ "label": "338r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16869/",
+ "@type": "sc:Range",
+ "label": "Magnificat: Et exultavit spiritus meus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16869/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5464/",
+ "@type": "sc:Canvas",
+ "label": "338v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5465/",
+ "@type": "sc:Canvas",
+ "label": "339r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16870/",
+ "@type": "sc:Range",
+ "label": "Magnificat [secundi toni]: Et exultavit spiritus meus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16870/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5466/",
+ "@type": "sc:Canvas",
+ "label": "339v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5467/",
+ "@type": "sc:Canvas",
+ "label": "340r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5468/",
+ "@type": "sc:Canvas",
+ "label": "340v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6217/",
+ "@type": "sc:Range",
+ "label": "Mittit ad virginem",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6217/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5469/",
+ "@type": "sc:Canvas",
+ "label": "341r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6218/",
+ "@type": "sc:Range",
+ "label": "O felix templum / O felix templum",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6218/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5470/",
+ "@type": "sc:Canvas",
+ "label": "341v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5471/",
+ "@type": "sc:Canvas",
+ "label": "342r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6219/",
+ "@type": "sc:Range",
+ "label": "Venite adoremus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6219/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5472/",
+ "@type": "sc:Canvas",
+ "label": "342v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6220/",
+ "@type": "sc:Range",
+ "label": "Sub Arturo plebs valata / Fons citharizantium ac organizantium / In omnem terram",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6220/"
+ }
+ }
+ ],
+ "attribution": "Digital Image Archive of Medieval Music",
+ "logo": "https://www.diamm.ac.uk/static/images/diammlogo.png"
+}
\ No newline at end of file
diff --git a/test/manifests/iiifv3.json b/test/manifests/iiifv3.json
new file mode 100644
index 00000000..2b73b6ec
--- /dev/null
+++ b/test/manifests/iiifv3.json
@@ -0,0 +1,10965 @@
+{
+ "@context":[
+ "http://www.w3.org/ns/anno.jsonld",
+ "http://iiif.io/api/presentation/3/context.json"
+ ],
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/manifest/a4120d22-b62f-4b57-861d-43c839c790a0.json",
+ "type":"Manifest",
+ "label":{
+ "en":[
+ "Bodleian Library: MS. Canon. Misc. 213"
+ ]
+ },
+ "summary":"Songs and hymns (noted)",
+ "metadata":[
+ {
+ "label":{
+ "en":[
+ "Creator"
+ ]
+ },
+ "value":{
+ "en":[
+ "Various composers including Guillaume Dufay, Gilles Binchois, etc. [author]"
+ ]
+ }
+ },
+ {
+ "label":{
+ "en":[
+ "Language"
+ ]
+ },
+ "value":{
+ "en":[
+ "Latin"
+ ]
+ }
+ },
+ {
+ "label":{
+ "en":[
+ "Date Statement"
+ ]
+ },
+ "value":{
+ "en":[
+ "1401",
+ "1500"
+ ]
+ }
+ },
+ {
+ "label":{
+ "en":[
+ "Place of Origin"
+ ]
+ },
+ "value":{
+ "en":[
+ "Italian"
+ ]
+ }
+ },
+ {
+ "label":{
+ "en":[
+ "Catalogue Identifier"
+ ]
+ },
+ "value":{
+ "en":[
+ "Summary Catalogue 19689"
+ ]
+ }
+ },
+ {
+ "label":{
+ "en":[
+ "Record Created"
+ ]
+ },
+ "value":{
+ "en":[
+ "2018-02-27T10:24:52Z"
+ ]
+ }
+ },
+ {
+ "label":{
+ "en":[
+ "Holding Institution"
+ ]
+ },
+ "value":{
+ "en":[
+ "Bodleian Libraries, University of Oxford"
+ ]
+ }
+ },
+ {
+ "label":{
+ "en":[
+ "Collection"
+ ]
+ },
+ "value":{
+ "en":[
+ "Music",
+ "Western Manuscripts",
+ "Manuscripts"
+ ]
+ }
+ }
+ ],
+ "homepage":[
+ {
+ "id":"https://digital.bodleian.ox.ac.uk/inquire/p/a4120d22-b62f-4b57-861d-43c839c790a0",
+ "type":"Text",
+ "label":{
+ "en":[
+ "View on Digital Bodleian"
+ ]
+ },
+ "format":"text/html"
+ }
+ ],
+ "logo":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b83fe9b4-3ffb-4890-aa3f-7d551dfd8b38/full/256,/0/default.jpg",
+ "type":"Image",
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b83fe9b4-3ffb-4890-aa3f-7d551dfd8b38"
+ }
+ }
+ ],
+ "thumbnail":[
+ {
+ "@id":"https://iiif.bodleian.ox.ac.uk/iiif/image/afad6535-f141-404e-a497-207530420221/full/256,/0/default.jpg",
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "@id":"https://iiif.bodleian.ox.ac.uk/iiif/image/afad6535-f141-404e-a497-207530420221"
+ }
+ }
+ ],
+ "requiredStatement":{
+ "label":{
+ "en":[
+ "Terms of Use"
+ ]
+ },
+ "value":{
+ "en":[
+ "Terms of use: http://digital.bodleian.ox.ac.uk/terms.html"
+ ]
+ }
+ },
+ "partOf":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/collection/music",
+ "type":"Collection",
+ "label":{
+ "en":[
+ "Music"
+ ]
+ }
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/collection/western-manuscripts",
+ "type":"Collection",
+ "label":{
+ "en":[
+ "Western Manuscripts"
+ ]
+ }
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/collection/manuscripts",
+ "type":"Collection",
+ "label":{
+ "en":[
+ "Manuscripts"
+ ]
+ }
+ }
+ ],
+ "behaviour":[
+ "paged"
+ ],
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/afad6535-f141-404e-a497-207530420221.json",
+ "type":"Canvas",
+ "label":"Upper board",
+ "width":5428,
+ "height":6444,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/afad6535-f141-404e-a497-207530420221.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/afad6535-f141-404e-a497-207530420221.json",
+ "body":{
+ "type": "Choice",
+ "items": [{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/afad6535-f141-404e-a497-207530420221",
+ "type":"Image",
+ "format":"image/jpeg",
+ "label": "Primary Colour",
+ "width":5428,
+ "height":6444,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/afad6535-f141-404e-a497-207530420221"
+ }
+ }, {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/797d3cbc-f3f9-4c82-9fa0-09108d395775",
+ "type":"Image",
+ "format":"image/jpeg",
+ "label": "Ultraviolet (Not really, Just a test)",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/797d3cbc-f3f9-4c82-9fa0-09108d395775"
+ }
+ }]
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/797d3cbc-f3f9-4c82-9fa0-09108d395775.json",
+ "type":"Canvas",
+ "label":"Inside upper board",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/797d3cbc-f3f9-4c82-9fa0-09108d395775.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/797d3cbc-f3f9-4c82-9fa0-09108d395775.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/797d3cbc-f3f9-4c82-9fa0-09108d395775",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/797d3cbc-f3f9-4c82-9fa0-09108d395775"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/042b7b1b-b165-49a6-bf97-b5944d49e89d.json",
+ "type":"Canvas",
+ "label":"fol. i r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/042b7b1b-b165-49a6-bf97-b5944d49e89d.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/042b7b1b-b165-49a6-bf97-b5944d49e89d.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/042b7b1b-b165-49a6-bf97-b5944d49e89d",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/042b7b1b-b165-49a6-bf97-b5944d49e89d"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d41dc9ba-efec-46a9-9231-c7ceecba607e.json",
+ "type":"Canvas",
+ "label":"fol. i v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/d41dc9ba-efec-46a9-9231-c7ceecba607e.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d41dc9ba-efec-46a9-9231-c7ceecba607e.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d41dc9ba-efec-46a9-9231-c7ceecba607e",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d41dc9ba-efec-46a9-9231-c7ceecba607e"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b9f0b9e9-e8c2-4f9c-a5b2-2848bd8e7d3c.json",
+ "type":"Canvas",
+ "label":"fol. ii r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/b9f0b9e9-e8c2-4f9c-a5b2-2848bd8e7d3c.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b9f0b9e9-e8c2-4f9c-a5b2-2848bd8e7d3c.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b9f0b9e9-e8c2-4f9c-a5b2-2848bd8e7d3c",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b9f0b9e9-e8c2-4f9c-a5b2-2848bd8e7d3c"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6c413931-c1c2-43bd-927c-80cce7592dfa.json",
+ "type":"Canvas",
+ "label":"fol. ii v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/6c413931-c1c2-43bd-927c-80cce7592dfa.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6c413931-c1c2-43bd-927c-80cce7592dfa.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/6c413931-c1c2-43bd-927c-80cce7592dfa",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/6c413931-c1c2-43bd-927c-80cce7592dfa"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/80662a77-1f69-4718-9a0d-37389c6e1642.json",
+ "type":"Canvas",
+ "label":"fol. iii r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/80662a77-1f69-4718-9a0d-37389c6e1642.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/80662a77-1f69-4718-9a0d-37389c6e1642.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/80662a77-1f69-4718-9a0d-37389c6e1642",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/80662a77-1f69-4718-9a0d-37389c6e1642"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/bbbeb343-882a-465c-9e9f-71022d998ed2.json",
+ "type":"Canvas",
+ "label":"fol. iii v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/bbbeb343-882a-465c-9e9f-71022d998ed2.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/bbbeb343-882a-465c-9e9f-71022d998ed2.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/bbbeb343-882a-465c-9e9f-71022d998ed2",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/bbbeb343-882a-465c-9e9f-71022d998ed2"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b0b3d72d-315d-4dc6-aad0-f615b8ee74f7.json",
+ "type":"Canvas",
+ "label":"fol. iv r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/b0b3d72d-315d-4dc6-aad0-f615b8ee74f7.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b0b3d72d-315d-4dc6-aad0-f615b8ee74f7.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b0b3d72d-315d-4dc6-aad0-f615b8ee74f7",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b0b3d72d-315d-4dc6-aad0-f615b8ee74f7"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/74c20173-e32e-4b62-b994-595a61fb6bf0.json",
+ "type":"Canvas",
+ "label":"fol. iv v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/74c20173-e32e-4b62-b994-595a61fb6bf0.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/74c20173-e32e-4b62-b994-595a61fb6bf0.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/74c20173-e32e-4b62-b994-595a61fb6bf0",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/74c20173-e32e-4b62-b994-595a61fb6bf0"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ab7412b4-d4c3-468f-9b2b-69614c2446ea.json",
+ "type":"Canvas",
+ "label":"fol. v r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/ab7412b4-d4c3-468f-9b2b-69614c2446ea.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ab7412b4-d4c3-468f-9b2b-69614c2446ea.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/ab7412b4-d4c3-468f-9b2b-69614c2446ea",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/ab7412b4-d4c3-468f-9b2b-69614c2446ea"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/964a96df-c6bc-4459-a56d-b4880860f83a.json",
+ "type":"Canvas",
+ "label":"fol. v v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/964a96df-c6bc-4459-a56d-b4880860f83a.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/964a96df-c6bc-4459-a56d-b4880860f83a.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/964a96df-c6bc-4459-a56d-b4880860f83a",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/964a96df-c6bc-4459-a56d-b4880860f83a"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7448e4cf-97f1-4b56-97ef-89d933761bff.json",
+ "type":"Canvas",
+ "label":"fol. 1r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/7448e4cf-97f1-4b56-97ef-89d933761bff.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7448e4cf-97f1-4b56-97ef-89d933761bff.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/7448e4cf-97f1-4b56-97ef-89d933761bff",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/7448e4cf-97f1-4b56-97ef-89d933761bff"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/45d5ff8c-075d-44f7-9bee-fbee11cce4f1.json",
+ "type":"Canvas",
+ "label":"fol. 1v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/45d5ff8c-075d-44f7-9bee-fbee11cce4f1.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/45d5ff8c-075d-44f7-9bee-fbee11cce4f1.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/45d5ff8c-075d-44f7-9bee-fbee11cce4f1",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/45d5ff8c-075d-44f7-9bee-fbee11cce4f1"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1d5861d1-d36c-4ea8-8df4-96c5316311fa.json",
+ "type":"Canvas",
+ "label":"fol. 2r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/1d5861d1-d36c-4ea8-8df4-96c5316311fa.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1d5861d1-d36c-4ea8-8df4-96c5316311fa.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/1d5861d1-d36c-4ea8-8df4-96c5316311fa",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/1d5861d1-d36c-4ea8-8df4-96c5316311fa"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/aebd4b06-a946-4099-b6bf-0f7c2a5eb9b9.json",
+ "type":"Canvas",
+ "label":"fol. 2v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/aebd4b06-a946-4099-b6bf-0f7c2a5eb9b9.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/aebd4b06-a946-4099-b6bf-0f7c2a5eb9b9.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/aebd4b06-a946-4099-b6bf-0f7c2a5eb9b9",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/aebd4b06-a946-4099-b6bf-0f7c2a5eb9b9"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/df8c9098-05d1-46ba-a556-7dc16bb127fb.json",
+ "type":"Canvas",
+ "label":"fol. 3r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/df8c9098-05d1-46ba-a556-7dc16bb127fb.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/df8c9098-05d1-46ba-a556-7dc16bb127fb.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/df8c9098-05d1-46ba-a556-7dc16bb127fb",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/df8c9098-05d1-46ba-a556-7dc16bb127fb"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b561eb03-775e-41e9-b85c-9e67c2a5d680.json",
+ "type":"Canvas",
+ "label":"fol. 3v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/b561eb03-775e-41e9-b85c-9e67c2a5d680.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b561eb03-775e-41e9-b85c-9e67c2a5d680.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b561eb03-775e-41e9-b85c-9e67c2a5d680",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b561eb03-775e-41e9-b85c-9e67c2a5d680"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6db36cfb-b893-435b-88e9-91ec27b5a3b9.json",
+ "type":"Canvas",
+ "label":"fol. 4r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/6db36cfb-b893-435b-88e9-91ec27b5a3b9.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6db36cfb-b893-435b-88e9-91ec27b5a3b9.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/6db36cfb-b893-435b-88e9-91ec27b5a3b9",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/6db36cfb-b893-435b-88e9-91ec27b5a3b9"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b55b9e95-71ec-4602-9745-b12c5ef91be4.json",
+ "type":"Canvas",
+ "label":"fol. 4v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/b55b9e95-71ec-4602-9745-b12c5ef91be4.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b55b9e95-71ec-4602-9745-b12c5ef91be4.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b55b9e95-71ec-4602-9745-b12c5ef91be4",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b55b9e95-71ec-4602-9745-b12c5ef91be4"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0f2c5554-ba34-46ec-9048-905d8a2fbeb5.json",
+ "type":"Canvas",
+ "label":"fol. 5r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/0f2c5554-ba34-46ec-9048-905d8a2fbeb5.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0f2c5554-ba34-46ec-9048-905d8a2fbeb5.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/0f2c5554-ba34-46ec-9048-905d8a2fbeb5",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/0f2c5554-ba34-46ec-9048-905d8a2fbeb5"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2152a20a-e2cb-47b7-b864-abc630d1903a.json",
+ "type":"Canvas",
+ "label":"fol. 5v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/2152a20a-e2cb-47b7-b864-abc630d1903a.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2152a20a-e2cb-47b7-b864-abc630d1903a.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/2152a20a-e2cb-47b7-b864-abc630d1903a",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/2152a20a-e2cb-47b7-b864-abc630d1903a"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/48a31253-3e27-4194-b300-fe5569932f46.json",
+ "type":"Canvas",
+ "label":"fol. 6r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/48a31253-3e27-4194-b300-fe5569932f46.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/48a31253-3e27-4194-b300-fe5569932f46.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/48a31253-3e27-4194-b300-fe5569932f46",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/48a31253-3e27-4194-b300-fe5569932f46"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c1ee9124-fa1e-4c44-9b73-e36b6d6d572f.json",
+ "type":"Canvas",
+ "label":"fol. 6v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/c1ee9124-fa1e-4c44-9b73-e36b6d6d572f.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c1ee9124-fa1e-4c44-9b73-e36b6d6d572f.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c1ee9124-fa1e-4c44-9b73-e36b6d6d572f",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c1ee9124-fa1e-4c44-9b73-e36b6d6d572f"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b7c2bf85-889a-4160-b564-841145394a73.json",
+ "type":"Canvas",
+ "label":"fol. 7r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/b7c2bf85-889a-4160-b564-841145394a73.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b7c2bf85-889a-4160-b564-841145394a73.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b7c2bf85-889a-4160-b564-841145394a73",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b7c2bf85-889a-4160-b564-841145394a73"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d5e7aef3-f2ee-41fb-9db7-076af836adf2.json",
+ "type":"Canvas",
+ "label":"fol. 7v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/d5e7aef3-f2ee-41fb-9db7-076af836adf2.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d5e7aef3-f2ee-41fb-9db7-076af836adf2.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d5e7aef3-f2ee-41fb-9db7-076af836adf2",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d5e7aef3-f2ee-41fb-9db7-076af836adf2"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d6fa5889-5152-4589-9b2d-50311866917d.json",
+ "type":"Canvas",
+ "label":"fol. 8r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/d6fa5889-5152-4589-9b2d-50311866917d.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d6fa5889-5152-4589-9b2d-50311866917d.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d6fa5889-5152-4589-9b2d-50311866917d",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d6fa5889-5152-4589-9b2d-50311866917d"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ab352234-428f-4af6-a52d-738c50e260c8.json",
+ "type":"Canvas",
+ "label":"fol. 8v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/ab352234-428f-4af6-a52d-738c50e260c8.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ab352234-428f-4af6-a52d-738c50e260c8.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/ab352234-428f-4af6-a52d-738c50e260c8",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/ab352234-428f-4af6-a52d-738c50e260c8"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f93279af-5947-402e-9d11-f64231886c0a.json",
+ "type":"Canvas",
+ "label":"fol. 9r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/f93279af-5947-402e-9d11-f64231886c0a.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f93279af-5947-402e-9d11-f64231886c0a.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f93279af-5947-402e-9d11-f64231886c0a",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f93279af-5947-402e-9d11-f64231886c0a"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/65a65810-03ed-455a-81b3-47a96ed2d89d.json",
+ "type":"Canvas",
+ "label":"fol. 9v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/65a65810-03ed-455a-81b3-47a96ed2d89d.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/65a65810-03ed-455a-81b3-47a96ed2d89d.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/65a65810-03ed-455a-81b3-47a96ed2d89d",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/65a65810-03ed-455a-81b3-47a96ed2d89d"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f9b562aa-5d30-4e1e-9e76-3f78b56bbbc0.json",
+ "type":"Canvas",
+ "label":"fol. 10r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/f9b562aa-5d30-4e1e-9e76-3f78b56bbbc0.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f9b562aa-5d30-4e1e-9e76-3f78b56bbbc0.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f9b562aa-5d30-4e1e-9e76-3f78b56bbbc0",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f9b562aa-5d30-4e1e-9e76-3f78b56bbbc0"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7b4d6310-b0bb-4ea4-ad98-478490405e5f.json",
+ "type":"Canvas",
+ "label":"fol. 10v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/7b4d6310-b0bb-4ea4-ad98-478490405e5f.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7b4d6310-b0bb-4ea4-ad98-478490405e5f.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/7b4d6310-b0bb-4ea4-ad98-478490405e5f",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/7b4d6310-b0bb-4ea4-ad98-478490405e5f"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/729715fc-7941-4d47-8a53-91e929a7d60d.json",
+ "type":"Canvas",
+ "label":"fol. 11r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/729715fc-7941-4d47-8a53-91e929a7d60d.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/729715fc-7941-4d47-8a53-91e929a7d60d.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/729715fc-7941-4d47-8a53-91e929a7d60d",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/729715fc-7941-4d47-8a53-91e929a7d60d"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/660e3194-a6a4-4a60-aece-436a71d20071.json",
+ "type":"Canvas",
+ "label":"fol. 11v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/660e3194-a6a4-4a60-aece-436a71d20071.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/660e3194-a6a4-4a60-aece-436a71d20071.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/660e3194-a6a4-4a60-aece-436a71d20071",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/660e3194-a6a4-4a60-aece-436a71d20071"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/acccb9f9-473e-4c7c-b9a7-529eb1782158.json",
+ "type":"Canvas",
+ "label":"fol. 12r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/acccb9f9-473e-4c7c-b9a7-529eb1782158.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/acccb9f9-473e-4c7c-b9a7-529eb1782158.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/acccb9f9-473e-4c7c-b9a7-529eb1782158",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/acccb9f9-473e-4c7c-b9a7-529eb1782158"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9e51909a-c802-42e8-b12c-98a234246a68.json",
+ "type":"Canvas",
+ "label":"fol. 12v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/9e51909a-c802-42e8-b12c-98a234246a68.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9e51909a-c802-42e8-b12c-98a234246a68.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9e51909a-c802-42e8-b12c-98a234246a68",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9e51909a-c802-42e8-b12c-98a234246a68"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/67285312-5158-43fb-9639-cba732372a9f.json",
+ "type":"Canvas",
+ "label":"fol. 13r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/67285312-5158-43fb-9639-cba732372a9f.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/67285312-5158-43fb-9639-cba732372a9f.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/67285312-5158-43fb-9639-cba732372a9f",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/67285312-5158-43fb-9639-cba732372a9f"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4eb3f79a-4be3-4544-8cbd-9d42b556e8d4.json",
+ "type":"Canvas",
+ "label":"fol. 13v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/4eb3f79a-4be3-4544-8cbd-9d42b556e8d4.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4eb3f79a-4be3-4544-8cbd-9d42b556e8d4.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/4eb3f79a-4be3-4544-8cbd-9d42b556e8d4",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/4eb3f79a-4be3-4544-8cbd-9d42b556e8d4"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8019239f-628c-4c89-a266-3ae52b0bf6d8.json",
+ "type":"Canvas",
+ "label":"fol. 14r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/8019239f-628c-4c89-a266-3ae52b0bf6d8.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8019239f-628c-4c89-a266-3ae52b0bf6d8.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8019239f-628c-4c89-a266-3ae52b0bf6d8",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8019239f-628c-4c89-a266-3ae52b0bf6d8"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/cb92bbe9-35af-465a-a1a1-85530f71fd0f.json",
+ "type":"Canvas",
+ "label":"fol. 14v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/cb92bbe9-35af-465a-a1a1-85530f71fd0f.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/cb92bbe9-35af-465a-a1a1-85530f71fd0f.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/cb92bbe9-35af-465a-a1a1-85530f71fd0f",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/cb92bbe9-35af-465a-a1a1-85530f71fd0f"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/39a5d7a8-8a2b-4b64-b8b2-25dbba301151.json",
+ "type":"Canvas",
+ "label":"fol. 15r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/39a5d7a8-8a2b-4b64-b8b2-25dbba301151.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/39a5d7a8-8a2b-4b64-b8b2-25dbba301151.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/39a5d7a8-8a2b-4b64-b8b2-25dbba301151",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/39a5d7a8-8a2b-4b64-b8b2-25dbba301151"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/44b61821-29c5-4372-85a9-3e6f6ad7aee2.json",
+ "type":"Canvas",
+ "label":"fol. 15v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/44b61821-29c5-4372-85a9-3e6f6ad7aee2.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/44b61821-29c5-4372-85a9-3e6f6ad7aee2.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/44b61821-29c5-4372-85a9-3e6f6ad7aee2",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/44b61821-29c5-4372-85a9-3e6f6ad7aee2"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d926f23d-8dd7-4f06-b0db-34c751f8da18.json",
+ "type":"Canvas",
+ "label":"fol. 16r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/d926f23d-8dd7-4f06-b0db-34c751f8da18.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d926f23d-8dd7-4f06-b0db-34c751f8da18.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d926f23d-8dd7-4f06-b0db-34c751f8da18",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d926f23d-8dd7-4f06-b0db-34c751f8da18"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/af9a67c4-781e-4678-a253-f15a69f88bcb.json",
+ "type":"Canvas",
+ "label":"fol. 16v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/af9a67c4-781e-4678-a253-f15a69f88bcb.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/af9a67c4-781e-4678-a253-f15a69f88bcb.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/af9a67c4-781e-4678-a253-f15a69f88bcb",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/af9a67c4-781e-4678-a253-f15a69f88bcb"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/52ad4b81-0392-48c5-9927-18c447c6c379.json",
+ "type":"Canvas",
+ "label":"fol. 17r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/52ad4b81-0392-48c5-9927-18c447c6c379.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/52ad4b81-0392-48c5-9927-18c447c6c379.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/52ad4b81-0392-48c5-9927-18c447c6c379",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/52ad4b81-0392-48c5-9927-18c447c6c379"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/23f11ecb-2373-4445-b632-f103532f1330.json",
+ "type":"Canvas",
+ "label":"fol. 17v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/23f11ecb-2373-4445-b632-f103532f1330.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/23f11ecb-2373-4445-b632-f103532f1330.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/23f11ecb-2373-4445-b632-f103532f1330",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/23f11ecb-2373-4445-b632-f103532f1330"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/dbdfe2a4-8cff-457f-9e40-938197b111e8.json",
+ "type":"Canvas",
+ "label":"fol. 18r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/dbdfe2a4-8cff-457f-9e40-938197b111e8.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/dbdfe2a4-8cff-457f-9e40-938197b111e8.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/dbdfe2a4-8cff-457f-9e40-938197b111e8",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/dbdfe2a4-8cff-457f-9e40-938197b111e8"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/dce4c5ef-1f84-4a02-951e-a23f15025389.json",
+ "type":"Canvas",
+ "label":"fol. 18v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/dce4c5ef-1f84-4a02-951e-a23f15025389.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/dce4c5ef-1f84-4a02-951e-a23f15025389.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/dce4c5ef-1f84-4a02-951e-a23f15025389",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/dce4c5ef-1f84-4a02-951e-a23f15025389"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/feb5f14a-b97d-4a6a-9687-f55a3cfb0466.json",
+ "type":"Canvas",
+ "label":"fol. 19r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/feb5f14a-b97d-4a6a-9687-f55a3cfb0466.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/feb5f14a-b97d-4a6a-9687-f55a3cfb0466.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/feb5f14a-b97d-4a6a-9687-f55a3cfb0466",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/feb5f14a-b97d-4a6a-9687-f55a3cfb0466"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6617ac2a-ee81-48a7-a6a8-9cd70a4987be.json",
+ "type":"Canvas",
+ "label":"fol. 19v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/6617ac2a-ee81-48a7-a6a8-9cd70a4987be.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6617ac2a-ee81-48a7-a6a8-9cd70a4987be.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/6617ac2a-ee81-48a7-a6a8-9cd70a4987be",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/6617ac2a-ee81-48a7-a6a8-9cd70a4987be"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0d8a0e96-cd3a-4b99-9d34-b314c56707c1.json",
+ "type":"Canvas",
+ "label":"fol. 20r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/0d8a0e96-cd3a-4b99-9d34-b314c56707c1.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0d8a0e96-cd3a-4b99-9d34-b314c56707c1.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/0d8a0e96-cd3a-4b99-9d34-b314c56707c1",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/0d8a0e96-cd3a-4b99-9d34-b314c56707c1"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8f7fe062-8be4-4582-ae3c-edfc1ace6b72.json",
+ "type":"Canvas",
+ "label":"fol. 20v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/8f7fe062-8be4-4582-ae3c-edfc1ace6b72.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8f7fe062-8be4-4582-ae3c-edfc1ace6b72.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8f7fe062-8be4-4582-ae3c-edfc1ace6b72",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8f7fe062-8be4-4582-ae3c-edfc1ace6b72"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b4f9b8cf-747f-4432-8287-b6aa471ceaca.json",
+ "type":"Canvas",
+ "label":"fol. 21r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/b4f9b8cf-747f-4432-8287-b6aa471ceaca.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b4f9b8cf-747f-4432-8287-b6aa471ceaca.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b4f9b8cf-747f-4432-8287-b6aa471ceaca",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b4f9b8cf-747f-4432-8287-b6aa471ceaca"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/645abc0c-b005-48e6-9abe-1659bbd23c74.json",
+ "type":"Canvas",
+ "label":"fol. 21v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/645abc0c-b005-48e6-9abe-1659bbd23c74.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/645abc0c-b005-48e6-9abe-1659bbd23c74.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/645abc0c-b005-48e6-9abe-1659bbd23c74",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/645abc0c-b005-48e6-9abe-1659bbd23c74"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/487bd2a5-c828-40e8-b235-8f91503000b9.json",
+ "type":"Canvas",
+ "label":"fol. 22r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/487bd2a5-c828-40e8-b235-8f91503000b9.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/487bd2a5-c828-40e8-b235-8f91503000b9.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/487bd2a5-c828-40e8-b235-8f91503000b9",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/487bd2a5-c828-40e8-b235-8f91503000b9"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e8d69bbe-106a-40de-a664-0d8ad62b9971.json",
+ "type":"Canvas",
+ "label":"fol. 22v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/e8d69bbe-106a-40de-a664-0d8ad62b9971.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e8d69bbe-106a-40de-a664-0d8ad62b9971.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e8d69bbe-106a-40de-a664-0d8ad62b9971",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e8d69bbe-106a-40de-a664-0d8ad62b9971"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d8750bbe-665a-4ef1-8972-18b861404234.json",
+ "type":"Canvas",
+ "label":"fol. 23r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/d8750bbe-665a-4ef1-8972-18b861404234.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d8750bbe-665a-4ef1-8972-18b861404234.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d8750bbe-665a-4ef1-8972-18b861404234",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d8750bbe-665a-4ef1-8972-18b861404234"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/a7ced05e-e39f-4d4c-b632-fcb295ba7b94.json",
+ "type":"Canvas",
+ "label":"fol. 23v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/a7ced05e-e39f-4d4c-b632-fcb295ba7b94.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/a7ced05e-e39f-4d4c-b632-fcb295ba7b94.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/a7ced05e-e39f-4d4c-b632-fcb295ba7b94",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/a7ced05e-e39f-4d4c-b632-fcb295ba7b94"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/772a9be1-d0d5-4455-9267-23af1b0a2064.json",
+ "type":"Canvas",
+ "label":"fol. 24r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/772a9be1-d0d5-4455-9267-23af1b0a2064.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/772a9be1-d0d5-4455-9267-23af1b0a2064.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/772a9be1-d0d5-4455-9267-23af1b0a2064",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/772a9be1-d0d5-4455-9267-23af1b0a2064"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ff56505b-e1dc-40a4-82ae-52d5abbf96be.json",
+ "type":"Canvas",
+ "label":"fol. 24v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/ff56505b-e1dc-40a4-82ae-52d5abbf96be.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ff56505b-e1dc-40a4-82ae-52d5abbf96be.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/ff56505b-e1dc-40a4-82ae-52d5abbf96be",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/ff56505b-e1dc-40a4-82ae-52d5abbf96be"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/34eb9ca0-4270-4303-a345-010e94c34c4c.json",
+ "type":"Canvas",
+ "label":"fol. 25r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/34eb9ca0-4270-4303-a345-010e94c34c4c.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/34eb9ca0-4270-4303-a345-010e94c34c4c.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/34eb9ca0-4270-4303-a345-010e94c34c4c",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/34eb9ca0-4270-4303-a345-010e94c34c4c"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b188b953-860b-4b7f-99fd-92759da2e0dc.json",
+ "type":"Canvas",
+ "label":"fol. 25v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/b188b953-860b-4b7f-99fd-92759da2e0dc.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b188b953-860b-4b7f-99fd-92759da2e0dc.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b188b953-860b-4b7f-99fd-92759da2e0dc",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b188b953-860b-4b7f-99fd-92759da2e0dc"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c45af702-b631-4c99-9cbb-2bae270f0010.json",
+ "type":"Canvas",
+ "label":"fol. 26r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/c45af702-b631-4c99-9cbb-2bae270f0010.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c45af702-b631-4c99-9cbb-2bae270f0010.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c45af702-b631-4c99-9cbb-2bae270f0010",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c45af702-b631-4c99-9cbb-2bae270f0010"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4913ab2e-783b-4ebe-8beb-6c80ca9ec0d0.json",
+ "type":"Canvas",
+ "label":"fol. 26v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/4913ab2e-783b-4ebe-8beb-6c80ca9ec0d0.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4913ab2e-783b-4ebe-8beb-6c80ca9ec0d0.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/4913ab2e-783b-4ebe-8beb-6c80ca9ec0d0",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/4913ab2e-783b-4ebe-8beb-6c80ca9ec0d0"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/10ca150c-d75c-4947-97ab-27fe661fe1ce.json",
+ "type":"Canvas",
+ "label":"fol. 27r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/10ca150c-d75c-4947-97ab-27fe661fe1ce.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/10ca150c-d75c-4947-97ab-27fe661fe1ce.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/10ca150c-d75c-4947-97ab-27fe661fe1ce",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/10ca150c-d75c-4947-97ab-27fe661fe1ce"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/03a15174-1966-4efd-9a7f-a955d43b997c.json",
+ "type":"Canvas",
+ "label":"fol. 27v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/03a15174-1966-4efd-9a7f-a955d43b997c.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/03a15174-1966-4efd-9a7f-a955d43b997c.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/03a15174-1966-4efd-9a7f-a955d43b997c",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/03a15174-1966-4efd-9a7f-a955d43b997c"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c82355e6-1749-45f6-90d8-d7df566f8818.json",
+ "type":"Canvas",
+ "label":"fol. 28r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/c82355e6-1749-45f6-90d8-d7df566f8818.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c82355e6-1749-45f6-90d8-d7df566f8818.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c82355e6-1749-45f6-90d8-d7df566f8818",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c82355e6-1749-45f6-90d8-d7df566f8818"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6dea8037-41e0-4b2f-ac4c-a6e00306858c.json",
+ "type":"Canvas",
+ "label":"fol. 28v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/6dea8037-41e0-4b2f-ac4c-a6e00306858c.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6dea8037-41e0-4b2f-ac4c-a6e00306858c.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/6dea8037-41e0-4b2f-ac4c-a6e00306858c",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/6dea8037-41e0-4b2f-ac4c-a6e00306858c"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8aea56fb-05bd-49c6-aad7-bbd8c7ebdfc7.json",
+ "type":"Canvas",
+ "label":"fol. 29r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/8aea56fb-05bd-49c6-aad7-bbd8c7ebdfc7.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8aea56fb-05bd-49c6-aad7-bbd8c7ebdfc7.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8aea56fb-05bd-49c6-aad7-bbd8c7ebdfc7",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8aea56fb-05bd-49c6-aad7-bbd8c7ebdfc7"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/742ab4ac-5459-48df-803c-bfcff7d0f68e.json",
+ "type":"Canvas",
+ "label":"fol. 29v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/742ab4ac-5459-48df-803c-bfcff7d0f68e.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/742ab4ac-5459-48df-803c-bfcff7d0f68e.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/742ab4ac-5459-48df-803c-bfcff7d0f68e",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/742ab4ac-5459-48df-803c-bfcff7d0f68e"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3e904d06-41e5-4156-a256-399038e499a3.json",
+ "type":"Canvas",
+ "label":"fol. 30r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/3e904d06-41e5-4156-a256-399038e499a3.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3e904d06-41e5-4156-a256-399038e499a3.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3e904d06-41e5-4156-a256-399038e499a3",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3e904d06-41e5-4156-a256-399038e499a3"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/25c55c2d-a168-49fb-9f41-23f405e36357.json",
+ "type":"Canvas",
+ "label":"fol. 30v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/25c55c2d-a168-49fb-9f41-23f405e36357.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/25c55c2d-a168-49fb-9f41-23f405e36357.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/25c55c2d-a168-49fb-9f41-23f405e36357",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/25c55c2d-a168-49fb-9f41-23f405e36357"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e1782c78-943f-4424-933e-c0c9e8ec8da1.json",
+ "type":"Canvas",
+ "label":"fol. 31r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/e1782c78-943f-4424-933e-c0c9e8ec8da1.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e1782c78-943f-4424-933e-c0c9e8ec8da1.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e1782c78-943f-4424-933e-c0c9e8ec8da1",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e1782c78-943f-4424-933e-c0c9e8ec8da1"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b9453e0b-b26f-4c90-9c36-f6d4277775cc.json",
+ "type":"Canvas",
+ "label":"fol. 31v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/b9453e0b-b26f-4c90-9c36-f6d4277775cc.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b9453e0b-b26f-4c90-9c36-f6d4277775cc.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b9453e0b-b26f-4c90-9c36-f6d4277775cc",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b9453e0b-b26f-4c90-9c36-f6d4277775cc"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/bb233de9-6cea-41e9-90c7-9fac60f6ec3e.json",
+ "type":"Canvas",
+ "label":"fol. 32r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/bb233de9-6cea-41e9-90c7-9fac60f6ec3e.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/bb233de9-6cea-41e9-90c7-9fac60f6ec3e.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/bb233de9-6cea-41e9-90c7-9fac60f6ec3e",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/bb233de9-6cea-41e9-90c7-9fac60f6ec3e"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/cb65073e-d707-4b60-9c83-3b5fe37e8ce5.json",
+ "type":"Canvas",
+ "label":"fol. 32v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/cb65073e-d707-4b60-9c83-3b5fe37e8ce5.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/cb65073e-d707-4b60-9c83-3b5fe37e8ce5.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/cb65073e-d707-4b60-9c83-3b5fe37e8ce5",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/cb65073e-d707-4b60-9c83-3b5fe37e8ce5"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e6effe1c-bfa1-4511-81a0-b98fdd528fda.json",
+ "type":"Canvas",
+ "label":"fol. 33r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/e6effe1c-bfa1-4511-81a0-b98fdd528fda.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e6effe1c-bfa1-4511-81a0-b98fdd528fda.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e6effe1c-bfa1-4511-81a0-b98fdd528fda",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e6effe1c-bfa1-4511-81a0-b98fdd528fda"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7b07486c-adb4-47bb-be47-f4700475bf21.json",
+ "type":"Canvas",
+ "label":"fol. 33v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/7b07486c-adb4-47bb-be47-f4700475bf21.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7b07486c-adb4-47bb-be47-f4700475bf21.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/7b07486c-adb4-47bb-be47-f4700475bf21",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/7b07486c-adb4-47bb-be47-f4700475bf21"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/73bced49-8e7a-40f9-b743-4db90d78a1b0.json",
+ "type":"Canvas",
+ "label":"fol. 34r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/73bced49-8e7a-40f9-b743-4db90d78a1b0.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/73bced49-8e7a-40f9-b743-4db90d78a1b0.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/73bced49-8e7a-40f9-b743-4db90d78a1b0",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/73bced49-8e7a-40f9-b743-4db90d78a1b0"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/848f63c6-b718-48f7-a6e2-063a9a9112fe.json",
+ "type":"Canvas",
+ "label":"fol. 34v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/848f63c6-b718-48f7-a6e2-063a9a9112fe.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/848f63c6-b718-48f7-a6e2-063a9a9112fe.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/848f63c6-b718-48f7-a6e2-063a9a9112fe",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/848f63c6-b718-48f7-a6e2-063a9a9112fe"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2bc47dd8-379c-4b3d-8f2a-cad9dc320480.json",
+ "type":"Canvas",
+ "label":"fol. 35r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/2bc47dd8-379c-4b3d-8f2a-cad9dc320480.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2bc47dd8-379c-4b3d-8f2a-cad9dc320480.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/2bc47dd8-379c-4b3d-8f2a-cad9dc320480",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/2bc47dd8-379c-4b3d-8f2a-cad9dc320480"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9abe2aa6-290a-4743-a4d6-6c5d57eb1287.json",
+ "type":"Canvas",
+ "label":"fol. 35v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/9abe2aa6-290a-4743-a4d6-6c5d57eb1287.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9abe2aa6-290a-4743-a4d6-6c5d57eb1287.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9abe2aa6-290a-4743-a4d6-6c5d57eb1287",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9abe2aa6-290a-4743-a4d6-6c5d57eb1287"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/a211289d-a58a-41bc-9571-5d5f735b132a.json",
+ "type":"Canvas",
+ "label":"fol. 36r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/a211289d-a58a-41bc-9571-5d5f735b132a.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/a211289d-a58a-41bc-9571-5d5f735b132a.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/a211289d-a58a-41bc-9571-5d5f735b132a",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/a211289d-a58a-41bc-9571-5d5f735b132a"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3c1a3673-361d-4256-88c7-cd9bc8c75a54.json",
+ "type":"Canvas",
+ "label":"fol. 36v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/3c1a3673-361d-4256-88c7-cd9bc8c75a54.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3c1a3673-361d-4256-88c7-cd9bc8c75a54.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3c1a3673-361d-4256-88c7-cd9bc8c75a54",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3c1a3673-361d-4256-88c7-cd9bc8c75a54"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/42bcfac8-97dc-4290-b9f8-fdea45fc0ef2.json",
+ "type":"Canvas",
+ "label":"fol. 37r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/42bcfac8-97dc-4290-b9f8-fdea45fc0ef2.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/42bcfac8-97dc-4290-b9f8-fdea45fc0ef2.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/42bcfac8-97dc-4290-b9f8-fdea45fc0ef2",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/42bcfac8-97dc-4290-b9f8-fdea45fc0ef2"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/5f0c64e8-0fcb-488e-a114-1e5d5cc03f6c.json",
+ "type":"Canvas",
+ "label":"fol. 37v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/5f0c64e8-0fcb-488e-a114-1e5d5cc03f6c.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/5f0c64e8-0fcb-488e-a114-1e5d5cc03f6c.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/5f0c64e8-0fcb-488e-a114-1e5d5cc03f6c",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/5f0c64e8-0fcb-488e-a114-1e5d5cc03f6c"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/43d7f020-acd5-494d-a15c-45a3b1af6f6d.json",
+ "type":"Canvas",
+ "label":"fol. 38r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/43d7f020-acd5-494d-a15c-45a3b1af6f6d.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/43d7f020-acd5-494d-a15c-45a3b1af6f6d.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/43d7f020-acd5-494d-a15c-45a3b1af6f6d",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/43d7f020-acd5-494d-a15c-45a3b1af6f6d"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b011fe03-2dcf-4f14-afee-982de8b50dea.json",
+ "type":"Canvas",
+ "label":"fol. 38v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/b011fe03-2dcf-4f14-afee-982de8b50dea.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b011fe03-2dcf-4f14-afee-982de8b50dea.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b011fe03-2dcf-4f14-afee-982de8b50dea",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b011fe03-2dcf-4f14-afee-982de8b50dea"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9a82001b-5aff-4650-80b3-c1480f120188.json",
+ "type":"Canvas",
+ "label":"fol. 39r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/9a82001b-5aff-4650-80b3-c1480f120188.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9a82001b-5aff-4650-80b3-c1480f120188.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9a82001b-5aff-4650-80b3-c1480f120188",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9a82001b-5aff-4650-80b3-c1480f120188"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e642d7e0-120f-4db1-a8ea-34028f3ce1cd.json",
+ "type":"Canvas",
+ "label":"fol. 39v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/e642d7e0-120f-4db1-a8ea-34028f3ce1cd.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e642d7e0-120f-4db1-a8ea-34028f3ce1cd.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e642d7e0-120f-4db1-a8ea-34028f3ce1cd",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e642d7e0-120f-4db1-a8ea-34028f3ce1cd"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e7ea9e39-22f9-494f-8795-cab058b67649.json",
+ "type":"Canvas",
+ "label":"fol. 40r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/e7ea9e39-22f9-494f-8795-cab058b67649.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e7ea9e39-22f9-494f-8795-cab058b67649.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e7ea9e39-22f9-494f-8795-cab058b67649",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e7ea9e39-22f9-494f-8795-cab058b67649"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b14e1791-a956-4802-873f-51d464ef023e.json",
+ "type":"Canvas",
+ "label":"fol. 40v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/b14e1791-a956-4802-873f-51d464ef023e.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b14e1791-a956-4802-873f-51d464ef023e.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b14e1791-a956-4802-873f-51d464ef023e",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b14e1791-a956-4802-873f-51d464ef023e"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d37e12f9-a0a5-49e9-92e6-ba0c76976f8a.json",
+ "type":"Canvas",
+ "label":"fol. 41r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/d37e12f9-a0a5-49e9-92e6-ba0c76976f8a.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d37e12f9-a0a5-49e9-92e6-ba0c76976f8a.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d37e12f9-a0a5-49e9-92e6-ba0c76976f8a",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d37e12f9-a0a5-49e9-92e6-ba0c76976f8a"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/17d6eb57-36cd-4410-b9f8-cb78c2016cf7.json",
+ "type":"Canvas",
+ "label":"fol. 41v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/17d6eb57-36cd-4410-b9f8-cb78c2016cf7.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/17d6eb57-36cd-4410-b9f8-cb78c2016cf7.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/17d6eb57-36cd-4410-b9f8-cb78c2016cf7",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/17d6eb57-36cd-4410-b9f8-cb78c2016cf7"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/518a47a7-171b-47ed-92ba-36e8c93d47a2.json",
+ "type":"Canvas",
+ "label":"fol. 42r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/518a47a7-171b-47ed-92ba-36e8c93d47a2.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/518a47a7-171b-47ed-92ba-36e8c93d47a2.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/518a47a7-171b-47ed-92ba-36e8c93d47a2",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/518a47a7-171b-47ed-92ba-36e8c93d47a2"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/93e0c1b6-294f-48e0-8c3a-b9adb06dee83.json",
+ "type":"Canvas",
+ "label":"fol. 42v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/93e0c1b6-294f-48e0-8c3a-b9adb06dee83.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/93e0c1b6-294f-48e0-8c3a-b9adb06dee83.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/93e0c1b6-294f-48e0-8c3a-b9adb06dee83",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/93e0c1b6-294f-48e0-8c3a-b9adb06dee83"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c7917868-3c99-4b48-ac90-14bd6c72ef38.json",
+ "type":"Canvas",
+ "label":"fol. 43r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/c7917868-3c99-4b48-ac90-14bd6c72ef38.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c7917868-3c99-4b48-ac90-14bd6c72ef38.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c7917868-3c99-4b48-ac90-14bd6c72ef38",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c7917868-3c99-4b48-ac90-14bd6c72ef38"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d6200057-df91-4a9c-8875-542684ec6bbb.json",
+ "type":"Canvas",
+ "label":"fol. 43v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/d6200057-df91-4a9c-8875-542684ec6bbb.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d6200057-df91-4a9c-8875-542684ec6bbb.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d6200057-df91-4a9c-8875-542684ec6bbb",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d6200057-df91-4a9c-8875-542684ec6bbb"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/5887ebcf-bb15-4fe9-81b4-a48ba6c6d7a1.json",
+ "type":"Canvas",
+ "label":"fol. 44r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/5887ebcf-bb15-4fe9-81b4-a48ba6c6d7a1.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/5887ebcf-bb15-4fe9-81b4-a48ba6c6d7a1.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/5887ebcf-bb15-4fe9-81b4-a48ba6c6d7a1",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/5887ebcf-bb15-4fe9-81b4-a48ba6c6d7a1"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9858a99f-c691-4bfe-aa34-131975ff1991.json",
+ "type":"Canvas",
+ "label":"fol. 44v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/9858a99f-c691-4bfe-aa34-131975ff1991.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9858a99f-c691-4bfe-aa34-131975ff1991.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9858a99f-c691-4bfe-aa34-131975ff1991",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9858a99f-c691-4bfe-aa34-131975ff1991"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3d5774ae-d0ae-47b0-a57d-d6ba1cfa00bc.json",
+ "type":"Canvas",
+ "label":"fol. 45r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/3d5774ae-d0ae-47b0-a57d-d6ba1cfa00bc.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3d5774ae-d0ae-47b0-a57d-d6ba1cfa00bc.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3d5774ae-d0ae-47b0-a57d-d6ba1cfa00bc",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3d5774ae-d0ae-47b0-a57d-d6ba1cfa00bc"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/5b9ba09a-0e35-457a-8d09-dee2b70c963c.json",
+ "type":"Canvas",
+ "label":"fol. 45v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/5b9ba09a-0e35-457a-8d09-dee2b70c963c.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/5b9ba09a-0e35-457a-8d09-dee2b70c963c.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/5b9ba09a-0e35-457a-8d09-dee2b70c963c",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/5b9ba09a-0e35-457a-8d09-dee2b70c963c"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/002d69f7-59ef-4041-8f9a-adbaf9356813.json",
+ "type":"Canvas",
+ "label":"fol. 46r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/002d69f7-59ef-4041-8f9a-adbaf9356813.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/002d69f7-59ef-4041-8f9a-adbaf9356813.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/002d69f7-59ef-4041-8f9a-adbaf9356813",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/002d69f7-59ef-4041-8f9a-adbaf9356813"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/86ad8b53-7f69-4d4c-9901-735d8e4018ff.json",
+ "type":"Canvas",
+ "label":"fol. 46v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/86ad8b53-7f69-4d4c-9901-735d8e4018ff.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/86ad8b53-7f69-4d4c-9901-735d8e4018ff.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/86ad8b53-7f69-4d4c-9901-735d8e4018ff",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/86ad8b53-7f69-4d4c-9901-735d8e4018ff"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c3bc794d-0c7c-4441-943c-558c14419744.json",
+ "type":"Canvas",
+ "label":"fol. 47r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/c3bc794d-0c7c-4441-943c-558c14419744.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c3bc794d-0c7c-4441-943c-558c14419744.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c3bc794d-0c7c-4441-943c-558c14419744",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c3bc794d-0c7c-4441-943c-558c14419744"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/817a8bd7-682b-460b-a557-fad28ea087ef.json",
+ "type":"Canvas",
+ "label":"fol. 47v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/817a8bd7-682b-460b-a557-fad28ea087ef.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/817a8bd7-682b-460b-a557-fad28ea087ef.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/817a8bd7-682b-460b-a557-fad28ea087ef",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/817a8bd7-682b-460b-a557-fad28ea087ef"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/864a5503-4607-419b-9100-554042f0a3d5.json",
+ "type":"Canvas",
+ "label":"fol. 48r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/864a5503-4607-419b-9100-554042f0a3d5.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/864a5503-4607-419b-9100-554042f0a3d5.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/864a5503-4607-419b-9100-554042f0a3d5",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/864a5503-4607-419b-9100-554042f0a3d5"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/631f053a-7f61-4b88-b1dd-cd4f9f132add.json",
+ "type":"Canvas",
+ "label":"fol. 48v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/631f053a-7f61-4b88-b1dd-cd4f9f132add.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/631f053a-7f61-4b88-b1dd-cd4f9f132add.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/631f053a-7f61-4b88-b1dd-cd4f9f132add",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/631f053a-7f61-4b88-b1dd-cd4f9f132add"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3939c458-ffb2-462c-bdad-b79afd08a886.json",
+ "type":"Canvas",
+ "label":"fol. 49r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/3939c458-ffb2-462c-bdad-b79afd08a886.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3939c458-ffb2-462c-bdad-b79afd08a886.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3939c458-ffb2-462c-bdad-b79afd08a886",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3939c458-ffb2-462c-bdad-b79afd08a886"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/828195f1-db38-409f-85d4-a9bc4815cf76.json",
+ "type":"Canvas",
+ "label":"fol. 49v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/828195f1-db38-409f-85d4-a9bc4815cf76.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/828195f1-db38-409f-85d4-a9bc4815cf76.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/828195f1-db38-409f-85d4-a9bc4815cf76",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/828195f1-db38-409f-85d4-a9bc4815cf76"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3d5401a0-972a-4c70-8ecf-72c526d32e64.json",
+ "type":"Canvas",
+ "label":"fol. 50r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/3d5401a0-972a-4c70-8ecf-72c526d32e64.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3d5401a0-972a-4c70-8ecf-72c526d32e64.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3d5401a0-972a-4c70-8ecf-72c526d32e64",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3d5401a0-972a-4c70-8ecf-72c526d32e64"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3c83884f-fb03-4afe-93a7-6eed4ec4f3ae.json",
+ "type":"Canvas",
+ "label":"fol. 50v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/3c83884f-fb03-4afe-93a7-6eed4ec4f3ae.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3c83884f-fb03-4afe-93a7-6eed4ec4f3ae.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3c83884f-fb03-4afe-93a7-6eed4ec4f3ae",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3c83884f-fb03-4afe-93a7-6eed4ec4f3ae"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f54aeaab-a9f7-4a1d-8bba-220a8cd66cf9.json",
+ "type":"Canvas",
+ "label":"fol. 51r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/f54aeaab-a9f7-4a1d-8bba-220a8cd66cf9.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f54aeaab-a9f7-4a1d-8bba-220a8cd66cf9.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f54aeaab-a9f7-4a1d-8bba-220a8cd66cf9",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f54aeaab-a9f7-4a1d-8bba-220a8cd66cf9"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/67ce0e3b-f56c-4520-8dd8-a4b5091e63d0.json",
+ "type":"Canvas",
+ "label":"fol. 51v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/67ce0e3b-f56c-4520-8dd8-a4b5091e63d0.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/67ce0e3b-f56c-4520-8dd8-a4b5091e63d0.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/67ce0e3b-f56c-4520-8dd8-a4b5091e63d0",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/67ce0e3b-f56c-4520-8dd8-a4b5091e63d0"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b072dc64-688a-4e49-b859-731bd90a4d51.json",
+ "type":"Canvas",
+ "label":"fol. 52r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/b072dc64-688a-4e49-b859-731bd90a4d51.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b072dc64-688a-4e49-b859-731bd90a4d51.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b072dc64-688a-4e49-b859-731bd90a4d51",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b072dc64-688a-4e49-b859-731bd90a4d51"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/a15c8cc6-0fde-4280-9c89-1b310442b4dc.json",
+ "type":"Canvas",
+ "label":"fol. 52v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/a15c8cc6-0fde-4280-9c89-1b310442b4dc.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/a15c8cc6-0fde-4280-9c89-1b310442b4dc.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/a15c8cc6-0fde-4280-9c89-1b310442b4dc",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/a15c8cc6-0fde-4280-9c89-1b310442b4dc"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f051b053-8038-4597-9fd1-6527c2b35520.json",
+ "type":"Canvas",
+ "label":"fol. 53r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/f051b053-8038-4597-9fd1-6527c2b35520.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f051b053-8038-4597-9fd1-6527c2b35520.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f051b053-8038-4597-9fd1-6527c2b35520",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f051b053-8038-4597-9fd1-6527c2b35520"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e3ea245a-2f0a-4dc1-b093-574c05d787db.json",
+ "type":"Canvas",
+ "label":"fol. 53v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/e3ea245a-2f0a-4dc1-b093-574c05d787db.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e3ea245a-2f0a-4dc1-b093-574c05d787db.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e3ea245a-2f0a-4dc1-b093-574c05d787db",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e3ea245a-2f0a-4dc1-b093-574c05d787db"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8bd5c5b5-c7ec-47b9-ae09-1773607f40a4.json",
+ "type":"Canvas",
+ "label":"fol. 54r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/8bd5c5b5-c7ec-47b9-ae09-1773607f40a4.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8bd5c5b5-c7ec-47b9-ae09-1773607f40a4.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8bd5c5b5-c7ec-47b9-ae09-1773607f40a4",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8bd5c5b5-c7ec-47b9-ae09-1773607f40a4"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/072d525b-7786-4cef-a926-7310e9591643.json",
+ "type":"Canvas",
+ "label":"fol. 54v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/072d525b-7786-4cef-a926-7310e9591643.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/072d525b-7786-4cef-a926-7310e9591643.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/072d525b-7786-4cef-a926-7310e9591643",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/072d525b-7786-4cef-a926-7310e9591643"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/50ccf679-a130-487b-b8e5-67692e39c374.json",
+ "type":"Canvas",
+ "label":"fol. 55r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/50ccf679-a130-487b-b8e5-67692e39c374.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/50ccf679-a130-487b-b8e5-67692e39c374.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/50ccf679-a130-487b-b8e5-67692e39c374",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/50ccf679-a130-487b-b8e5-67692e39c374"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8834ce15-64b6-4bfc-84c1-5752f7db0052.json",
+ "type":"Canvas",
+ "label":"fol. 55v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/8834ce15-64b6-4bfc-84c1-5752f7db0052.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8834ce15-64b6-4bfc-84c1-5752f7db0052.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8834ce15-64b6-4bfc-84c1-5752f7db0052",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8834ce15-64b6-4bfc-84c1-5752f7db0052"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/dbed7148-a143-42df-845d-50ddc24a6a1e.json",
+ "type":"Canvas",
+ "label":"fol. 56r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/dbed7148-a143-42df-845d-50ddc24a6a1e.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/dbed7148-a143-42df-845d-50ddc24a6a1e.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/dbed7148-a143-42df-845d-50ddc24a6a1e",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/dbed7148-a143-42df-845d-50ddc24a6a1e"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/fbeb4b2d-9999-4a56-9eb0-d947b060af1d.json",
+ "type":"Canvas",
+ "label":"fol. 56v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/fbeb4b2d-9999-4a56-9eb0-d947b060af1d.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/fbeb4b2d-9999-4a56-9eb0-d947b060af1d.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/fbeb4b2d-9999-4a56-9eb0-d947b060af1d",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/fbeb4b2d-9999-4a56-9eb0-d947b060af1d"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b09f7f92-cc26-4243-a272-f4006c025474.json",
+ "type":"Canvas",
+ "label":"fol. 57r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/b09f7f92-cc26-4243-a272-f4006c025474.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b09f7f92-cc26-4243-a272-f4006c025474.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b09f7f92-cc26-4243-a272-f4006c025474",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b09f7f92-cc26-4243-a272-f4006c025474"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9a6829ac-fdb8-447d-9cf9-5b12dea0ebdd.json",
+ "type":"Canvas",
+ "label":"fol. 57v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/9a6829ac-fdb8-447d-9cf9-5b12dea0ebdd.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9a6829ac-fdb8-447d-9cf9-5b12dea0ebdd.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9a6829ac-fdb8-447d-9cf9-5b12dea0ebdd",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9a6829ac-fdb8-447d-9cf9-5b12dea0ebdd"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e61c2399-5aa3-43e4-8b0c-f0af15ef9cff.json",
+ "type":"Canvas",
+ "label":"fol. 58r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/e61c2399-5aa3-43e4-8b0c-f0af15ef9cff.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e61c2399-5aa3-43e4-8b0c-f0af15ef9cff.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e61c2399-5aa3-43e4-8b0c-f0af15ef9cff",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e61c2399-5aa3-43e4-8b0c-f0af15ef9cff"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2638e9fc-e245-4473-b4b4-8c5dc322dba2.json",
+ "type":"Canvas",
+ "label":"fol. 58v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/2638e9fc-e245-4473-b4b4-8c5dc322dba2.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2638e9fc-e245-4473-b4b4-8c5dc322dba2.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/2638e9fc-e245-4473-b4b4-8c5dc322dba2",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/2638e9fc-e245-4473-b4b4-8c5dc322dba2"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/315767a2-b5bb-48aa-9c24-5dcc857a6bf5.json",
+ "type":"Canvas",
+ "label":"fol. 59r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/315767a2-b5bb-48aa-9c24-5dcc857a6bf5.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/315767a2-b5bb-48aa-9c24-5dcc857a6bf5.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/315767a2-b5bb-48aa-9c24-5dcc857a6bf5",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/315767a2-b5bb-48aa-9c24-5dcc857a6bf5"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7f32f88d-1f99-474f-94f3-2ef7103c0bb1.json",
+ "type":"Canvas",
+ "label":"fol. 59v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/7f32f88d-1f99-474f-94f3-2ef7103c0bb1.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7f32f88d-1f99-474f-94f3-2ef7103c0bb1.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/7f32f88d-1f99-474f-94f3-2ef7103c0bb1",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/7f32f88d-1f99-474f-94f3-2ef7103c0bb1"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/605f64f9-b78b-45d6-b86d-2b63c7f5dde1.json",
+ "type":"Canvas",
+ "label":"fol. 60r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/605f64f9-b78b-45d6-b86d-2b63c7f5dde1.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/605f64f9-b78b-45d6-b86d-2b63c7f5dde1.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/605f64f9-b78b-45d6-b86d-2b63c7f5dde1",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/605f64f9-b78b-45d6-b86d-2b63c7f5dde1"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6c88c045-18be-436b-903f-c71fb81c258d.json",
+ "type":"Canvas",
+ "label":"fol. 60v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/6c88c045-18be-436b-903f-c71fb81c258d.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6c88c045-18be-436b-903f-c71fb81c258d.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/6c88c045-18be-436b-903f-c71fb81c258d",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/6c88c045-18be-436b-903f-c71fb81c258d"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/56c1ff67-2f64-40da-a398-f6b109f14ece.json",
+ "type":"Canvas",
+ "label":"fol. 61r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/56c1ff67-2f64-40da-a398-f6b109f14ece.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/56c1ff67-2f64-40da-a398-f6b109f14ece.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/56c1ff67-2f64-40da-a398-f6b109f14ece",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/56c1ff67-2f64-40da-a398-f6b109f14ece"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/87ec8879-bf54-4725-819a-1adea76a2b15.json",
+ "type":"Canvas",
+ "label":"fol. 61v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/87ec8879-bf54-4725-819a-1adea76a2b15.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/87ec8879-bf54-4725-819a-1adea76a2b15.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/87ec8879-bf54-4725-819a-1adea76a2b15",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/87ec8879-bf54-4725-819a-1adea76a2b15"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ae6a9944-7eaf-49be-9aa8-8077906b2c7b.json",
+ "type":"Canvas",
+ "label":"fol. 62r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/ae6a9944-7eaf-49be-9aa8-8077906b2c7b.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ae6a9944-7eaf-49be-9aa8-8077906b2c7b.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/ae6a9944-7eaf-49be-9aa8-8077906b2c7b",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/ae6a9944-7eaf-49be-9aa8-8077906b2c7b"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/72ed5324-3b48-49ed-9367-2b317a90a25a.json",
+ "type":"Canvas",
+ "label":"fol. 62v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/72ed5324-3b48-49ed-9367-2b317a90a25a.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/72ed5324-3b48-49ed-9367-2b317a90a25a.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/72ed5324-3b48-49ed-9367-2b317a90a25a",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/72ed5324-3b48-49ed-9367-2b317a90a25a"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c90a2345-4ef1-466d-9ebe-a71c77a7d44d.json",
+ "type":"Canvas",
+ "label":"fol. 63r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/c90a2345-4ef1-466d-9ebe-a71c77a7d44d.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c90a2345-4ef1-466d-9ebe-a71c77a7d44d.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c90a2345-4ef1-466d-9ebe-a71c77a7d44d",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c90a2345-4ef1-466d-9ebe-a71c77a7d44d"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/40dc6af1-8dd1-4005-85cc-cda5ced4ac38.json",
+ "type":"Canvas",
+ "label":"fol. 63v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/40dc6af1-8dd1-4005-85cc-cda5ced4ac38.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/40dc6af1-8dd1-4005-85cc-cda5ced4ac38.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/40dc6af1-8dd1-4005-85cc-cda5ced4ac38",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/40dc6af1-8dd1-4005-85cc-cda5ced4ac38"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/296a75e3-df33-4479-9b9f-ee09b474dbc3.json",
+ "type":"Canvas",
+ "label":"fol. 64r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/296a75e3-df33-4479-9b9f-ee09b474dbc3.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/296a75e3-df33-4479-9b9f-ee09b474dbc3.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/296a75e3-df33-4479-9b9f-ee09b474dbc3",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/296a75e3-df33-4479-9b9f-ee09b474dbc3"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d78869d4-5826-4ba1-8fb5-8f5b6a6af8ce.json",
+ "type":"Canvas",
+ "label":"fol. 64v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/d78869d4-5826-4ba1-8fb5-8f5b6a6af8ce.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d78869d4-5826-4ba1-8fb5-8f5b6a6af8ce.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d78869d4-5826-4ba1-8fb5-8f5b6a6af8ce",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d78869d4-5826-4ba1-8fb5-8f5b6a6af8ce"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/528e1542-160b-4629-a996-a762975ff81b.json",
+ "type":"Canvas",
+ "label":"fol. 65r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/528e1542-160b-4629-a996-a762975ff81b.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/528e1542-160b-4629-a996-a762975ff81b.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/528e1542-160b-4629-a996-a762975ff81b",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/528e1542-160b-4629-a996-a762975ff81b"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/252d22ad-bacb-4b4f-b24c-5fee273d5fde.json",
+ "type":"Canvas",
+ "label":"fol. 65v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/252d22ad-bacb-4b4f-b24c-5fee273d5fde.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/252d22ad-bacb-4b4f-b24c-5fee273d5fde.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/252d22ad-bacb-4b4f-b24c-5fee273d5fde",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/252d22ad-bacb-4b4f-b24c-5fee273d5fde"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/641514b6-cfa5-4ba7-8c01-0f7ebe9de86a.json",
+ "type":"Canvas",
+ "label":"fol. 66r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/641514b6-cfa5-4ba7-8c01-0f7ebe9de86a.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/641514b6-cfa5-4ba7-8c01-0f7ebe9de86a.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/641514b6-cfa5-4ba7-8c01-0f7ebe9de86a",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/641514b6-cfa5-4ba7-8c01-0f7ebe9de86a"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c5dfb7bf-7ecc-4972-96ea-8e7aacd45917.json",
+ "type":"Canvas",
+ "label":"fol. 66v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/c5dfb7bf-7ecc-4972-96ea-8e7aacd45917.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c5dfb7bf-7ecc-4972-96ea-8e7aacd45917.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c5dfb7bf-7ecc-4972-96ea-8e7aacd45917",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c5dfb7bf-7ecc-4972-96ea-8e7aacd45917"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/60776fee-60e7-4088-9c3b-a02ede2da030.json",
+ "type":"Canvas",
+ "label":"fol. 67r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/60776fee-60e7-4088-9c3b-a02ede2da030.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/60776fee-60e7-4088-9c3b-a02ede2da030.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/60776fee-60e7-4088-9c3b-a02ede2da030",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/60776fee-60e7-4088-9c3b-a02ede2da030"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7e352491-a25c-4be2-8cd1-6fba09c738dd.json",
+ "type":"Canvas",
+ "label":"fol. 67v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/7e352491-a25c-4be2-8cd1-6fba09c738dd.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7e352491-a25c-4be2-8cd1-6fba09c738dd.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/7e352491-a25c-4be2-8cd1-6fba09c738dd",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/7e352491-a25c-4be2-8cd1-6fba09c738dd"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4ed20c7c-41f7-479b-a3fe-d57305dd5671.json",
+ "type":"Canvas",
+ "label":"fol. 68r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/4ed20c7c-41f7-479b-a3fe-d57305dd5671.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4ed20c7c-41f7-479b-a3fe-d57305dd5671.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/4ed20c7c-41f7-479b-a3fe-d57305dd5671",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/4ed20c7c-41f7-479b-a3fe-d57305dd5671"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/93d0760f-5d3d-432f-9e2c-aef63fe10633.json",
+ "type":"Canvas",
+ "label":"fol. 68v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/93d0760f-5d3d-432f-9e2c-aef63fe10633.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/93d0760f-5d3d-432f-9e2c-aef63fe10633.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/93d0760f-5d3d-432f-9e2c-aef63fe10633",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/93d0760f-5d3d-432f-9e2c-aef63fe10633"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0de84d4b-e360-4757-bdf1-49038423c1d2.json",
+ "type":"Canvas",
+ "label":"fol. 69r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/0de84d4b-e360-4757-bdf1-49038423c1d2.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0de84d4b-e360-4757-bdf1-49038423c1d2.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/0de84d4b-e360-4757-bdf1-49038423c1d2",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/0de84d4b-e360-4757-bdf1-49038423c1d2"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/de794763-67eb-4698-af46-c0f4e567890b.json",
+ "type":"Canvas",
+ "label":"fol. 69v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/de794763-67eb-4698-af46-c0f4e567890b.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/de794763-67eb-4698-af46-c0f4e567890b.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/de794763-67eb-4698-af46-c0f4e567890b",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/de794763-67eb-4698-af46-c0f4e567890b"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0c8697b3-cc9d-4065-a157-ba66c34cbc8e.json",
+ "type":"Canvas",
+ "label":"fol. 70r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/0c8697b3-cc9d-4065-a157-ba66c34cbc8e.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0c8697b3-cc9d-4065-a157-ba66c34cbc8e.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/0c8697b3-cc9d-4065-a157-ba66c34cbc8e",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/0c8697b3-cc9d-4065-a157-ba66c34cbc8e"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/eaaae3c3-f5d0-4afd-b66f-8fb6307b9035.json",
+ "type":"Canvas",
+ "label":"fol. 70v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/eaaae3c3-f5d0-4afd-b66f-8fb6307b9035.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/eaaae3c3-f5d0-4afd-b66f-8fb6307b9035.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/eaaae3c3-f5d0-4afd-b66f-8fb6307b9035",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/eaaae3c3-f5d0-4afd-b66f-8fb6307b9035"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/82a6c26b-d7af-4b21-b21d-ec12748eff60.json",
+ "type":"Canvas",
+ "label":"fol. 71r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/82a6c26b-d7af-4b21-b21d-ec12748eff60.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/82a6c26b-d7af-4b21-b21d-ec12748eff60.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/82a6c26b-d7af-4b21-b21d-ec12748eff60",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/82a6c26b-d7af-4b21-b21d-ec12748eff60"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6fb1efde-087d-4dfe-9fc1-19011160b7d9.json",
+ "type":"Canvas",
+ "label":"fol. 71v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/6fb1efde-087d-4dfe-9fc1-19011160b7d9.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6fb1efde-087d-4dfe-9fc1-19011160b7d9.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/6fb1efde-087d-4dfe-9fc1-19011160b7d9",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/6fb1efde-087d-4dfe-9fc1-19011160b7d9"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6d845d20-3447-4375-9463-d887885b4f73.json",
+ "type":"Canvas",
+ "label":"fol. 72r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/6d845d20-3447-4375-9463-d887885b4f73.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6d845d20-3447-4375-9463-d887885b4f73.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/6d845d20-3447-4375-9463-d887885b4f73",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/6d845d20-3447-4375-9463-d887885b4f73"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9e6fe00c-e3b3-4671-a9ea-3ef86551e992.json",
+ "type":"Canvas",
+ "label":"fol. 72v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/9e6fe00c-e3b3-4671-a9ea-3ef86551e992.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9e6fe00c-e3b3-4671-a9ea-3ef86551e992.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9e6fe00c-e3b3-4671-a9ea-3ef86551e992",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9e6fe00c-e3b3-4671-a9ea-3ef86551e992"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/a735a4a8-1bb7-43fb-8a4c-7226bb4d69b3.json",
+ "type":"Canvas",
+ "label":"fol. 73r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/a735a4a8-1bb7-43fb-8a4c-7226bb4d69b3.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/a735a4a8-1bb7-43fb-8a4c-7226bb4d69b3.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/a735a4a8-1bb7-43fb-8a4c-7226bb4d69b3",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/a735a4a8-1bb7-43fb-8a4c-7226bb4d69b3"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/449ffe7d-83cc-44e5-84de-8369813f587d.json",
+ "type":"Canvas",
+ "label":"fol. 73v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/449ffe7d-83cc-44e5-84de-8369813f587d.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/449ffe7d-83cc-44e5-84de-8369813f587d.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/449ffe7d-83cc-44e5-84de-8369813f587d",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/449ffe7d-83cc-44e5-84de-8369813f587d"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8a7853c4-2495-4c42-b919-350aa8c1c034.json",
+ "type":"Canvas",
+ "label":"fol. 74r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/8a7853c4-2495-4c42-b919-350aa8c1c034.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8a7853c4-2495-4c42-b919-350aa8c1c034.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8a7853c4-2495-4c42-b919-350aa8c1c034",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8a7853c4-2495-4c42-b919-350aa8c1c034"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/81c7a3ff-7823-4ef5-98db-2528d340c4d6.json",
+ "type":"Canvas",
+ "label":"fol. 74v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/81c7a3ff-7823-4ef5-98db-2528d340c4d6.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/81c7a3ff-7823-4ef5-98db-2528d340c4d6.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/81c7a3ff-7823-4ef5-98db-2528d340c4d6",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/81c7a3ff-7823-4ef5-98db-2528d340c4d6"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b8bc5388-495f-4039-a40a-a00da316c0f8.json",
+ "type":"Canvas",
+ "label":"fol. 75r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/b8bc5388-495f-4039-a40a-a00da316c0f8.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b8bc5388-495f-4039-a40a-a00da316c0f8.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b8bc5388-495f-4039-a40a-a00da316c0f8",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b8bc5388-495f-4039-a40a-a00da316c0f8"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/39b3ba3e-75bd-4ccb-84ea-c74abbf6fa99.json",
+ "type":"Canvas",
+ "label":"fol. 75v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/39b3ba3e-75bd-4ccb-84ea-c74abbf6fa99.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/39b3ba3e-75bd-4ccb-84ea-c74abbf6fa99.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/39b3ba3e-75bd-4ccb-84ea-c74abbf6fa99",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/39b3ba3e-75bd-4ccb-84ea-c74abbf6fa99"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ed38fbc0-bc15-4560-bc78-6d0d64ef331f.json",
+ "type":"Canvas",
+ "label":"fol. 76r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/ed38fbc0-bc15-4560-bc78-6d0d64ef331f.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ed38fbc0-bc15-4560-bc78-6d0d64ef331f.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/ed38fbc0-bc15-4560-bc78-6d0d64ef331f",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/ed38fbc0-bc15-4560-bc78-6d0d64ef331f"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/fdb3753b-1afc-4268-9dec-f5c53c32ab5a.json",
+ "type":"Canvas",
+ "label":"fol. 76v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/fdb3753b-1afc-4268-9dec-f5c53c32ab5a.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/fdb3753b-1afc-4268-9dec-f5c53c32ab5a.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/fdb3753b-1afc-4268-9dec-f5c53c32ab5a",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/fdb3753b-1afc-4268-9dec-f5c53c32ab5a"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/70de0918-de25-4be2-9f0e-944e95b76dff.json",
+ "type":"Canvas",
+ "label":"fol. 77r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/70de0918-de25-4be2-9f0e-944e95b76dff.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/70de0918-de25-4be2-9f0e-944e95b76dff.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/70de0918-de25-4be2-9f0e-944e95b76dff",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/70de0918-de25-4be2-9f0e-944e95b76dff"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/10e3c88e-ade0-4899-876e-b4315464d5cd.json",
+ "type":"Canvas",
+ "label":"fol. 77v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/10e3c88e-ade0-4899-876e-b4315464d5cd.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/10e3c88e-ade0-4899-876e-b4315464d5cd.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/10e3c88e-ade0-4899-876e-b4315464d5cd",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/10e3c88e-ade0-4899-876e-b4315464d5cd"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e5d5a720-e8fb-4460-9f64-eaa281f0257a.json",
+ "type":"Canvas",
+ "label":"fol. 78r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/e5d5a720-e8fb-4460-9f64-eaa281f0257a.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e5d5a720-e8fb-4460-9f64-eaa281f0257a.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e5d5a720-e8fb-4460-9f64-eaa281f0257a",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e5d5a720-e8fb-4460-9f64-eaa281f0257a"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d4f7e156-194a-4bf6-b319-35d8ea02eba4.json",
+ "type":"Canvas",
+ "label":"fol. 78v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/d4f7e156-194a-4bf6-b319-35d8ea02eba4.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d4f7e156-194a-4bf6-b319-35d8ea02eba4.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d4f7e156-194a-4bf6-b319-35d8ea02eba4",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d4f7e156-194a-4bf6-b319-35d8ea02eba4"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/95c4b7c9-02a5-4a6b-b9ef-a5be43fbe347.json",
+ "type":"Canvas",
+ "label":"fol. 79r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/95c4b7c9-02a5-4a6b-b9ef-a5be43fbe347.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/95c4b7c9-02a5-4a6b-b9ef-a5be43fbe347.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/95c4b7c9-02a5-4a6b-b9ef-a5be43fbe347",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/95c4b7c9-02a5-4a6b-b9ef-a5be43fbe347"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/dbb721b5-6560-4bc2-b27d-5d8f77ac1e9c.json",
+ "type":"Canvas",
+ "label":"fol. 79v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/dbb721b5-6560-4bc2-b27d-5d8f77ac1e9c.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/dbb721b5-6560-4bc2-b27d-5d8f77ac1e9c.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/dbb721b5-6560-4bc2-b27d-5d8f77ac1e9c",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/dbb721b5-6560-4bc2-b27d-5d8f77ac1e9c"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1aace697-14f2-4974-b489-ff20c2bc0bb9.json",
+ "type":"Canvas",
+ "label":"fol. 80r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/1aace697-14f2-4974-b489-ff20c2bc0bb9.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1aace697-14f2-4974-b489-ff20c2bc0bb9.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/1aace697-14f2-4974-b489-ff20c2bc0bb9",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/1aace697-14f2-4974-b489-ff20c2bc0bb9"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/270f9593-83ef-4e8b-b634-eb9ca14ce1c8.json",
+ "type":"Canvas",
+ "label":"fol. 80v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/270f9593-83ef-4e8b-b634-eb9ca14ce1c8.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/270f9593-83ef-4e8b-b634-eb9ca14ce1c8.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/270f9593-83ef-4e8b-b634-eb9ca14ce1c8",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/270f9593-83ef-4e8b-b634-eb9ca14ce1c8"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/321036ea-3ffc-4a98-8503-422eb42014b6.json",
+ "type":"Canvas",
+ "label":"fol. 81r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/321036ea-3ffc-4a98-8503-422eb42014b6.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/321036ea-3ffc-4a98-8503-422eb42014b6.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/321036ea-3ffc-4a98-8503-422eb42014b6",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/321036ea-3ffc-4a98-8503-422eb42014b6"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2cdf49da-90c3-42da-85bf-f93018377520.json",
+ "type":"Canvas",
+ "label":"fol. 81v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/2cdf49da-90c3-42da-85bf-f93018377520.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2cdf49da-90c3-42da-85bf-f93018377520.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/2cdf49da-90c3-42da-85bf-f93018377520",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/2cdf49da-90c3-42da-85bf-f93018377520"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f8a775d6-a450-470b-b182-a5ad71e64daa.json",
+ "type":"Canvas",
+ "label":"fol. 82r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/f8a775d6-a450-470b-b182-a5ad71e64daa.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f8a775d6-a450-470b-b182-a5ad71e64daa.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f8a775d6-a450-470b-b182-a5ad71e64daa",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f8a775d6-a450-470b-b182-a5ad71e64daa"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/19cfe12a-1bc4-43c6-b762-22bcf57aa766.json",
+ "type":"Canvas",
+ "label":"fol. 82v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/19cfe12a-1bc4-43c6-b762-22bcf57aa766.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/19cfe12a-1bc4-43c6-b762-22bcf57aa766.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/19cfe12a-1bc4-43c6-b762-22bcf57aa766",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/19cfe12a-1bc4-43c6-b762-22bcf57aa766"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4faae3b8-e03c-48d4-9798-18f0132f05f2.json",
+ "type":"Canvas",
+ "label":"fol. 83r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/4faae3b8-e03c-48d4-9798-18f0132f05f2.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4faae3b8-e03c-48d4-9798-18f0132f05f2.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/4faae3b8-e03c-48d4-9798-18f0132f05f2",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/4faae3b8-e03c-48d4-9798-18f0132f05f2"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e8c4fea9-8cdb-421a-bcd6-d6f8578eba0c.json",
+ "type":"Canvas",
+ "label":"fol. 83v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/e8c4fea9-8cdb-421a-bcd6-d6f8578eba0c.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e8c4fea9-8cdb-421a-bcd6-d6f8578eba0c.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e8c4fea9-8cdb-421a-bcd6-d6f8578eba0c",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e8c4fea9-8cdb-421a-bcd6-d6f8578eba0c"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f07819e6-3d24-47ca-8b6e-b2346415e69e.json",
+ "type":"Canvas",
+ "label":"fol. 84r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/f07819e6-3d24-47ca-8b6e-b2346415e69e.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f07819e6-3d24-47ca-8b6e-b2346415e69e.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f07819e6-3d24-47ca-8b6e-b2346415e69e",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f07819e6-3d24-47ca-8b6e-b2346415e69e"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/610bd1c7-2d25-4427-85b2-a6e3be102dd7.json",
+ "type":"Canvas",
+ "label":"fol. 84v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/610bd1c7-2d25-4427-85b2-a6e3be102dd7.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/610bd1c7-2d25-4427-85b2-a6e3be102dd7.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/610bd1c7-2d25-4427-85b2-a6e3be102dd7",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/610bd1c7-2d25-4427-85b2-a6e3be102dd7"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/59a241b8-a622-40c5-a583-64e49e392a14.json",
+ "type":"Canvas",
+ "label":"fol. 85r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/59a241b8-a622-40c5-a583-64e49e392a14.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/59a241b8-a622-40c5-a583-64e49e392a14.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/59a241b8-a622-40c5-a583-64e49e392a14",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/59a241b8-a622-40c5-a583-64e49e392a14"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/73ba5533-40d4-4052-aef6-0106082ec70a.json",
+ "type":"Canvas",
+ "label":"fol. 85v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/73ba5533-40d4-4052-aef6-0106082ec70a.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/73ba5533-40d4-4052-aef6-0106082ec70a.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/73ba5533-40d4-4052-aef6-0106082ec70a",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/73ba5533-40d4-4052-aef6-0106082ec70a"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/734f98e0-a8ec-4a96-8b3e-c79613c57450.json",
+ "type":"Canvas",
+ "label":"fol. 86r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/734f98e0-a8ec-4a96-8b3e-c79613c57450.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/734f98e0-a8ec-4a96-8b3e-c79613c57450.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/734f98e0-a8ec-4a96-8b3e-c79613c57450",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/734f98e0-a8ec-4a96-8b3e-c79613c57450"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2294268c-519c-4934-9632-6bfd4081cdc3.json",
+ "type":"Canvas",
+ "label":"fol. 86v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/2294268c-519c-4934-9632-6bfd4081cdc3.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2294268c-519c-4934-9632-6bfd4081cdc3.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/2294268c-519c-4934-9632-6bfd4081cdc3",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/2294268c-519c-4934-9632-6bfd4081cdc3"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/011de259-954d-41a7-8547-6c8bc787de34.json",
+ "type":"Canvas",
+ "label":"fol. 87r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/011de259-954d-41a7-8547-6c8bc787de34.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/011de259-954d-41a7-8547-6c8bc787de34.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/011de259-954d-41a7-8547-6c8bc787de34",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/011de259-954d-41a7-8547-6c8bc787de34"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/311f851d-b95d-4448-a3ad-178d6cbd0f10.json",
+ "type":"Canvas",
+ "label":"fol. 87v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/311f851d-b95d-4448-a3ad-178d6cbd0f10.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/311f851d-b95d-4448-a3ad-178d6cbd0f10.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/311f851d-b95d-4448-a3ad-178d6cbd0f10",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/311f851d-b95d-4448-a3ad-178d6cbd0f10"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/71a8bd5d-68e0-4b13-b254-498fafe4c7c8.json",
+ "type":"Canvas",
+ "label":"fol. 88r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/71a8bd5d-68e0-4b13-b254-498fafe4c7c8.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/71a8bd5d-68e0-4b13-b254-498fafe4c7c8.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/71a8bd5d-68e0-4b13-b254-498fafe4c7c8",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/71a8bd5d-68e0-4b13-b254-498fafe4c7c8"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1ebd1573-06c7-406b-aef7-7e3ad373b79a.json",
+ "type":"Canvas",
+ "label":"fol. 88v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/1ebd1573-06c7-406b-aef7-7e3ad373b79a.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1ebd1573-06c7-406b-aef7-7e3ad373b79a.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/1ebd1573-06c7-406b-aef7-7e3ad373b79a",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/1ebd1573-06c7-406b-aef7-7e3ad373b79a"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/dc787d96-3b32-453c-84bf-a5866b3daeaa.json",
+ "type":"Canvas",
+ "label":"fol. 89r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/dc787d96-3b32-453c-84bf-a5866b3daeaa.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/dc787d96-3b32-453c-84bf-a5866b3daeaa.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/dc787d96-3b32-453c-84bf-a5866b3daeaa",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/dc787d96-3b32-453c-84bf-a5866b3daeaa"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/72f24244-c4c4-4412-ae03-a875af6804fd.json",
+ "type":"Canvas",
+ "label":"fol. 89v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/72f24244-c4c4-4412-ae03-a875af6804fd.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/72f24244-c4c4-4412-ae03-a875af6804fd.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/72f24244-c4c4-4412-ae03-a875af6804fd",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/72f24244-c4c4-4412-ae03-a875af6804fd"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8dbd3588-c816-44b2-a9ae-493a7c670dd5.json",
+ "type":"Canvas",
+ "label":"fol. 90r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/8dbd3588-c816-44b2-a9ae-493a7c670dd5.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8dbd3588-c816-44b2-a9ae-493a7c670dd5.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8dbd3588-c816-44b2-a9ae-493a7c670dd5",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8dbd3588-c816-44b2-a9ae-493a7c670dd5"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/dc1afcf9-a994-4bb8-8d4f-be30648a7012.json",
+ "type":"Canvas",
+ "label":"fol. 90v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/dc1afcf9-a994-4bb8-8d4f-be30648a7012.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/dc1afcf9-a994-4bb8-8d4f-be30648a7012.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/dc1afcf9-a994-4bb8-8d4f-be30648a7012",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/dc1afcf9-a994-4bb8-8d4f-be30648a7012"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b8ed8a0e-9dd9-418c-956a-5d69388ec3d9.json",
+ "type":"Canvas",
+ "label":"fol. 91r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/b8ed8a0e-9dd9-418c-956a-5d69388ec3d9.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b8ed8a0e-9dd9-418c-956a-5d69388ec3d9.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b8ed8a0e-9dd9-418c-956a-5d69388ec3d9",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b8ed8a0e-9dd9-418c-956a-5d69388ec3d9"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/338aca83-53c7-4d3c-acfb-6d5535a8d13d.json",
+ "type":"Canvas",
+ "label":"fol. 91v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/338aca83-53c7-4d3c-acfb-6d5535a8d13d.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/338aca83-53c7-4d3c-acfb-6d5535a8d13d.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/338aca83-53c7-4d3c-acfb-6d5535a8d13d",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/338aca83-53c7-4d3c-acfb-6d5535a8d13d"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e82fef84-c9ca-488a-af51-95c3e44a72fa.json",
+ "type":"Canvas",
+ "label":"fol. 92r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/e82fef84-c9ca-488a-af51-95c3e44a72fa.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e82fef84-c9ca-488a-af51-95c3e44a72fa.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e82fef84-c9ca-488a-af51-95c3e44a72fa",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e82fef84-c9ca-488a-af51-95c3e44a72fa"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9f4aa883-6666-4885-b1d0-f42396adaf63.json",
+ "type":"Canvas",
+ "label":"fol. 92v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/9f4aa883-6666-4885-b1d0-f42396adaf63.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9f4aa883-6666-4885-b1d0-f42396adaf63.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9f4aa883-6666-4885-b1d0-f42396adaf63",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9f4aa883-6666-4885-b1d0-f42396adaf63"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/bdefccbf-adcd-4661-9e59-22ddb0790a09.json",
+ "type":"Canvas",
+ "label":"fol. 93r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/bdefccbf-adcd-4661-9e59-22ddb0790a09.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/bdefccbf-adcd-4661-9e59-22ddb0790a09.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/bdefccbf-adcd-4661-9e59-22ddb0790a09",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/bdefccbf-adcd-4661-9e59-22ddb0790a09"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0da8b79a-337a-4b10-8c3c-1320ebeac504.json",
+ "type":"Canvas",
+ "label":"fol. 93v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/0da8b79a-337a-4b10-8c3c-1320ebeac504.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0da8b79a-337a-4b10-8c3c-1320ebeac504.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/0da8b79a-337a-4b10-8c3c-1320ebeac504",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/0da8b79a-337a-4b10-8c3c-1320ebeac504"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/909e6e80-14e1-46f6-80a8-be6473fd92aa.json",
+ "type":"Canvas",
+ "label":"fol. 94r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/909e6e80-14e1-46f6-80a8-be6473fd92aa.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/909e6e80-14e1-46f6-80a8-be6473fd92aa.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/909e6e80-14e1-46f6-80a8-be6473fd92aa",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/909e6e80-14e1-46f6-80a8-be6473fd92aa"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/58e1398d-e1ce-40de-b3a0-3b9ce41d7743.json",
+ "type":"Canvas",
+ "label":"fol. 94v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/58e1398d-e1ce-40de-b3a0-3b9ce41d7743.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/58e1398d-e1ce-40de-b3a0-3b9ce41d7743.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/58e1398d-e1ce-40de-b3a0-3b9ce41d7743",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/58e1398d-e1ce-40de-b3a0-3b9ce41d7743"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/10a62100-b8f7-4218-9f72-b9502a65d03d.json",
+ "type":"Canvas",
+ "label":"fol. 95r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/10a62100-b8f7-4218-9f72-b9502a65d03d.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/10a62100-b8f7-4218-9f72-b9502a65d03d.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/10a62100-b8f7-4218-9f72-b9502a65d03d",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/10a62100-b8f7-4218-9f72-b9502a65d03d"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/81fbdbd5-5037-4ffe-83c7-2ed9a3975862.json",
+ "type":"Canvas",
+ "label":"fol. 95v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/81fbdbd5-5037-4ffe-83c7-2ed9a3975862.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/81fbdbd5-5037-4ffe-83c7-2ed9a3975862.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/81fbdbd5-5037-4ffe-83c7-2ed9a3975862",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/81fbdbd5-5037-4ffe-83c7-2ed9a3975862"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/73b87193-d7b9-4fe2-a622-d23be53c16fa.json",
+ "type":"Canvas",
+ "label":"fol. 96r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/73b87193-d7b9-4fe2-a622-d23be53c16fa.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/73b87193-d7b9-4fe2-a622-d23be53c16fa.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/73b87193-d7b9-4fe2-a622-d23be53c16fa",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/73b87193-d7b9-4fe2-a622-d23be53c16fa"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/25ba941c-203b-44f1-8351-63a6ff316a2b.json",
+ "type":"Canvas",
+ "label":"fol. 96v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/25ba941c-203b-44f1-8351-63a6ff316a2b.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/25ba941c-203b-44f1-8351-63a6ff316a2b.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/25ba941c-203b-44f1-8351-63a6ff316a2b",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/25ba941c-203b-44f1-8351-63a6ff316a2b"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/5cd1bc3b-7923-4c30-a55c-4dc5f75de0ab.json",
+ "type":"Canvas",
+ "label":"fol. 97r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/5cd1bc3b-7923-4c30-a55c-4dc5f75de0ab.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/5cd1bc3b-7923-4c30-a55c-4dc5f75de0ab.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/5cd1bc3b-7923-4c30-a55c-4dc5f75de0ab",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/5cd1bc3b-7923-4c30-a55c-4dc5f75de0ab"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c7683ba6-129b-4313-a636-f87c35f07125.json",
+ "type":"Canvas",
+ "label":"fol. 97v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/c7683ba6-129b-4313-a636-f87c35f07125.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c7683ba6-129b-4313-a636-f87c35f07125.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c7683ba6-129b-4313-a636-f87c35f07125",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c7683ba6-129b-4313-a636-f87c35f07125"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/60d5d2b9-9d5b-427c-b974-24d5f47695e2.json",
+ "type":"Canvas",
+ "label":"fol. 98r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/60d5d2b9-9d5b-427c-b974-24d5f47695e2.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/60d5d2b9-9d5b-427c-b974-24d5f47695e2.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/60d5d2b9-9d5b-427c-b974-24d5f47695e2",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/60d5d2b9-9d5b-427c-b974-24d5f47695e2"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8b8faf36-5e38-424f-907a-d7fb87e9c9ec.json",
+ "type":"Canvas",
+ "label":"fol. 98v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/8b8faf36-5e38-424f-907a-d7fb87e9c9ec.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8b8faf36-5e38-424f-907a-d7fb87e9c9ec.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8b8faf36-5e38-424f-907a-d7fb87e9c9ec",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8b8faf36-5e38-424f-907a-d7fb87e9c9ec"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2e4fb49d-b308-4371-8d29-c078d8c52821.json",
+ "type":"Canvas",
+ "label":"fol. 99r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/2e4fb49d-b308-4371-8d29-c078d8c52821.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2e4fb49d-b308-4371-8d29-c078d8c52821.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/2e4fb49d-b308-4371-8d29-c078d8c52821",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/2e4fb49d-b308-4371-8d29-c078d8c52821"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f2c4d1cf-5a79-4363-b9dc-6a72bcbb34a6.json",
+ "type":"Canvas",
+ "label":"fol. 99v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/f2c4d1cf-5a79-4363-b9dc-6a72bcbb34a6.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f2c4d1cf-5a79-4363-b9dc-6a72bcbb34a6.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f2c4d1cf-5a79-4363-b9dc-6a72bcbb34a6",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f2c4d1cf-5a79-4363-b9dc-6a72bcbb34a6"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/96b61d35-3386-4be4-8b9f-a5fc4ce9f839.json",
+ "type":"Canvas",
+ "label":"fol. 100r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/96b61d35-3386-4be4-8b9f-a5fc4ce9f839.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/96b61d35-3386-4be4-8b9f-a5fc4ce9f839.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/96b61d35-3386-4be4-8b9f-a5fc4ce9f839",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/96b61d35-3386-4be4-8b9f-a5fc4ce9f839"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d3a65fd0-dbeb-4186-b803-b7e23fef65a4.json",
+ "type":"Canvas",
+ "label":"fol. 100v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/d3a65fd0-dbeb-4186-b803-b7e23fef65a4.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d3a65fd0-dbeb-4186-b803-b7e23fef65a4.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d3a65fd0-dbeb-4186-b803-b7e23fef65a4",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d3a65fd0-dbeb-4186-b803-b7e23fef65a4"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ce4c8ceb-fae7-4d37-ba19-39a273d776e8.json",
+ "type":"Canvas",
+ "label":"fol. 101r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/ce4c8ceb-fae7-4d37-ba19-39a273d776e8.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ce4c8ceb-fae7-4d37-ba19-39a273d776e8.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/ce4c8ceb-fae7-4d37-ba19-39a273d776e8",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/ce4c8ceb-fae7-4d37-ba19-39a273d776e8"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/827cb250-d945-4791-980a-a5f5e99d710e.json",
+ "type":"Canvas",
+ "label":"fol. 101v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/827cb250-d945-4791-980a-a5f5e99d710e.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/827cb250-d945-4791-980a-a5f5e99d710e.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/827cb250-d945-4791-980a-a5f5e99d710e",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/827cb250-d945-4791-980a-a5f5e99d710e"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/a8bdeafe-3a3c-4ca8-b93f-08c40cf5b15f.json",
+ "type":"Canvas",
+ "label":"fol. 102r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/a8bdeafe-3a3c-4ca8-b93f-08c40cf5b15f.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/a8bdeafe-3a3c-4ca8-b93f-08c40cf5b15f.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/a8bdeafe-3a3c-4ca8-b93f-08c40cf5b15f",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/a8bdeafe-3a3c-4ca8-b93f-08c40cf5b15f"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/415103aa-24a7-4dfa-b8ee-db7b434e344b.json",
+ "type":"Canvas",
+ "label":"fol. 102v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/415103aa-24a7-4dfa-b8ee-db7b434e344b.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/415103aa-24a7-4dfa-b8ee-db7b434e344b.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/415103aa-24a7-4dfa-b8ee-db7b434e344b",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/415103aa-24a7-4dfa-b8ee-db7b434e344b"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3c45b0fe-d515-4502-bad0-e6b22983b0e4.json",
+ "type":"Canvas",
+ "label":"fol. 103r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/3c45b0fe-d515-4502-bad0-e6b22983b0e4.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3c45b0fe-d515-4502-bad0-e6b22983b0e4.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3c45b0fe-d515-4502-bad0-e6b22983b0e4",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3c45b0fe-d515-4502-bad0-e6b22983b0e4"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c534af33-1766-47ca-a7a2-545a95ada414.json",
+ "type":"Canvas",
+ "label":"fol. 103v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/c534af33-1766-47ca-a7a2-545a95ada414.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c534af33-1766-47ca-a7a2-545a95ada414.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c534af33-1766-47ca-a7a2-545a95ada414",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c534af33-1766-47ca-a7a2-545a95ada414"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1c94e516-3e0f-4ceb-981c-3396cba302ae.json",
+ "type":"Canvas",
+ "label":"fol. 104r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/1c94e516-3e0f-4ceb-981c-3396cba302ae.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1c94e516-3e0f-4ceb-981c-3396cba302ae.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/1c94e516-3e0f-4ceb-981c-3396cba302ae",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/1c94e516-3e0f-4ceb-981c-3396cba302ae"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4353d4b7-0b57-4e37-92d5-d6f8337f431a.json",
+ "type":"Canvas",
+ "label":"fol. 104v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/4353d4b7-0b57-4e37-92d5-d6f8337f431a.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4353d4b7-0b57-4e37-92d5-d6f8337f431a.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/4353d4b7-0b57-4e37-92d5-d6f8337f431a",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/4353d4b7-0b57-4e37-92d5-d6f8337f431a"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c48b09d7-2f41-4e5f-bc1b-d59407e1df87.json",
+ "type":"Canvas",
+ "label":"fol. 105r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/c48b09d7-2f41-4e5f-bc1b-d59407e1df87.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c48b09d7-2f41-4e5f-bc1b-d59407e1df87.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c48b09d7-2f41-4e5f-bc1b-d59407e1df87",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c48b09d7-2f41-4e5f-bc1b-d59407e1df87"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7bc09117-fe22-472e-8d9c-1a120f649530.json",
+ "type":"Canvas",
+ "label":"fol. 105v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/7bc09117-fe22-472e-8d9c-1a120f649530.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7bc09117-fe22-472e-8d9c-1a120f649530.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/7bc09117-fe22-472e-8d9c-1a120f649530",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/7bc09117-fe22-472e-8d9c-1a120f649530"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8249bbe0-b4e2-4ce0-a73f-649dcf343cad.json",
+ "type":"Canvas",
+ "label":"fol. 106r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/8249bbe0-b4e2-4ce0-a73f-649dcf343cad.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8249bbe0-b4e2-4ce0-a73f-649dcf343cad.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8249bbe0-b4e2-4ce0-a73f-649dcf343cad",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8249bbe0-b4e2-4ce0-a73f-649dcf343cad"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/82666162-0f2f-4e4a-8618-7e0845d9ad46.json",
+ "type":"Canvas",
+ "label":"fol. 106v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/82666162-0f2f-4e4a-8618-7e0845d9ad46.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/82666162-0f2f-4e4a-8618-7e0845d9ad46.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/82666162-0f2f-4e4a-8618-7e0845d9ad46",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/82666162-0f2f-4e4a-8618-7e0845d9ad46"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/fc597511-a5a4-47ad-b5ef-2f2700ea8202.json",
+ "type":"Canvas",
+ "label":"fol. 107r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/fc597511-a5a4-47ad-b5ef-2f2700ea8202.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/fc597511-a5a4-47ad-b5ef-2f2700ea8202.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/fc597511-a5a4-47ad-b5ef-2f2700ea8202",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/fc597511-a5a4-47ad-b5ef-2f2700ea8202"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9e48d39b-a350-4f2f-9900-091ee9938c83.json",
+ "type":"Canvas",
+ "label":"fol. 107v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/9e48d39b-a350-4f2f-9900-091ee9938c83.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9e48d39b-a350-4f2f-9900-091ee9938c83.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9e48d39b-a350-4f2f-9900-091ee9938c83",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9e48d39b-a350-4f2f-9900-091ee9938c83"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b12cf765-42a5-4bb4-a02f-44b6f81bb428.json",
+ "type":"Canvas",
+ "label":"fol. 108r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/b12cf765-42a5-4bb4-a02f-44b6f81bb428.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b12cf765-42a5-4bb4-a02f-44b6f81bb428.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b12cf765-42a5-4bb4-a02f-44b6f81bb428",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b12cf765-42a5-4bb4-a02f-44b6f81bb428"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/df626bae-a722-4a99-99e1-e7ee3eba22f6.json",
+ "type":"Canvas",
+ "label":"fol. 108v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/df626bae-a722-4a99-99e1-e7ee3eba22f6.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/df626bae-a722-4a99-99e1-e7ee3eba22f6.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/df626bae-a722-4a99-99e1-e7ee3eba22f6",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/df626bae-a722-4a99-99e1-e7ee3eba22f6"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/aa9520f1-9340-4035-bb9b-9497279358e7.json",
+ "type":"Canvas",
+ "label":"fol. 109r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/aa9520f1-9340-4035-bb9b-9497279358e7.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/aa9520f1-9340-4035-bb9b-9497279358e7.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/aa9520f1-9340-4035-bb9b-9497279358e7",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/aa9520f1-9340-4035-bb9b-9497279358e7"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8b39d130-6920-48b5-bced-eed56f8364be.json",
+ "type":"Canvas",
+ "label":"fol. 109v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/8b39d130-6920-48b5-bced-eed56f8364be.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8b39d130-6920-48b5-bced-eed56f8364be.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8b39d130-6920-48b5-bced-eed56f8364be",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8b39d130-6920-48b5-bced-eed56f8364be"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7f5b520a-5eb4-4450-9ef5-07ad5f71258e.json",
+ "type":"Canvas",
+ "label":"fol. 110r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/7f5b520a-5eb4-4450-9ef5-07ad5f71258e.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7f5b520a-5eb4-4450-9ef5-07ad5f71258e.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/7f5b520a-5eb4-4450-9ef5-07ad5f71258e",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/7f5b520a-5eb4-4450-9ef5-07ad5f71258e"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e20b3d3a-e323-42c4-9d05-1c3d53f2a980.json",
+ "type":"Canvas",
+ "label":"fol. 110v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/e20b3d3a-e323-42c4-9d05-1c3d53f2a980.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e20b3d3a-e323-42c4-9d05-1c3d53f2a980.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e20b3d3a-e323-42c4-9d05-1c3d53f2a980",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e20b3d3a-e323-42c4-9d05-1c3d53f2a980"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/51242d25-fd28-4f79-a75c-31166df34186.json",
+ "type":"Canvas",
+ "label":"fol. 111r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/51242d25-fd28-4f79-a75c-31166df34186.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/51242d25-fd28-4f79-a75c-31166df34186.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/51242d25-fd28-4f79-a75c-31166df34186",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/51242d25-fd28-4f79-a75c-31166df34186"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9eb1a5fc-5752-41f4-8cf8-62df8453ebcc.json",
+ "type":"Canvas",
+ "label":"fol. 111v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/9eb1a5fc-5752-41f4-8cf8-62df8453ebcc.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9eb1a5fc-5752-41f4-8cf8-62df8453ebcc.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9eb1a5fc-5752-41f4-8cf8-62df8453ebcc",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9eb1a5fc-5752-41f4-8cf8-62df8453ebcc"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ead9f379-7b5b-4583-924d-9c2bbd2e2f88.json",
+ "type":"Canvas",
+ "label":"fol. 112r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/ead9f379-7b5b-4583-924d-9c2bbd2e2f88.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ead9f379-7b5b-4583-924d-9c2bbd2e2f88.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/ead9f379-7b5b-4583-924d-9c2bbd2e2f88",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/ead9f379-7b5b-4583-924d-9c2bbd2e2f88"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7d84954a-540f-4f9c-a03c-56e598116f10.json",
+ "type":"Canvas",
+ "label":"fol. 112v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/7d84954a-540f-4f9c-a03c-56e598116f10.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7d84954a-540f-4f9c-a03c-56e598116f10.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/7d84954a-540f-4f9c-a03c-56e598116f10",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/7d84954a-540f-4f9c-a03c-56e598116f10"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/cd31b81a-aa3c-4b1a-a65e-4003da913587.json",
+ "type":"Canvas",
+ "label":"fol. 113r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/cd31b81a-aa3c-4b1a-a65e-4003da913587.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/cd31b81a-aa3c-4b1a-a65e-4003da913587.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/cd31b81a-aa3c-4b1a-a65e-4003da913587",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/cd31b81a-aa3c-4b1a-a65e-4003da913587"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/098fd3cf-566d-41b4-be41-e212b4a87a01.json",
+ "type":"Canvas",
+ "label":"fol. 113v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/098fd3cf-566d-41b4-be41-e212b4a87a01.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/098fd3cf-566d-41b4-be41-e212b4a87a01.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/098fd3cf-566d-41b4-be41-e212b4a87a01",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/098fd3cf-566d-41b4-be41-e212b4a87a01"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/318316be-3ede-45ff-b849-56b2b370ed4e.json",
+ "type":"Canvas",
+ "label":"fol. 114r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/318316be-3ede-45ff-b849-56b2b370ed4e.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/318316be-3ede-45ff-b849-56b2b370ed4e.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/318316be-3ede-45ff-b849-56b2b370ed4e",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/318316be-3ede-45ff-b849-56b2b370ed4e"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f534332d-8dc7-492c-9a0d-f9c8a3be0b24.json",
+ "type":"Canvas",
+ "label":"fol. 114v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/f534332d-8dc7-492c-9a0d-f9c8a3be0b24.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f534332d-8dc7-492c-9a0d-f9c8a3be0b24.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f534332d-8dc7-492c-9a0d-f9c8a3be0b24",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f534332d-8dc7-492c-9a0d-f9c8a3be0b24"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/59ae477c-7942-4f8e-a216-654d3279c541.json",
+ "type":"Canvas",
+ "label":"fol. 115r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/59ae477c-7942-4f8e-a216-654d3279c541.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/59ae477c-7942-4f8e-a216-654d3279c541.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/59ae477c-7942-4f8e-a216-654d3279c541",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/59ae477c-7942-4f8e-a216-654d3279c541"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c3b8895a-2de2-41f4-9682-69a479b08733.json",
+ "type":"Canvas",
+ "label":"fol. 115v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/c3b8895a-2de2-41f4-9682-69a479b08733.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c3b8895a-2de2-41f4-9682-69a479b08733.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c3b8895a-2de2-41f4-9682-69a479b08733",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c3b8895a-2de2-41f4-9682-69a479b08733"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/52073aea-d345-4541-9ba4-717b420ca51c.json",
+ "type":"Canvas",
+ "label":"fol. 116r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/52073aea-d345-4541-9ba4-717b420ca51c.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/52073aea-d345-4541-9ba4-717b420ca51c.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/52073aea-d345-4541-9ba4-717b420ca51c",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/52073aea-d345-4541-9ba4-717b420ca51c"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/61b68955-f103-4ec0-859e-6cd0f3c44a6c.json",
+ "type":"Canvas",
+ "label":"fol. 116v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/61b68955-f103-4ec0-859e-6cd0f3c44a6c.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/61b68955-f103-4ec0-859e-6cd0f3c44a6c.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/61b68955-f103-4ec0-859e-6cd0f3c44a6c",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/61b68955-f103-4ec0-859e-6cd0f3c44a6c"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/05f83589-f9bf-4c46-84d4-ad1e303b05a7.json",
+ "type":"Canvas",
+ "label":"fol. 117r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/05f83589-f9bf-4c46-84d4-ad1e303b05a7.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/05f83589-f9bf-4c46-84d4-ad1e303b05a7.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/05f83589-f9bf-4c46-84d4-ad1e303b05a7",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/05f83589-f9bf-4c46-84d4-ad1e303b05a7"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/79103d1c-8628-412b-acba-6d4aef8e9377.json",
+ "type":"Canvas",
+ "label":"fol. 117v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/79103d1c-8628-412b-acba-6d4aef8e9377.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/79103d1c-8628-412b-acba-6d4aef8e9377.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/79103d1c-8628-412b-acba-6d4aef8e9377",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/79103d1c-8628-412b-acba-6d4aef8e9377"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0b3747ce-6789-41b7-86b9-cb5bf493b3f6.json",
+ "type":"Canvas",
+ "label":"fol. 118r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/0b3747ce-6789-41b7-86b9-cb5bf493b3f6.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0b3747ce-6789-41b7-86b9-cb5bf493b3f6.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/0b3747ce-6789-41b7-86b9-cb5bf493b3f6",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/0b3747ce-6789-41b7-86b9-cb5bf493b3f6"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0ec48bee-4a02-4bcf-a62c-c08779e74da4.json",
+ "type":"Canvas",
+ "label":"fol. 118v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/0ec48bee-4a02-4bcf-a62c-c08779e74da4.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0ec48bee-4a02-4bcf-a62c-c08779e74da4.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/0ec48bee-4a02-4bcf-a62c-c08779e74da4",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/0ec48bee-4a02-4bcf-a62c-c08779e74da4"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c1168898-6c26-40ca-983e-2c73bb74cf61.json",
+ "type":"Canvas",
+ "label":"fol. 119r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/c1168898-6c26-40ca-983e-2c73bb74cf61.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c1168898-6c26-40ca-983e-2c73bb74cf61.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c1168898-6c26-40ca-983e-2c73bb74cf61",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c1168898-6c26-40ca-983e-2c73bb74cf61"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/323f1382-7eb2-4d86-b0bd-e88bb332502e.json",
+ "type":"Canvas",
+ "label":"fol. 119v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/323f1382-7eb2-4d86-b0bd-e88bb332502e.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/323f1382-7eb2-4d86-b0bd-e88bb332502e.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/323f1382-7eb2-4d86-b0bd-e88bb332502e",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/323f1382-7eb2-4d86-b0bd-e88bb332502e"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4da1cd54-f6e3-4fe8-9e84-b106c7515f31.json",
+ "type":"Canvas",
+ "label":"fol. 120r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/4da1cd54-f6e3-4fe8-9e84-b106c7515f31.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4da1cd54-f6e3-4fe8-9e84-b106c7515f31.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/4da1cd54-f6e3-4fe8-9e84-b106c7515f31",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/4da1cd54-f6e3-4fe8-9e84-b106c7515f31"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1926c727-923f-4bdf-8872-a15c43bf4abc.json",
+ "type":"Canvas",
+ "label":"fol. 120v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/1926c727-923f-4bdf-8872-a15c43bf4abc.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1926c727-923f-4bdf-8872-a15c43bf4abc.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/1926c727-923f-4bdf-8872-a15c43bf4abc",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/1926c727-923f-4bdf-8872-a15c43bf4abc"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c04bc704-b2e2-41b1-95d3-f2aa887f2d37.json",
+ "type":"Canvas",
+ "label":"fol. 121r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/c04bc704-b2e2-41b1-95d3-f2aa887f2d37.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c04bc704-b2e2-41b1-95d3-f2aa887f2d37.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c04bc704-b2e2-41b1-95d3-f2aa887f2d37",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c04bc704-b2e2-41b1-95d3-f2aa887f2d37"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c0d677c5-a0d2-4ed9-aecb-54d11169107a.json",
+ "type":"Canvas",
+ "label":"fol. 121v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/c0d677c5-a0d2-4ed9-aecb-54d11169107a.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c0d677c5-a0d2-4ed9-aecb-54d11169107a.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c0d677c5-a0d2-4ed9-aecb-54d11169107a",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c0d677c5-a0d2-4ed9-aecb-54d11169107a"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/12b11f37-ec8f-4f9a-b1a3-e2d9ecb89f2c.json",
+ "type":"Canvas",
+ "label":"fol. 122r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/12b11f37-ec8f-4f9a-b1a3-e2d9ecb89f2c.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/12b11f37-ec8f-4f9a-b1a3-e2d9ecb89f2c.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/12b11f37-ec8f-4f9a-b1a3-e2d9ecb89f2c",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/12b11f37-ec8f-4f9a-b1a3-e2d9ecb89f2c"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/734312a6-ef45-4e54-9522-44ca628cd133.json",
+ "type":"Canvas",
+ "label":"fol. 122v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/734312a6-ef45-4e54-9522-44ca628cd133.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/734312a6-ef45-4e54-9522-44ca628cd133.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/734312a6-ef45-4e54-9522-44ca628cd133",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/734312a6-ef45-4e54-9522-44ca628cd133"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/68fe95a9-e0e2-42a1-b01c-c0cc534c9faf.json",
+ "type":"Canvas",
+ "label":"fol. 123r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/68fe95a9-e0e2-42a1-b01c-c0cc534c9faf.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/68fe95a9-e0e2-42a1-b01c-c0cc534c9faf.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/68fe95a9-e0e2-42a1-b01c-c0cc534c9faf",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/68fe95a9-e0e2-42a1-b01c-c0cc534c9faf"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2e00f7bd-e754-449a-873c-fc9a45832b65.json",
+ "type":"Canvas",
+ "label":"fol. 123v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/2e00f7bd-e754-449a-873c-fc9a45832b65.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2e00f7bd-e754-449a-873c-fc9a45832b65.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/2e00f7bd-e754-449a-873c-fc9a45832b65",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/2e00f7bd-e754-449a-873c-fc9a45832b65"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/65213565-2e23-46df-b2ec-1dd37779470c.json",
+ "type":"Canvas",
+ "label":"fol. 124r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/65213565-2e23-46df-b2ec-1dd37779470c.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/65213565-2e23-46df-b2ec-1dd37779470c.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/65213565-2e23-46df-b2ec-1dd37779470c",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/65213565-2e23-46df-b2ec-1dd37779470c"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/118e1c2e-3848-43de-b1d2-d2be2f40b235.json",
+ "type":"Canvas",
+ "label":"fol. 124v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/118e1c2e-3848-43de-b1d2-d2be2f40b235.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/118e1c2e-3848-43de-b1d2-d2be2f40b235.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/118e1c2e-3848-43de-b1d2-d2be2f40b235",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/118e1c2e-3848-43de-b1d2-d2be2f40b235"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3d68a1aa-26d7-464e-adf3-26509cac1e28.json",
+ "type":"Canvas",
+ "label":"fol. 125r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/3d68a1aa-26d7-464e-adf3-26509cac1e28.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3d68a1aa-26d7-464e-adf3-26509cac1e28.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3d68a1aa-26d7-464e-adf3-26509cac1e28",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3d68a1aa-26d7-464e-adf3-26509cac1e28"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/171cc1ec-f3c7-4788-9b97-ccf88d6a805a.json",
+ "type":"Canvas",
+ "label":"fol. 125v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/171cc1ec-f3c7-4788-9b97-ccf88d6a805a.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/171cc1ec-f3c7-4788-9b97-ccf88d6a805a.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/171cc1ec-f3c7-4788-9b97-ccf88d6a805a",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/171cc1ec-f3c7-4788-9b97-ccf88d6a805a"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/90986ade-e295-4af6-b148-571f779a78f7.json",
+ "type":"Canvas",
+ "label":"fol. 126r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/90986ade-e295-4af6-b148-571f779a78f7.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/90986ade-e295-4af6-b148-571f779a78f7.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/90986ade-e295-4af6-b148-571f779a78f7",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/90986ade-e295-4af6-b148-571f779a78f7"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/26afbb1b-e137-4915-9ffc-377ec16e4fb2.json",
+ "type":"Canvas",
+ "label":"fol. 126v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/26afbb1b-e137-4915-9ffc-377ec16e4fb2.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/26afbb1b-e137-4915-9ffc-377ec16e4fb2.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/26afbb1b-e137-4915-9ffc-377ec16e4fb2",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/26afbb1b-e137-4915-9ffc-377ec16e4fb2"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/856138d6-a1c2-47ab-9642-ab3fa7188e78.json",
+ "type":"Canvas",
+ "label":"fol. 127r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/856138d6-a1c2-47ab-9642-ab3fa7188e78.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/856138d6-a1c2-47ab-9642-ab3fa7188e78.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/856138d6-a1c2-47ab-9642-ab3fa7188e78",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/856138d6-a1c2-47ab-9642-ab3fa7188e78"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/62f369e5-a2ad-4a53-be4a-203250ffe8e0.json",
+ "type":"Canvas",
+ "label":"fol. 127v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/62f369e5-a2ad-4a53-be4a-203250ffe8e0.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/62f369e5-a2ad-4a53-be4a-203250ffe8e0.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/62f369e5-a2ad-4a53-be4a-203250ffe8e0",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/62f369e5-a2ad-4a53-be4a-203250ffe8e0"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3db3d646-a896-4a13-adca-ad572eabd0f0.json",
+ "type":"Canvas",
+ "label":"fol. 128r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/3db3d646-a896-4a13-adca-ad572eabd0f0.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3db3d646-a896-4a13-adca-ad572eabd0f0.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3db3d646-a896-4a13-adca-ad572eabd0f0",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3db3d646-a896-4a13-adca-ad572eabd0f0"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ec1c15a2-701b-4718-b00a-fd9b781f09e3.json",
+ "type":"Canvas",
+ "label":"fol. 128v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/ec1c15a2-701b-4718-b00a-fd9b781f09e3.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ec1c15a2-701b-4718-b00a-fd9b781f09e3.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/ec1c15a2-701b-4718-b00a-fd9b781f09e3",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/ec1c15a2-701b-4718-b00a-fd9b781f09e3"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/009dfb69-6cb2-4241-be74-9ef9b3090f4b.json",
+ "type":"Canvas",
+ "label":"fol. 129r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/009dfb69-6cb2-4241-be74-9ef9b3090f4b.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/009dfb69-6cb2-4241-be74-9ef9b3090f4b.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/009dfb69-6cb2-4241-be74-9ef9b3090f4b",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/009dfb69-6cb2-4241-be74-9ef9b3090f4b"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/756f154d-2005-4364-a5d4-546f42dbc1c2.json",
+ "type":"Canvas",
+ "label":"fol. 129v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/756f154d-2005-4364-a5d4-546f42dbc1c2.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/756f154d-2005-4364-a5d4-546f42dbc1c2.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/756f154d-2005-4364-a5d4-546f42dbc1c2",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/756f154d-2005-4364-a5d4-546f42dbc1c2"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c77a8ff0-c1ee-4f38-b265-79da16746b6a.json",
+ "type":"Canvas",
+ "label":"fol. 130r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/c77a8ff0-c1ee-4f38-b265-79da16746b6a.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c77a8ff0-c1ee-4f38-b265-79da16746b6a.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c77a8ff0-c1ee-4f38-b265-79da16746b6a",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c77a8ff0-c1ee-4f38-b265-79da16746b6a"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f5bdb96d-b8e9-4440-91c0-bdc85b173dd8.json",
+ "type":"Canvas",
+ "label":"fol. 130v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/f5bdb96d-b8e9-4440-91c0-bdc85b173dd8.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f5bdb96d-b8e9-4440-91c0-bdc85b173dd8.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f5bdb96d-b8e9-4440-91c0-bdc85b173dd8",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f5bdb96d-b8e9-4440-91c0-bdc85b173dd8"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/70779473-4303-4e0d-b66f-867b36254311.json",
+ "type":"Canvas",
+ "label":"fol. 131r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/70779473-4303-4e0d-b66f-867b36254311.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/70779473-4303-4e0d-b66f-867b36254311.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/70779473-4303-4e0d-b66f-867b36254311",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/70779473-4303-4e0d-b66f-867b36254311"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f28014e6-a3f5-422b-9a81-37fc313f54df.json",
+ "type":"Canvas",
+ "label":"fol. 131v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/f28014e6-a3f5-422b-9a81-37fc313f54df.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f28014e6-a3f5-422b-9a81-37fc313f54df.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f28014e6-a3f5-422b-9a81-37fc313f54df",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f28014e6-a3f5-422b-9a81-37fc313f54df"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/49bf22bf-91d7-4f78-96ef-73cf082700e6.json",
+ "type":"Canvas",
+ "label":"fol. 132r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/49bf22bf-91d7-4f78-96ef-73cf082700e6.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/49bf22bf-91d7-4f78-96ef-73cf082700e6.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/49bf22bf-91d7-4f78-96ef-73cf082700e6",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/49bf22bf-91d7-4f78-96ef-73cf082700e6"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4f393182-f9e2-41e2-9166-d2acc15ecf02.json",
+ "type":"Canvas",
+ "label":"fol. 132v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/4f393182-f9e2-41e2-9166-d2acc15ecf02.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4f393182-f9e2-41e2-9166-d2acc15ecf02.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/4f393182-f9e2-41e2-9166-d2acc15ecf02",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/4f393182-f9e2-41e2-9166-d2acc15ecf02"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/66f62ec7-ad90-44c3-b41a-428769e33807.json",
+ "type":"Canvas",
+ "label":"fol. 133r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/66f62ec7-ad90-44c3-b41a-428769e33807.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/66f62ec7-ad90-44c3-b41a-428769e33807.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/66f62ec7-ad90-44c3-b41a-428769e33807",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/66f62ec7-ad90-44c3-b41a-428769e33807"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9a9e13e5-2aef-49ea-8567-038802fd1701.json",
+ "type":"Canvas",
+ "label":"fol. 133v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/9a9e13e5-2aef-49ea-8567-038802fd1701.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9a9e13e5-2aef-49ea-8567-038802fd1701.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9a9e13e5-2aef-49ea-8567-038802fd1701",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9a9e13e5-2aef-49ea-8567-038802fd1701"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9cd1c304-0b19-45dc-bfe3-99c09efb4303.json",
+ "type":"Canvas",
+ "label":"fol. 134r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/9cd1c304-0b19-45dc-bfe3-99c09efb4303.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9cd1c304-0b19-45dc-bfe3-99c09efb4303.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9cd1c304-0b19-45dc-bfe3-99c09efb4303",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9cd1c304-0b19-45dc-bfe3-99c09efb4303"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/84bc8934-7f76-4ebe-9127-ae1c52a7b5f4.json",
+ "type":"Canvas",
+ "label":"fol. 134v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/84bc8934-7f76-4ebe-9127-ae1c52a7b5f4.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/84bc8934-7f76-4ebe-9127-ae1c52a7b5f4.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/84bc8934-7f76-4ebe-9127-ae1c52a7b5f4",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/84bc8934-7f76-4ebe-9127-ae1c52a7b5f4"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f896fcd3-00c8-4519-9a83-6817fd08aff0.json",
+ "type":"Canvas",
+ "label":"fol. 135r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/f896fcd3-00c8-4519-9a83-6817fd08aff0.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f896fcd3-00c8-4519-9a83-6817fd08aff0.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f896fcd3-00c8-4519-9a83-6817fd08aff0",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f896fcd3-00c8-4519-9a83-6817fd08aff0"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e0d550f7-2996-47cb-b230-ed206bc1ad9b.json",
+ "type":"Canvas",
+ "label":"fol. 135v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/e0d550f7-2996-47cb-b230-ed206bc1ad9b.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e0d550f7-2996-47cb-b230-ed206bc1ad9b.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e0d550f7-2996-47cb-b230-ed206bc1ad9b",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e0d550f7-2996-47cb-b230-ed206bc1ad9b"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0016c06f-4381-428d-bee3-cc2a37792013.json",
+ "type":"Canvas",
+ "label":"fol. 136r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/0016c06f-4381-428d-bee3-cc2a37792013.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0016c06f-4381-428d-bee3-cc2a37792013.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/0016c06f-4381-428d-bee3-cc2a37792013",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/0016c06f-4381-428d-bee3-cc2a37792013"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/83f29292-c99b-4501-b87f-65dd20e0df28.json",
+ "type":"Canvas",
+ "label":"fol. 136v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/83f29292-c99b-4501-b87f-65dd20e0df28.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/83f29292-c99b-4501-b87f-65dd20e0df28.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/83f29292-c99b-4501-b87f-65dd20e0df28",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/83f29292-c99b-4501-b87f-65dd20e0df28"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1cc3d3d8-9959-410f-9ba5-b4085b63d59f.json",
+ "type":"Canvas",
+ "label":"fol. 137r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/1cc3d3d8-9959-410f-9ba5-b4085b63d59f.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1cc3d3d8-9959-410f-9ba5-b4085b63d59f.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/1cc3d3d8-9959-410f-9ba5-b4085b63d59f",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/1cc3d3d8-9959-410f-9ba5-b4085b63d59f"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1057ddc0-e4cc-4e3e-9bd6-a60b355068f4.json",
+ "type":"Canvas",
+ "label":"fol. 137v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/1057ddc0-e4cc-4e3e-9bd6-a60b355068f4.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1057ddc0-e4cc-4e3e-9bd6-a60b355068f4.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/1057ddc0-e4cc-4e3e-9bd6-a60b355068f4",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/1057ddc0-e4cc-4e3e-9bd6-a60b355068f4"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6e322ef5-1a03-4614-8ae3-86400bd9ae0c.json",
+ "type":"Canvas",
+ "label":"fol. 138r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/6e322ef5-1a03-4614-8ae3-86400bd9ae0c.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6e322ef5-1a03-4614-8ae3-86400bd9ae0c.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/6e322ef5-1a03-4614-8ae3-86400bd9ae0c",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/6e322ef5-1a03-4614-8ae3-86400bd9ae0c"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f3eb83c9-e401-4c7c-a47f-8d49277ce508.json",
+ "type":"Canvas",
+ "label":"fol. 138v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/f3eb83c9-e401-4c7c-a47f-8d49277ce508.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f3eb83c9-e401-4c7c-a47f-8d49277ce508.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f3eb83c9-e401-4c7c-a47f-8d49277ce508",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f3eb83c9-e401-4c7c-a47f-8d49277ce508"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/bd0ac78d-77fc-4a19-8dc8-cca3680c0178.json",
+ "type":"Canvas",
+ "label":"fol. 139r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/bd0ac78d-77fc-4a19-8dc8-cca3680c0178.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/bd0ac78d-77fc-4a19-8dc8-cca3680c0178.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/bd0ac78d-77fc-4a19-8dc8-cca3680c0178",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/bd0ac78d-77fc-4a19-8dc8-cca3680c0178"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/151013e9-dc98-44b3-8596-26eb6277ca9e.json",
+ "type":"Canvas",
+ "label":"fol. 139v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/151013e9-dc98-44b3-8596-26eb6277ca9e.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/151013e9-dc98-44b3-8596-26eb6277ca9e.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/151013e9-dc98-44b3-8596-26eb6277ca9e",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/151013e9-dc98-44b3-8596-26eb6277ca9e"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d22779cb-48fd-4110-aacb-8c63c8a03e6e.json",
+ "type":"Canvas",
+ "label":"fol. 140r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/d22779cb-48fd-4110-aacb-8c63c8a03e6e.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d22779cb-48fd-4110-aacb-8c63c8a03e6e.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d22779cb-48fd-4110-aacb-8c63c8a03e6e",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d22779cb-48fd-4110-aacb-8c63c8a03e6e"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/22030ca1-f3e9-408a-a3d4-7d5cc203f2ef.json",
+ "type":"Canvas",
+ "label":"fol. 140v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/22030ca1-f3e9-408a-a3d4-7d5cc203f2ef.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/22030ca1-f3e9-408a-a3d4-7d5cc203f2ef.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/22030ca1-f3e9-408a-a3d4-7d5cc203f2ef",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/22030ca1-f3e9-408a-a3d4-7d5cc203f2ef"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c5acf334-60ca-4768-a60b-ca841b592d98.json",
+ "type":"Canvas",
+ "label":"fol. 141r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/c5acf334-60ca-4768-a60b-ca841b592d98.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c5acf334-60ca-4768-a60b-ca841b592d98.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c5acf334-60ca-4768-a60b-ca841b592d98",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c5acf334-60ca-4768-a60b-ca841b592d98"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3a0ee49b-8fff-4965-800b-5c79f65aa864.json",
+ "type":"Canvas",
+ "label":"fol. 141v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/3a0ee49b-8fff-4965-800b-5c79f65aa864.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3a0ee49b-8fff-4965-800b-5c79f65aa864.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3a0ee49b-8fff-4965-800b-5c79f65aa864",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3a0ee49b-8fff-4965-800b-5c79f65aa864"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b60233ee-3b5b-4ee2-9aa5-0437df7c94f6.json",
+ "type":"Canvas",
+ "label":"Inside lower board",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/b60233ee-3b5b-4ee2-9aa5-0437df7c94f6.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b60233ee-3b5b-4ee2-9aa5-0437df7c94f6.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b60233ee-3b5b-4ee2-9aa5-0437df7c94f6",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b60233ee-3b5b-4ee2-9aa5-0437df7c94f6"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/901b6603-cad0-4ef4-9d10-30ffdef8f539.json",
+ "type":"Canvas",
+ "label":"Lower board",
+ "width":5428,
+ "height":6444,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/901b6603-cad0-4ef4-9d10-30ffdef8f539.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/901b6603-cad0-4ef4-9d10-30ffdef8f539.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/901b6603-cad0-4ef4-9d10-30ffdef8f539",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5428,
+ "height":6444,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/901b6603-cad0-4ef4-9d10-30ffdef8f539"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/20cb8b22-a44e-4e13-95d9-ad3fd42b9a59.json",
+ "type":"Canvas",
+ "label":"Spine",
+ "width":4834,
+ "height":7230,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/20cb8b22-a44e-4e13-95d9-ad3fd42b9a59.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/20cb8b22-a44e-4e13-95d9-ad3fd42b9a59.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/20cb8b22-a44e-4e13-95d9-ad3fd42b9a59",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":4834,
+ "height":7230,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/20cb8b22-a44e-4e13-95d9-ad3fd42b9a59"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/5054db62-dea6-423d-ac04-0769d31e20b6.json",
+ "type":"Canvas",
+ "label":"fol. 143v",
+ "width":5428,
+ "height":6454,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/5054db62-dea6-423d-ac04-0769d31e20b6.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/5054db62-dea6-423d-ac04-0769d31e20b6.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/5054db62-dea6-423d-ac04-0769d31e20b6",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5428,
+ "height":6454,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/5054db62-dea6-423d-ac04-0769d31e20b6"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/677d3773-77a5-426d-baa4-12646c073e6e.json",
+ "type":"Canvas",
+ "label":"fol. 144r",
+ "width":5428,
+ "height":6454,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/677d3773-77a5-426d-baa4-12646c073e6e.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/677d3773-77a5-426d-baa4-12646c073e6e.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/677d3773-77a5-426d-baa4-12646c073e6e",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5428,
+ "height":6454,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/677d3773-77a5-426d-baa4-12646c073e6e"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "structures":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/range/a4120d22-b62f-4b57-861d-43c839c790a0/LOG_0000",
+ "type":"Range",
+ "label":{
+ "en":[
+ "Songs and hymns (noted)"
+ ]
+ },
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/range/a4120d22-b62f-4b57-861d-43c839c790a0/LOG_0001",
+ "type":"Range",
+ "label":{
+ "en":[
+ "Index"
+ ]
+ },
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b9f0b9e9-e8c2-4f9c-a5b2-2848bd8e7d3c.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6c413931-c1c2-43bd-927c-80cce7592dfa.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/80662a77-1f69-4718-9a0d-37389c6e1642.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/bbbeb343-882a-465c-9e9f-71022d998ed2.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b0b3d72d-315d-4dc6-aad0-f615b8ee74f7.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/74c20173-e32e-4b62-b994-595a61fb6bf0.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ab7412b4-d4c3-468f-9b2b-69614c2446ea.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/964a96df-c6bc-4459-a56d-b4880860f83a.json",
+ "type":"Canvas"
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/range/a4120d22-b62f-4b57-861d-43c839c790a0/LOG_0002",
+ "type":"Range",
+ "label":{
+ "en":[
+ "Songs and hymns"
+ ]
+ },
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7448e4cf-97f1-4b56-97ef-89d933761bff.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/45d5ff8c-075d-44f7-9bee-fbee11cce4f1.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1d5861d1-d36c-4ea8-8df4-96c5316311fa.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/aebd4b06-a946-4099-b6bf-0f7c2a5eb9b9.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/df8c9098-05d1-46ba-a556-7dc16bb127fb.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b561eb03-775e-41e9-b85c-9e67c2a5d680.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6db36cfb-b893-435b-88e9-91ec27b5a3b9.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b55b9e95-71ec-4602-9745-b12c5ef91be4.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0f2c5554-ba34-46ec-9048-905d8a2fbeb5.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2152a20a-e2cb-47b7-b864-abc630d1903a.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/48a31253-3e27-4194-b300-fe5569932f46.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c1ee9124-fa1e-4c44-9b73-e36b6d6d572f.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b7c2bf85-889a-4160-b564-841145394a73.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d5e7aef3-f2ee-41fb-9db7-076af836adf2.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d6fa5889-5152-4589-9b2d-50311866917d.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ab352234-428f-4af6-a52d-738c50e260c8.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f93279af-5947-402e-9d11-f64231886c0a.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/65a65810-03ed-455a-81b3-47a96ed2d89d.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f9b562aa-5d30-4e1e-9e76-3f78b56bbbc0.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7b4d6310-b0bb-4ea4-ad98-478490405e5f.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/729715fc-7941-4d47-8a53-91e929a7d60d.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/660e3194-a6a4-4a60-aece-436a71d20071.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/acccb9f9-473e-4c7c-b9a7-529eb1782158.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9e51909a-c802-42e8-b12c-98a234246a68.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/67285312-5158-43fb-9639-cba732372a9f.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4eb3f79a-4be3-4544-8cbd-9d42b556e8d4.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8019239f-628c-4c89-a266-3ae52b0bf6d8.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/cb92bbe9-35af-465a-a1a1-85530f71fd0f.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/39a5d7a8-8a2b-4b64-b8b2-25dbba301151.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/44b61821-29c5-4372-85a9-3e6f6ad7aee2.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d926f23d-8dd7-4f06-b0db-34c751f8da18.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/af9a67c4-781e-4678-a253-f15a69f88bcb.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/52ad4b81-0392-48c5-9927-18c447c6c379.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/23f11ecb-2373-4445-b632-f103532f1330.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/dbdfe2a4-8cff-457f-9e40-938197b111e8.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/dce4c5ef-1f84-4a02-951e-a23f15025389.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/feb5f14a-b97d-4a6a-9687-f55a3cfb0466.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6617ac2a-ee81-48a7-a6a8-9cd70a4987be.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0d8a0e96-cd3a-4b99-9d34-b314c56707c1.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8f7fe062-8be4-4582-ae3c-edfc1ace6b72.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b4f9b8cf-747f-4432-8287-b6aa471ceaca.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/645abc0c-b005-48e6-9abe-1659bbd23c74.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/487bd2a5-c828-40e8-b235-8f91503000b9.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e8d69bbe-106a-40de-a664-0d8ad62b9971.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d8750bbe-665a-4ef1-8972-18b861404234.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/a7ced05e-e39f-4d4c-b632-fcb295ba7b94.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/772a9be1-d0d5-4455-9267-23af1b0a2064.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ff56505b-e1dc-40a4-82ae-52d5abbf96be.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/34eb9ca0-4270-4303-a345-010e94c34c4c.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b188b953-860b-4b7f-99fd-92759da2e0dc.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c45af702-b631-4c99-9cbb-2bae270f0010.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4913ab2e-783b-4ebe-8beb-6c80ca9ec0d0.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/10ca150c-d75c-4947-97ab-27fe661fe1ce.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/03a15174-1966-4efd-9a7f-a955d43b997c.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c82355e6-1749-45f6-90d8-d7df566f8818.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6dea8037-41e0-4b2f-ac4c-a6e00306858c.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8aea56fb-05bd-49c6-aad7-bbd8c7ebdfc7.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/742ab4ac-5459-48df-803c-bfcff7d0f68e.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3e904d06-41e5-4156-a256-399038e499a3.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/25c55c2d-a168-49fb-9f41-23f405e36357.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e1782c78-943f-4424-933e-c0c9e8ec8da1.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b9453e0b-b26f-4c90-9c36-f6d4277775cc.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/bb233de9-6cea-41e9-90c7-9fac60f6ec3e.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/cb65073e-d707-4b60-9c83-3b5fe37e8ce5.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e6effe1c-bfa1-4511-81a0-b98fdd528fda.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7b07486c-adb4-47bb-be47-f4700475bf21.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/73bced49-8e7a-40f9-b743-4db90d78a1b0.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/848f63c6-b718-48f7-a6e2-063a9a9112fe.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2bc47dd8-379c-4b3d-8f2a-cad9dc320480.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9abe2aa6-290a-4743-a4d6-6c5d57eb1287.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/a211289d-a58a-41bc-9571-5d5f735b132a.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3c1a3673-361d-4256-88c7-cd9bc8c75a54.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/42bcfac8-97dc-4290-b9f8-fdea45fc0ef2.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/5f0c64e8-0fcb-488e-a114-1e5d5cc03f6c.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/43d7f020-acd5-494d-a15c-45a3b1af6f6d.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b011fe03-2dcf-4f14-afee-982de8b50dea.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9a82001b-5aff-4650-80b3-c1480f120188.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e642d7e0-120f-4db1-a8ea-34028f3ce1cd.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e7ea9e39-22f9-494f-8795-cab058b67649.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b14e1791-a956-4802-873f-51d464ef023e.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d37e12f9-a0a5-49e9-92e6-ba0c76976f8a.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/17d6eb57-36cd-4410-b9f8-cb78c2016cf7.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/518a47a7-171b-47ed-92ba-36e8c93d47a2.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/93e0c1b6-294f-48e0-8c3a-b9adb06dee83.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c7917868-3c99-4b48-ac90-14bd6c72ef38.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d6200057-df91-4a9c-8875-542684ec6bbb.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/5887ebcf-bb15-4fe9-81b4-a48ba6c6d7a1.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9858a99f-c691-4bfe-aa34-131975ff1991.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3d5774ae-d0ae-47b0-a57d-d6ba1cfa00bc.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/5b9ba09a-0e35-457a-8d09-dee2b70c963c.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/002d69f7-59ef-4041-8f9a-adbaf9356813.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/86ad8b53-7f69-4d4c-9901-735d8e4018ff.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c3bc794d-0c7c-4441-943c-558c14419744.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/817a8bd7-682b-460b-a557-fad28ea087ef.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/864a5503-4607-419b-9100-554042f0a3d5.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/631f053a-7f61-4b88-b1dd-cd4f9f132add.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3939c458-ffb2-462c-bdad-b79afd08a886.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/828195f1-db38-409f-85d4-a9bc4815cf76.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3d5401a0-972a-4c70-8ecf-72c526d32e64.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3c83884f-fb03-4afe-93a7-6eed4ec4f3ae.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f54aeaab-a9f7-4a1d-8bba-220a8cd66cf9.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/67ce0e3b-f56c-4520-8dd8-a4b5091e63d0.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b072dc64-688a-4e49-b859-731bd90a4d51.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/a15c8cc6-0fde-4280-9c89-1b310442b4dc.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f051b053-8038-4597-9fd1-6527c2b35520.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e3ea245a-2f0a-4dc1-b093-574c05d787db.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8bd5c5b5-c7ec-47b9-ae09-1773607f40a4.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/072d525b-7786-4cef-a926-7310e9591643.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/50ccf679-a130-487b-b8e5-67692e39c374.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8834ce15-64b6-4bfc-84c1-5752f7db0052.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/dbed7148-a143-42df-845d-50ddc24a6a1e.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/fbeb4b2d-9999-4a56-9eb0-d947b060af1d.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b09f7f92-cc26-4243-a272-f4006c025474.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9a6829ac-fdb8-447d-9cf9-5b12dea0ebdd.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e61c2399-5aa3-43e4-8b0c-f0af15ef9cff.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2638e9fc-e245-4473-b4b4-8c5dc322dba2.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/315767a2-b5bb-48aa-9c24-5dcc857a6bf5.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7f32f88d-1f99-474f-94f3-2ef7103c0bb1.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/605f64f9-b78b-45d6-b86d-2b63c7f5dde1.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6c88c045-18be-436b-903f-c71fb81c258d.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/56c1ff67-2f64-40da-a398-f6b109f14ece.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/87ec8879-bf54-4725-819a-1adea76a2b15.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ae6a9944-7eaf-49be-9aa8-8077906b2c7b.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/72ed5324-3b48-49ed-9367-2b317a90a25a.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c90a2345-4ef1-466d-9ebe-a71c77a7d44d.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/40dc6af1-8dd1-4005-85cc-cda5ced4ac38.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/296a75e3-df33-4479-9b9f-ee09b474dbc3.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d78869d4-5826-4ba1-8fb5-8f5b6a6af8ce.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/528e1542-160b-4629-a996-a762975ff81b.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/252d22ad-bacb-4b4f-b24c-5fee273d5fde.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/641514b6-cfa5-4ba7-8c01-0f7ebe9de86a.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c5dfb7bf-7ecc-4972-96ea-8e7aacd45917.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/60776fee-60e7-4088-9c3b-a02ede2da030.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7e352491-a25c-4be2-8cd1-6fba09c738dd.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4ed20c7c-41f7-479b-a3fe-d57305dd5671.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/93d0760f-5d3d-432f-9e2c-aef63fe10633.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0de84d4b-e360-4757-bdf1-49038423c1d2.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/de794763-67eb-4698-af46-c0f4e567890b.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0c8697b3-cc9d-4065-a157-ba66c34cbc8e.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/eaaae3c3-f5d0-4afd-b66f-8fb6307b9035.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/82a6c26b-d7af-4b21-b21d-ec12748eff60.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6fb1efde-087d-4dfe-9fc1-19011160b7d9.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6d845d20-3447-4375-9463-d887885b4f73.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9e6fe00c-e3b3-4671-a9ea-3ef86551e992.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/a735a4a8-1bb7-43fb-8a4c-7226bb4d69b3.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/449ffe7d-83cc-44e5-84de-8369813f587d.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8a7853c4-2495-4c42-b919-350aa8c1c034.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/81c7a3ff-7823-4ef5-98db-2528d340c4d6.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b8bc5388-495f-4039-a40a-a00da316c0f8.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/39b3ba3e-75bd-4ccb-84ea-c74abbf6fa99.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ed38fbc0-bc15-4560-bc78-6d0d64ef331f.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/fdb3753b-1afc-4268-9dec-f5c53c32ab5a.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/70de0918-de25-4be2-9f0e-944e95b76dff.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/10e3c88e-ade0-4899-876e-b4315464d5cd.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e5d5a720-e8fb-4460-9f64-eaa281f0257a.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d4f7e156-194a-4bf6-b319-35d8ea02eba4.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/95c4b7c9-02a5-4a6b-b9ef-a5be43fbe347.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/dbb721b5-6560-4bc2-b27d-5d8f77ac1e9c.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1aace697-14f2-4974-b489-ff20c2bc0bb9.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/270f9593-83ef-4e8b-b634-eb9ca14ce1c8.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/321036ea-3ffc-4a98-8503-422eb42014b6.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2cdf49da-90c3-42da-85bf-f93018377520.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f8a775d6-a450-470b-b182-a5ad71e64daa.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/19cfe12a-1bc4-43c6-b762-22bcf57aa766.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4faae3b8-e03c-48d4-9798-18f0132f05f2.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e8c4fea9-8cdb-421a-bcd6-d6f8578eba0c.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f07819e6-3d24-47ca-8b6e-b2346415e69e.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/610bd1c7-2d25-4427-85b2-a6e3be102dd7.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/59a241b8-a622-40c5-a583-64e49e392a14.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/73ba5533-40d4-4052-aef6-0106082ec70a.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/734f98e0-a8ec-4a96-8b3e-c79613c57450.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2294268c-519c-4934-9632-6bfd4081cdc3.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/011de259-954d-41a7-8547-6c8bc787de34.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/311f851d-b95d-4448-a3ad-178d6cbd0f10.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/71a8bd5d-68e0-4b13-b254-498fafe4c7c8.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1ebd1573-06c7-406b-aef7-7e3ad373b79a.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/dc787d96-3b32-453c-84bf-a5866b3daeaa.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/72f24244-c4c4-4412-ae03-a875af6804fd.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8dbd3588-c816-44b2-a9ae-493a7c670dd5.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/dc1afcf9-a994-4bb8-8d4f-be30648a7012.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b8ed8a0e-9dd9-418c-956a-5d69388ec3d9.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/338aca83-53c7-4d3c-acfb-6d5535a8d13d.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e82fef84-c9ca-488a-af51-95c3e44a72fa.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9f4aa883-6666-4885-b1d0-f42396adaf63.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/bdefccbf-adcd-4661-9e59-22ddb0790a09.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0da8b79a-337a-4b10-8c3c-1320ebeac504.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/909e6e80-14e1-46f6-80a8-be6473fd92aa.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/58e1398d-e1ce-40de-b3a0-3b9ce41d7743.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/10a62100-b8f7-4218-9f72-b9502a65d03d.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/81fbdbd5-5037-4ffe-83c7-2ed9a3975862.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/73b87193-d7b9-4fe2-a622-d23be53c16fa.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/25ba941c-203b-44f1-8351-63a6ff316a2b.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/5cd1bc3b-7923-4c30-a55c-4dc5f75de0ab.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c7683ba6-129b-4313-a636-f87c35f07125.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/60d5d2b9-9d5b-427c-b974-24d5f47695e2.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8b8faf36-5e38-424f-907a-d7fb87e9c9ec.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2e4fb49d-b308-4371-8d29-c078d8c52821.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f2c4d1cf-5a79-4363-b9dc-6a72bcbb34a6.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/96b61d35-3386-4be4-8b9f-a5fc4ce9f839.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d3a65fd0-dbeb-4186-b803-b7e23fef65a4.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ce4c8ceb-fae7-4d37-ba19-39a273d776e8.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/827cb250-d945-4791-980a-a5f5e99d710e.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/a8bdeafe-3a3c-4ca8-b93f-08c40cf5b15f.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/415103aa-24a7-4dfa-b8ee-db7b434e344b.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3c45b0fe-d515-4502-bad0-e6b22983b0e4.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c534af33-1766-47ca-a7a2-545a95ada414.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1c94e516-3e0f-4ceb-981c-3396cba302ae.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4353d4b7-0b57-4e37-92d5-d6f8337f431a.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c48b09d7-2f41-4e5f-bc1b-d59407e1df87.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7bc09117-fe22-472e-8d9c-1a120f649530.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8249bbe0-b4e2-4ce0-a73f-649dcf343cad.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/82666162-0f2f-4e4a-8618-7e0845d9ad46.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/fc597511-a5a4-47ad-b5ef-2f2700ea8202.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9e48d39b-a350-4f2f-9900-091ee9938c83.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b12cf765-42a5-4bb4-a02f-44b6f81bb428.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/df626bae-a722-4a99-99e1-e7ee3eba22f6.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/aa9520f1-9340-4035-bb9b-9497279358e7.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8b39d130-6920-48b5-bced-eed56f8364be.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7f5b520a-5eb4-4450-9ef5-07ad5f71258e.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e20b3d3a-e323-42c4-9d05-1c3d53f2a980.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/51242d25-fd28-4f79-a75c-31166df34186.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9eb1a5fc-5752-41f4-8cf8-62df8453ebcc.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ead9f379-7b5b-4583-924d-9c2bbd2e2f88.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7d84954a-540f-4f9c-a03c-56e598116f10.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/cd31b81a-aa3c-4b1a-a65e-4003da913587.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/098fd3cf-566d-41b4-be41-e212b4a87a01.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/318316be-3ede-45ff-b849-56b2b370ed4e.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f534332d-8dc7-492c-9a0d-f9c8a3be0b24.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/59ae477c-7942-4f8e-a216-654d3279c541.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c3b8895a-2de2-41f4-9682-69a479b08733.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/52073aea-d345-4541-9ba4-717b420ca51c.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/61b68955-f103-4ec0-859e-6cd0f3c44a6c.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/05f83589-f9bf-4c46-84d4-ad1e303b05a7.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/79103d1c-8628-412b-acba-6d4aef8e9377.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0b3747ce-6789-41b7-86b9-cb5bf493b3f6.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0ec48bee-4a02-4bcf-a62c-c08779e74da4.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c1168898-6c26-40ca-983e-2c73bb74cf61.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/323f1382-7eb2-4d86-b0bd-e88bb332502e.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4da1cd54-f6e3-4fe8-9e84-b106c7515f31.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1926c727-923f-4bdf-8872-a15c43bf4abc.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c04bc704-b2e2-41b1-95d3-f2aa887f2d37.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c0d677c5-a0d2-4ed9-aecb-54d11169107a.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/12b11f37-ec8f-4f9a-b1a3-e2d9ecb89f2c.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/734312a6-ef45-4e54-9522-44ca628cd133.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/68fe95a9-e0e2-42a1-b01c-c0cc534c9faf.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2e00f7bd-e754-449a-873c-fc9a45832b65.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/65213565-2e23-46df-b2ec-1dd37779470c.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/118e1c2e-3848-43de-b1d2-d2be2f40b235.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3d68a1aa-26d7-464e-adf3-26509cac1e28.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/171cc1ec-f3c7-4788-9b97-ccf88d6a805a.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/90986ade-e295-4af6-b148-571f779a78f7.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/26afbb1b-e137-4915-9ffc-377ec16e4fb2.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/856138d6-a1c2-47ab-9642-ab3fa7188e78.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/62f369e5-a2ad-4a53-be4a-203250ffe8e0.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3db3d646-a896-4a13-adca-ad572eabd0f0.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ec1c15a2-701b-4718-b00a-fd9b781f09e3.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/009dfb69-6cb2-4241-be74-9ef9b3090f4b.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/756f154d-2005-4364-a5d4-546f42dbc1c2.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c77a8ff0-c1ee-4f38-b265-79da16746b6a.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f5bdb96d-b8e9-4440-91c0-bdc85b173dd8.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/70779473-4303-4e0d-b66f-867b36254311.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f28014e6-a3f5-422b-9a81-37fc313f54df.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/49bf22bf-91d7-4f78-96ef-73cf082700e6.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4f393182-f9e2-41e2-9166-d2acc15ecf02.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/66f62ec7-ad90-44c3-b41a-428769e33807.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9a9e13e5-2aef-49ea-8567-038802fd1701.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9cd1c304-0b19-45dc-bfe3-99c09efb4303.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/84bc8934-7f76-4ebe-9127-ae1c52a7b5f4.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f896fcd3-00c8-4519-9a83-6817fd08aff0.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e0d550f7-2996-47cb-b230-ed206bc1ad9b.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0016c06f-4381-428d-bee3-cc2a37792013.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/83f29292-c99b-4501-b87f-65dd20e0df28.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1cc3d3d8-9959-410f-9ba5-b4085b63d59f.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1057ddc0-e4cc-4e3e-9bd6-a60b355068f4.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6e322ef5-1a03-4614-8ae3-86400bd9ae0c.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f3eb83c9-e401-4c7c-a47f-8d49277ce508.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/bd0ac78d-77fc-4a19-8dc8-cca3680c0178.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/151013e9-dc98-44b3-8596-26eb6277ca9e.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d22779cb-48fd-4110-aacb-8c63c8a03e6e.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/22030ca1-f3e9-408a-a3d4-7d5cc203f2ef.json",
+ "type":"Canvas"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/test/navigation_test.js b/test/navigation_test.js
new file mode 100644
index 00000000..87aefd46
--- /dev/null
+++ b/test/navigation_test.js
@@ -0,0 +1,355 @@
+import Diva from '../source/js/diva';
+
+// jQuery mimic
+let el = document.getElementById.bind(document);
+
+describe('Navigation', function ()
+{
+ beforeEach(function ()
+ {
+ // reset event subscription so only current test is subscribed
+ Diva.Events.unsubscribeAll();
+
+ // recreate diva instance
+ let oldWrapper = document.getElementById('parent-wrapper');
+ oldWrapper.parentNode.removeChild(oldWrapper);
+ let newWrapper = document.createElement('div');
+ newWrapper.id = 'parent-wrapper';
+ newWrapper.setAttribute('style', 'width: 984px;');
+ let div = document.createElement('div');
+ div.id = 'diva-wrapper';
+ newWrapper.appendChild(div);
+ document.body.appendChild(newWrapper);
+ });
+
+ // FIXME: This test pattern is pretty iffy. There should be more robust ways to do this than
+ // with a timeout, and the toolbar and page index are kind of separate concerns.
+ var assertPageAfterScroll = function (scroll, index, divaInst, done, label)
+ {
+ var viewportObject = divaInst.getSettings().viewportObject;
+
+ if ('left' in scroll)
+ viewportObject.scrollLeft = scroll.left; // does this trigger a scroll event?
+
+ viewportObject.addEventListener('scroll', function handleScroll ()
+ {
+ setTimeout(function ()
+ {
+ var rendered = label;
+
+ var actualIndex = divaInst.getActivePageIndex();
+ assert.strictEqual(actualIndex, index, "The page should now be " + rendered + " (index of " + index + ")");
+
+ var actualRendered = el(divaInst.getSettings().selector + 'current-page').innerText;
+ assert.strictEqual(actualRendered, rendered, "The toolbar should have been updated");
+
+ viewportObject.removeEventListener('scroll', handleScroll);
+
+ done();
+ }, 10);
+ });
+
+ viewportObject.scrollTop = scroll.top;
+ };
+
+ var assertZoomIs = function (level, divaInst, controlName)
+ {
+ var actualLevel = divaInst.getZoomLevel();
+ var renderedLevel = el(divaInst.getSettings().selector + 'zoom-level').innerText;
+
+ assert.strictEqual(actualLevel, level, "Zoom level should now be " + level);
+ assert.strictEqual(renderedLevel, (level + 1).toFixed(), "The " + controlName + " label should have been updated");
+ };
+
+ it("Scrolling in document view", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assertPageAfterScroll({ top: 10000 }, 40, this, done, 'Folio 020r - Folio 021r');
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ zoomLevel: 0,
+ adaptivePadding: 0,
+ fixedPadding: 40
+ });
+ });
+
+ it("Scrolling in grid view", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assertPageAfterScroll({ top: 10000 }, 26, this, done, 'Folio 014r - Folio 014v');
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ inGrid: true,
+ pagesPerRow: 2,
+ fixedHeightGrid: false
+ });
+ });
+
+ it("Scrolling in book view", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assertPageAfterScroll({ left: 200, top: 10000 }, 18, this, done, 'Bm 019 - Bm 020');
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://ddmal.github.io/diva.js/try/demo/beromunster-iiif.json'
+ });
+ });
+
+ // Try to verify that zoom animation can be gracefully interrupted
+ it('View change during zoom animation', function (done)
+ {
+ var gridViewSeen = false;
+
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ Diva.Events.subscribe('ZoomLevelDidChange', function ()
+ {
+ this.enterGridView();
+ }, this.getInstanceId());
+
+ Diva.Events.subscribe('ViewDidSwitch', function (inGrid)
+ {
+ // debugger
+ if (inGrid)
+ {
+ gridViewSeen = true;
+ assert.strictEqual(this.getZoomLevel(), 3, 'Updated zoom level should be set');
+
+ defer(this.leaveGridView, this);
+ }
+ else
+ {
+ assert.isOk(gridViewSeen, 'Grid view should have been entered');
+ assert.strictEqual(this.getZoomLevel(), 3, 'Zoom level should still be 3');
+
+ done();
+ }
+ }, this.getInstanceId());
+
+ // debugger
+ this.zoomIn();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://ddmal.github.io/diva.js/try/demo/beromunster-iiif.json',
+ zoomLevel: 2
+ });
+
+ function defer(callback, ctx)
+ {
+ setTimeout(callback.bind(ctx), 10);
+ }
+ });
+
+ it("Zooming using +/- buttons", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ el(settings.selector + 'zoom-out-button').click();
+ assertZoomIs(4, this, 'zoom buttons');
+
+ setTimeout(() =>
+ {
+ el(settings.selector + 'zoom-in-button').click();
+ assertZoomIs(5, this, 'zoom buttons');
+
+ done();
+ }, 600);
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ zoomLevel: 5
+ });
+ });
+
+ it("Scrolling and subsequently zooming in Grid view", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function(settings)
+ {
+ settings.viewportObject.scrollTop = 10050;
+
+ setTimeout(() =>
+ {
+ assert.strictEqual(this.getActivePageIndex(), 165, "The current page should be 165 (10050px down, 1871px viewport)");
+
+ el(settings.selector + 'grid-out-button').click();
+ el(settings.selector + 'grid-out-button').click();
+ assert.strictEqual(this.getActivePageIndex(), 165, "The current page should still be 85");
+
+ for (var i = 0; i < 5; i++)
+ {
+ el(settings.selector + 'grid-in-button').click();
+ }
+ assert.strictEqual(this.getActivePageIndex(), 165, "The current page should still be 85");
+
+ done();
+ }, 10);
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ inGrid: true,
+ pagesPerRow: 5,
+ fixedHeightGrid: false
+ });
+ });
+
+ it("Changing pages per row in Grid view using +/- buttons", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ this.enterGridView();
+ for (var i = 0; i < 6; i++)
+ {
+ el(settings.selector + 'grid-in-button').click();
+ }
+ assert.strictEqual(this.getState().n, 8, "Pages per row should now be 8");
+ assert.strictEqual(el(settings.selector + 'pages-per-row').innerText, '8', "The grid buttons label should have been updated");
+
+ for (i = 0; i < 6; i++)
+ {
+ el(settings.selector + 'grid-out-button').click();
+ }
+ assert.strictEqual(this.getState().n, 2, "Pages per row should now be 2");
+ assert.strictEqual(el(settings.selector + 'pages-per-row').innerText, '2', "The grid buttons label should have been updated");
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ pagesPerRow: 2
+ });
+ });
+
+ it("Zooming by double-clicking", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ var dblClick = new MouseEvent('dblclick', {
+ 'view': window,
+ 'bubbles': true,
+ 'cancelable': true
+ });
+
+ setTimeout(function ()
+ {
+ diva.settings.innerElement.dispatchEvent(dblClick);
+ setTimeout(function ()
+ {
+ assert.strictEqual(settings.zoomLevel, 2, "Zoom level should now be 2");
+ assert.strictEqual(settings.activePageIndex, 100, "Should still be on page 100");
+ done();
+ }, 10);
+ }, 10);
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ zoomLevel: 1,
+ goDirectlyTo: 100
+ });
+ });
+
+ it("Switching between document and grid view", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.ok(!settings.inGrid, "Not in grid initially");
+ el(settings.selector + 'grid-icon').click();
+
+ // Click the grid icon, then wait a bit for the event to be triggered
+ setTimeout(function ()
+ {
+ assert.isOk(settings.inGrid, "Should now be in grid");
+ assert.isDefined(el(settings.selector + 'grid-out-button'), "Grid buttons should be visible (-)");
+ assert.isDefined(el(settings.selector + 'grid-in-button'), "Grid buttons should be visible (+)");
+ assert.isNull(el(settings.selector + 'zoom-out-buttons'), "Zoom buttons should not be visible (-)");
+ assert.isNull(el(settings.selector + 'zoom-in-buttons'), "Zoom buttons should not be visible (+)");
+ done();
+ }, 10);
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it("Switching between regular and fullscreen mode", function (done)
+ {
+ var initialX = null;
+ var initialY = null;
+
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.isOk(!settings.inFullscreen, "Not in fullscreen initially");
+
+ var state = this.getState();
+ initialX = state.x;
+ initialY = state.y;
+
+ this.enterFullscreenMode();
+ });
+
+ Diva.Events.subscribe('ModeDidSwitch', function (inFullscreen)
+ {
+ if (inFullscreen)
+ {
+ assert.isOk(this.getSettings().inFullscreen, "Should now be in fullscreen");
+ assert.isOk(document.body.classList.contains('diva-hide-scrollbar'), "Body should have the hide-scrollbar class");
+
+ this.leaveFullscreenMode();
+ }
+ else
+ {
+ var state = this.getState();
+
+ assert.isOk(!this.getSettings().inFullscreen, "Should now not be in fullscreen");
+ assert.strictEqual(state.x, initialX, 'Entering and leaving fullscreen mode should not change the x position');
+ assert.strictEqual(state.y, initialY, 'Entering and leaving fullscreen mode should not change the y position');
+
+ done();
+ }
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it("Jumping to page in Book view", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ this.gotoPageByIndex(5);
+
+ assert.isOk(settings.inBookLayout, "Should be in book layout");
+ assert.strictEqual(el(settings.selector + 'current-page').innerText, 'Folio 003r - Folio 004r', "Toolbar should indicate label for page 6");
+
+ setTimeout(() =>
+ {
+ assert.isOk(this.isPageInViewport(5), "Page 6 (index 5) should be loaded");
+
+ this.gotoPageByIndex(6);
+ assert.strictEqual(el(settings.selector + 'current-page').innerText, 'Folio 003r - Folio 004r', "Toolbar should stay the same");
+ assert.isOk(this.isPageInViewport(6), "Page 7 (index 6) should be loaded");
+
+ done();
+ }, 10);
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ inBookLayout: true
+ });
+ });
+});
\ No newline at end of file
diff --git a/test/parse-iiif-manifest_test.js b/test/parse-iiif-manifest_test.js
new file mode 100644
index 00000000..8e21873d
--- /dev/null
+++ b/test/parse-iiif-manifest_test.js
@@ -0,0 +1,68 @@
+import Diva from '../source/js/diva';
+let v2Manifest = require('./manifests/iiifv2.json');
+let v3Manifest = require('./manifests/iiifv3.json');
+
+describe('IIIF Manifest Parsing', function ()
+{
+ beforeEach(function ()
+ {
+ // recreate diva instance
+ let oldWrapper = document.getElementById('parent-wrapper');
+ oldWrapper.parentNode.removeChild(oldWrapper);
+ let newWrapper = document.createElement('div');
+ newWrapper.id = 'parent-wrapper';
+ newWrapper.setAttribute('style', 'width: 984px;');
+ let div = document.createElement('div');
+ div.id = 'diva-wrapper';
+ newWrapper.appendChild(div);
+ document.body.appendChild(newWrapper);
+
+ Diva.Events.unsubscribeAll();
+ });
+
+ it('can parse an IIIF v2 Manifest', function (done)
+ {
+ Diva.Events.subscribe('ObjectDidLoad', function (settings)
+ {
+ let m = settings.manifest;
+ assert.isOk(m, 'Manifest should exist');
+
+ assert.strictEqual(m.pages.length, 479, 'Manifest should have 479 pages');
+ assert.strictEqual(m.maxZoom, 5, 'Manifest should have maxZoom of 5');
+ assert.strictEqual(m.maxRatio, 1.584277299501586, 'Max ratio should be 1.5842...');
+ assert.strictEqual(m.minRatio, 1.4961486180335297, 'Min ratio should be 1.4961...');
+ assert.strictEqual(m.itemTitle, 'Salzinnes, CDN-Hsmu M2149.L4', 'Item title should be right');
+ assert.isFalse(m.paged, 'Should not be paged');
+ assert.strictEqual(m.pages[0].l, 'Folio 001r', 'First page should be Folio 001r');
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: v2Manifest
+ });
+ });
+
+ it('can parse an IIIF v3 Manifest', function (done)
+ {
+ Diva.Events.subscribe('ObjectDidLoad', function (settings)
+ {
+ let m = settings.manifest;
+ assert.isOk(m, 'Manifest should exist');
+
+ assert.strictEqual(m.pages.length, 299, 'Manifest should have 299 pages');
+ assert.strictEqual(m.maxZoom, 5, 'Manifest should have maxZoom of 5');
+ assert.strictEqual(m.maxRatio, 1.495655771617708, 'Max ratio should be 1.4956...');
+ assert.strictEqual(m.minRatio, 1.187177597641857, 'Min ratio should be 1.1871...');
+ assert.strictEqual(m.itemTitle, 'Bodleian Library: MS. Canon. Misc. 213', 'Item title should be right');
+ assert.isTrue(m.paged, 'Should be paged');
+ assert.strictEqual(m.pages[0].l, 'Upper board', 'First page should be Upper board');
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: v3Manifest
+ });
+ });
+});
diff --git a/test/public_test.js b/test/public_test.js
new file mode 100644
index 00000000..4c37210e
--- /dev/null
+++ b/test/public_test.js
@@ -0,0 +1,881 @@
+import Diva from '../source/js/diva';
+
+describe('Public Functions', function ()
+{
+ beforeEach(function ()
+ {
+ // recreate diva instance
+ let oldWrapper = document.getElementById('parent-wrapper');
+ oldWrapper.parentNode.removeChild(oldWrapper);
+ let newWrapper = document.createElement('div');
+ newWrapper.id = 'parent-wrapper';
+ newWrapper.setAttribute('style', 'width: 984px;');
+ let div = document.createElement('div');
+ div.id = 'diva-wrapper';
+ newWrapper.appendChild(div);
+ document.body.appendChild(newWrapper);
+
+ Diva.Events.unsubscribeAll();
+ });
+
+ it('getItemTitle()', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.strictEqual(this.getItemTitle(), "Salzinnes, CDN-Hsmu M2149.L4", "The title should be Salzinnes, CDN-Hsmu M2149.L4");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it("getCurrentPage()", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.strictEqual(this.getActivePageIndex(), 0, "Initial page should be 0");
+ this.gotoPageByIndex(200); // Go to page index 200
+ assert.strictEqual(this.getActivePageIndex(), 200, "The page index should now be 200");
+ this.gotoPageByIndex(5);
+ assert.strictEqual(this.getActivePageIndex(), 5, "The page index should now be 5");
+
+ Diva.Events.subscribe('ViewDidSwitch', function ()
+ {
+ this.gotoPageByIndex(100);
+ assert.strictEqual(this.getActivePageIndex(), 100, 'Transitions in grid mode should work');
+
+ done();
+ });
+
+ this.enterGridView();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it("getActivePageIndex()", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.strictEqual(this.getActivePageIndex(), 0, "Initial page should be 0");
+ this.gotoPageByIndex(300);
+ assert.strictEqual(this.getActivePageIndex(), 300, "The page index should now be 300");
+
+ // Reset it to the first page
+ this.gotoPageByIndex(0);
+ assert.strictEqual(this.getActivePageIndex(), 0, "The page index should now be 0");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it("get/setZoomLevel(), zoomIn() and zoomOut()", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.strictEqual(this.getZoomLevel(), 2, "Initial zoom level should be 2");
+ assert.isOk(this.zoomOut(), "It should be possible to zoom out once");
+ assert.strictEqual(this.getZoomLevel(), 1, "Zoom level should now be 1");
+ assert.isOk(!this.zoomOut(), "It should not be possible to zoom out again");
+ assert.strictEqual(this.getZoomLevel(), 1, "Zoom level should still be 1");
+
+ assert.isOk(this.zoomIn(), "It should be possible to zoom in");
+ assert.strictEqual(this.getZoomLevel(), 2, "Zoom level should now be 2");
+ assert.isOk(this.zoomIn(), "Zooming in again");
+ assert.strictEqual(this.getZoomLevel(), 3, "Zoom level should now be 3");
+ assert.isOk(!this.zoomIn(), "It should not be possible to zoom in again (hit max)");
+ assert.strictEqual(this.getZoomLevel(), 3, "Zoom level should still be 3");
+
+ assert.isOk(!this.setZoomLevel(5), "Setting zoom level to 5 should fail");
+ assert.strictEqual(this.getZoomLevel(), 3, "Zoom level should still be 3");
+
+ this.changeView('grid');
+ assert.isOk(this.setZoomLevel(2), "Setting zoom level to 2 from grid should be fine");
+ assert.strictEqual(this.getZoomLevel(), 2, "Zoom level should now be 2");
+
+ this.changeView('book');
+ this.changeView(' ');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ zoomLevel: 2,
+ minZoomLevel: 1,
+ maxZoomLevel: 3
+ });
+ });
+
+ it("isRegionInViewport()", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ // Can only do fairly simple checks
+ assert.isOk(this.isRegionInViewport(0, 100, 200, 100, 150));
+ assert.isOk(!this.isRegionInViewport(0, 100, -200, 100, 100));
+ assert.isOk(!this.isRegionInViewport(40, 100, 50, 100, 200));
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ viewportMargin: 0
+ });
+ });
+
+ it("isPageInViewport()", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.isOk(this.isPageInViewport(0), 'The first page should be in the viewport');
+ assert.isOk(!this.isPageInViewport(100), 'The hundredth page should not be in the viewport');
+
+ this.enterGridView();
+ });
+
+ Diva.Events.subscribe('ViewDidSwitch', function ()
+ {
+ assert.isOk(this.isPageInViewport(0), 'The first page should be in the viewport grid');
+ assert.isOk(this.isPageInViewport(5), 'The fifth page should be in the viewport grid');
+ assert.isOk(!this.isPageInViewport(100), 'The hundredth page should not be in the viewport grid');
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it("toggleFullscreenMode(), enterFullscreenMode(), leaveFullscreenMode()", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.isOk(!settings.inFullscreen, "Should not be in fullscreen initially");
+ this.toggleFullscreenMode();
+ assert.isOk(settings.inFullscreen, "Should now be in fullscreen");
+ assert.isOk(!this.enterFullscreenMode(), "Should not be possible to enter fullscreen");
+ assert.isOk(settings.inFullscreen, "Should still be in fullscreen");
+ assert.isOk(this.leaveFullscreenMode(), "Should be possible to exit fullscreen");
+ assert.isOk(!settings.inFullscreen, "No longer in fullscreen");
+ assert.isOk(!this.leaveFullscreenMode(), "Should not be possible to exit fullscreen");
+ assert.isOk(!settings.inFullscreen, "Still not in fullscreen");
+ assert.isOk(this.enterFullscreenMode(), "Should be possible to enter fullscreen");
+ this.toggleFullscreenMode();
+ assert.isOk(!settings.inFullscreen, "Should now be out of fullscreen");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it("enterGridView(), leaveGridView()", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.isOk(!settings.inGrid, "Should not be in grid initially");
+ this.enterGridView();
+ assert.isOk(settings.inGrid, "Should now be in grid");
+ assert.isOk(!this.enterGridView(), "Should not be possible to enter grid");
+ assert.isOk(settings.inGrid, "Should still be in grid");
+ assert.isOk(this.leaveGridView(), "Should be possible to exit grid");
+ assert.isOk(!settings.inGrid, "No longer in grid");
+ assert.isOk(!this.leaveGridView(), "Should not be possible to exit grid");
+ assert.isOk(!settings.inGrid, "Still not in grid");
+ assert.isOk(this.enterGridView(), "Should be possible to enter grid");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('goToPageByName(filename, xAnchor, yAnchor)', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.isOk(this.gotoPageByName('https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_001v.jp2', "right", "center"), "It should find the page index for folio-001v");
+ assert.strictEqual(settings.activePageIndex, 1, "Now the page number should be 2 (index 1)");
+ assert.strictEqual(settings.viewport.top, 1103, "The page should be anchored to the center (vertically)");
+ assert.strictEqual(settings.viewport.left, 0, "The page should be anchored to the right");
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it("gotoPageByURI(uri, xAnchor, yAnchor)", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.strictEqual(settings.activePageIndex, 0, "Initial page number should be 1");
+ assert.isOk(!this.gotoPageByURI('https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_000r.jp2'), "It should not find anything for 000r.jp2");
+ assert.isOk(this.gotoPageByURI('https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_001v.jp2', "right", "center"), "It should find the page index for folio-001v");
+ assert.strictEqual(settings.activePageIndex, 1, "Now the page number should be 2");
+
+ assert.strictEqual(settings.viewport.top, 1103, "The page should be anchored to the center (vertically)");
+ assert.strictEqual(settings.viewport.left, 0, "The page should be anchored to the right");
+ this.gotoPageByIndex(1, "left", "top");
+ assert.strictEqual(settings.viewport.top, 917, "The page should be anchored to the top");
+ assert.strictEqual(settings.viewport.left, 0, "The page should be anchored to the left");
+ this.gotoPageByIndex(2, "right", "bottom");
+ assert.strictEqual(settings.viewport.bottom, 2700, "The page should be anchored to the bottom");
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it("getPageIndex()", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.strictEqual(this._getPageIndex('https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_001v.jp2'), 1, "Valid filename");
+ assert.strictEqual(this._getPageIndex('https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_001lolv.jp2'), -1, "Invalid filename");
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ // Can't really test the getCurrentURL function
+
+ // Can't really test getURLHash easily either
+ // Since it relies on getState, we can test the public version of that instead
+
+ it("getState()", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ var viewportHeight = 494;
+ var pageDimens = this.getCurrentPageDimensionsAtCurrentZoomLevel();
+
+ var expected = {
+ f: false,
+ v: 'd',
+ i: 'https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_001r.jp2',
+ n: 5,
+ p: false,
+ x: pageDimens.width / 2,
+ y: viewportHeight / 2,
+ z: 2
+ };
+
+ var actual = this.getState();
+
+ // Sanity check
+ assert.deepEqual(Object.keys(actual).sort(), Object.keys(expected).sort(), 'State shape should be as expected');
+
+ Object.keys(expected).forEach(function (key)
+ {
+ if (key === 'x')
+ assert.closeTo(actual[key], 456, 1, "State key '" + key + "'");
+ else
+ assert.strictEqual(actual[key], expected[key], "State key '" + key + "'");
+ });
+
+ this.changeView('book');
+ assert.strictEqual(this.getState().v, 'b', 'View state should be book');
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it("setState()", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ var state = {
+ f: true,
+ v: 'd',
+ i: "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_003r.jp2",
+ n: 3,
+ p: false,
+ x: 500,
+ y: 300,
+ z: 3
+ };
+
+ this.setState(state);
+ assert.isOk(settings.inFullscreen, "Should now be in fullscreen");
+ assert.isOk(!settings.inGrid, "Should not be in grid");
+ assert.isOk(!settings.inBookLayout, "Should not be in book view");
+ assert.strictEqual(settings.activePageIndex, 4, "Current page should be 5 (index of 4)");
+ assert.strictEqual(settings.pagesPerRow, 3, "Pages per row should be 3");
+ assert.strictEqual(settings.zoomLevel, 3, "Zoom level should be 3");
+
+ // Recompute the offsets from first principles
+ var index = this._getPageIndex("https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_003r.jp2");
+ var offset = this.getPageOffset(index);
+ var viewportElem = settings.viewportElement;
+ // var x = viewportElem.scrollLeft - offset.left + (viewportElem.clientWidth / 2);
+ var y = viewportElem.scrollTop - offset.top + (viewportElem.clientHeight / 2);
+
+ // NOTE: throws error in headless for some reason, works fine in debug though
+ // assert.closeTo(x, 925, 1, "x offset should be the specified value");
+ assert.closeTo(y, 300, 1, "y offset should be the specified value");
+
+ state = {
+ f: false,
+ v: 'g',
+ i: "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_005v.jp2",
+ n: 4,
+ p: true,
+ x: 100,
+ y: 200,
+ z: 4
+ };
+
+ this.setState(state);
+ assert.isOk(!settings.inFullscreen, "Should not be in fullscreen");
+ assert.isOk(settings.inGrid, "Should be in grid");
+ assert.strictEqual(settings.activePageIndex, 9, "Current page should be 005v.jp2 (index of 9)");
+ assert.strictEqual(settings.pagesPerRow, 4, "Pages per row should be 4");
+ assert.strictEqual(settings.zoomLevel, 4, "Zoom level should be 4");
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it("translateFromMaxZoomLevel()", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ var state = {
+ f: true,
+ v: 'd',
+ i: "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_003r.jp2",
+ n: 3,
+ p: false,
+ x: 500,
+ y: 300,
+ z: this.getMaxZoomLevel()
+ };
+
+ this.setState(state);
+
+ var boxOnMaxPage = {x: 100, y: 100, width:1234, height:1324};
+
+ // first check to make sure the box on the max zoom level is the same as the box we feed in.
+ assert.strictEqual(this.translateFromMaxZoomLevel(100), boxOnMaxPage.x);
+ assert.strictEqual(this.translateFromMaxZoomLevel(100), boxOnMaxPage.y);
+ assert.strictEqual(this.translateFromMaxZoomLevel(1234), boxOnMaxPage.width);
+ assert.strictEqual(this.translateFromMaxZoomLevel(1324), boxOnMaxPage.height);
+
+ // reset the state to a different zoom level
+ state = {
+ f: true,
+ v: 'd',
+ i: "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_003r.jp2",
+ n: 3,
+ p: false,
+ x: 500,
+ y: 300,
+ z: 2
+ };
+ this.setState(state);
+
+ // check that the box translation has changed accordingly.
+ assert.strictEqual(this.translateFromMaxZoomLevel(boxOnMaxPage.x), 12.5);
+ assert.strictEqual(this.translateFromMaxZoomLevel(boxOnMaxPage.y), 12.5);
+ assert.strictEqual(this.translateFromMaxZoomLevel(boxOnMaxPage.width), 154.25);
+ assert.strictEqual(this.translateFromMaxZoomLevel(boxOnMaxPage.height), 165.5);
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it("translateToMaxZoomLevel()", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ var state = {
+ f: true,
+ v: 'd',
+ i: "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_003r.jp2",
+ n: 3,
+ p: false,
+ x: 500,
+ y: 300,
+ z: this.getMaxZoomLevel()
+ };
+
+ this.setState(state);
+
+ var boxOnThisPage = {x: 10, y: 10, width:123, height:132};
+
+ // first check to make sure the box on the max zoom level is the same as the box we feed in.
+ assert.strictEqual(this.translateToMaxZoomLevel(10), boxOnThisPage.x);
+ assert.strictEqual(this.translateToMaxZoomLevel(10), boxOnThisPage.y);
+ assert.strictEqual(this.translateToMaxZoomLevel(123), boxOnThisPage.width);
+ assert.strictEqual(this.translateToMaxZoomLevel(132), boxOnThisPage.height);
+
+ // reset the state to a different zoom level
+ state = {
+ f: true,
+ v: 'd',
+ i: "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_003r.jp2",
+ n: 3,
+ p: false,
+ x: 500,
+ y: 300,
+ z: 2
+ };
+ this.setState(state);
+
+ // console.log(this.translateToMaxZoomLevel(boxOnThisPage.x));
+ // check that the box translation has changed accordingly. This assumes that
+ // the co-ordinate we want to translate is on the current zoom level (2), and we want
+ // to get it on the max page. Thus: 123 * (4-2)^2 = 984
+ assert.strictEqual(this.translateToMaxZoomLevel(boxOnThisPage.x), 80);
+ assert.strictEqual(this.translateToMaxZoomLevel(boxOnThisPage.y), 80);
+ assert.strictEqual(this.translateToMaxZoomLevel(boxOnThisPage.width), 984);
+ assert.strictEqual(this.translateToMaxZoomLevel(boxOnThisPage.height), 1056);
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it("getPageDimensionsAtCurrentZoomLevel([pageIndex])", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ var current = this.getCurrentPageDimensionsAtCurrentZoomLevel();
+ var page10 = this.getCurrentPageDimensionsAtCurrentZoomLevel();
+
+ assert.deepEqual(current, page10, 'It should default to the current page');
+ assert.ok(typeof page10.height === 'number' && typeof page10.width === 'number', 'It should ... have numbers?');
+
+ this.leaveGridView();
+
+ let fcn = () => { this.getPageDimensionsAtCurrentZoomLevel(-5); };
+ expect(fcn).to.throw('Invalid Page Index');
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ goDirectlyTo: 10,
+ inGrid: true
+ });
+ });
+
+ it('toggleOrientation()', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.isOk(this.isVerticallyOriented(), 'Should be vertically oriented');
+ this.toggleOrientation();
+ assert.isOk(!this.isVerticallyOriented(), 'Should no longer be vertically oriented');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('toggleNonPagedPagesVisibility()', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.isOk(!this.settings.showNonPagedPages, 'Should not show non paged pages');
+ this.toggleNonPagedPagesVisibility();
+ assert.isOk(this.settings.showNonPagedPages, 'Should show non paged pages');
+
+ this.showNonPagedPages();
+ this.hideNonPagedPages();
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('setGridPagesPerRow(pagesPerRow)', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ this.setGridPagesPerRow(4);
+ assert.isOk(this.settings.inGrid, 'Should now be in grid');
+ assert.strictEqual(this.getGridPagesPerRow(), 4, 'Should be 4 pages per row');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('isInFullscreen()', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.isOk(!this.isInFullscreen(), 'Should not be in fullscreen');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('isReady()', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.isOk(this.isReady(), 'Viewer loaded, should be ready');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+
+ assert.isOk(!diva.isReady(), 'Should not be ready yet');
+ });
+
+ it('isPageIndexValid(pageIndex)', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.isOk(this.isPageIndexValid(2), 'Page index 2 should be valid');
+ assert.isOk(!this.isPageIndexValid(-5), 'Page index -5 should not be valid');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('hasOtherImages(pageIndex)', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.isOk(!this.hasOtherImages(1), 'Page 1 should not have other images');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('gotoPageByLabel(label)', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ this.gotoPageByLabel('folio 001v');
+ assert.strictEqual(this.getActivePageIndex(), 1, 'Should now be at page 2 (index 1)');
+
+ // try with number instead of label
+ this.gotoPageByLabel('asdfjkl');
+ assert.strictEqual(this.getActivePageIndex(), 1, 'Should still be on page 2');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('getPageIndexForPageXYValues(pageX, pageY)', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.strictEqual(this.getPageIndexForPageXYValues(-500, -500), -1, 'Index at (-500, -500) should be -1 (dne)');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('getPageDimensionsAtZoomLevel(pageIdx, zoomLevel)', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ let dims = this.getPageDimensionsAtZoomLevel(0, 2);
+ assert.strictEqual(dims.width, 551, 'Width of first page at zoom 2 should be 551');
+
+ dims = this.getPageDimensionsAtZoomLevel(0, 10);
+ assert.strictEqual(dims.width, 4414, 'Zoom 10 should default to max, width should be 4414');
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+
+ assert.isOk(!diva.getPageDimensionsAtZoomLevel(0, 1), 'Page not loaded should return false');
+ });
+
+ it('getPageDimensions(pageIndex)', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.strictEqual(this.getPageDimensions(0).height, 874, 'Page 1 height should be 874');
+ assert.strictEqual(this.getPageDimensions(251).height, 866, 'Page 252 height should be 866');
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+
+ assert.isNull(diva.getPageDimensions(0), 'Should return null if diva not loaded yet');
+ });
+
+ it('getOtherImages(pageIndex)', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.isEmpty(this.getOtherImages(0), 'Page 1 should have no other images');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('getNumberOfPages() viewer not loaded', function ()
+ {
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+
+ assert.isFalse(diva.getNumberOfPages(), 'Should return false if diva not loaded yet');
+ });
+
+ it('getMinZoomLevel()', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.strictEqual(this.getMinZoomLevel(), 0, 'Min zoom should be 0');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('getMaxZoomLevelForPage(pageIdx)', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.strictEqual(this.getMaxZoomLevelForPage(10), 5, 'Max zoom of page 10 should be 5');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+
+ assert.isFalse(diva.getMaxZoomLevelForPage(0), 'Should return false if diva not loaded yet');
+ });
+
+ it('getInstanceSelector()', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ // seems this function is actually broken (returns undefined). adding for coverage
+ this.getInstanceSelector();
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('getFilenames()', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ let filenames = this.getFilenames();
+ assert.strictEqual(filenames[0], 'https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_001r.jp2', 'First page URI should be right');
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('getAllPageURIs()', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ let URIs = this.getAllPageURIs();
+ assert.strictEqual(URIs[0], 'https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_001r.jp2', 'First page URI should be right');
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('getCurrentPageFilename()', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.strictEqual(this.getCurrentPageFilename(), 'https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_006r.jp2', 'Page 10 filename should be right');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ goDirectlyTo: 10
+ });
+ });
+
+ it('getCurrentPageURI()', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.strictEqual(this.getCurrentPageURI(), 'https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_006r.jp2', 'Page 10 URI should be right');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ goDirectlyTo: 10
+ });
+ });
+
+ it('getCurrentCanvas()', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.strictEqual(this.getCurrentCanvas(), 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-001r.json', 'Page 1 canvas should be right');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('getCurrentPageOffset()', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.strictEqual(this.getCurrentPageOffset().left, 27, 'First page left offset should be 27');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('getCurrentURL()', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ // can't really assert this since it could change based on testing environment
+ this.getCurrentURL();
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('disableDragScrollable(), enableDragScrollable()', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ this.disableDragScrollable();
+ assert.isTrue(this.viewerState.viewportObject.hasAttribute('nochilddrag'), 'Should not be draggable');
+ this.enableDragScrollable();
+ assert.isFalse(this.viewerState.viewportObject.hasAttribute('nochilddrag'), 'Should be draggable');
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('disableScrollable(), enableScrollable()', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ this.disableScrollable();
+ assert.isFalse(this.viewerState.isScrollable, 'Should not be scrollable');
+ this.enableScrollable();
+ assert.isTrue(this.viewerState.isScrollable, 'Should be scrollable');
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('deactivate()', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ this.deactivate();
+ assert.isFalse(this.viewerState.isActiveDiva, 'Diva should no longer be active');
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+});
\ No newline at end of file
diff --git a/test/settings_test.js b/test/settings_test.js
new file mode 100644
index 00000000..4d02c74a
--- /dev/null
+++ b/test/settings_test.js
@@ -0,0 +1,487 @@
+import Diva from '../source/js/diva';
+
+// jQuery mimic
+let el = document.getElementById.bind(document);
+
+describe('Settings', function ()
+{
+ beforeEach(function ()
+ {
+ // reset event subscription so only current test is subscribed
+ Diva.Events.unsubscribeAll();
+
+ // recreate diva instance
+ let oldWrapper = document.getElementById('parent-wrapper');
+ oldWrapper.parentNode.removeChild(oldWrapper);
+ let newWrapper = document.createElement('div');
+ newWrapper.id = 'parent-wrapper';
+ newWrapper.setAttribute('style', 'width: 984px;');
+ let div = document.createElement('div');
+ div.id = 'diva-wrapper';
+ newWrapper.appendChild(div);
+ document.body.appendChild(newWrapper);
+ });
+
+
+ it("adaptivePadding enabled", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings) {
+ assert.notStrictEqual(settings.verticalPadding, 10, "Adaptive padding should be used, overrides vertical/horizontal");
+ assert.notStrictEqual(settings.horizontalPadding, 10, "Horizontal padding should be overridden by adaptive");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ adaptivePadding: 0.10
+ });
+ });
+
+ it("adaptivePadding disabled, fixedPadding set", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.strictEqual(settings.verticalPadding, 11, "Vertical padding should be 11 (no plugins enabled)");
+ assert.strictEqual(settings.horizontalPadding, 11, "Horizontal padding should be 11 (fixedPadding)");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ adaptivePadding: 0,
+ fixedPadding: 11,
+ });
+ });
+
+ it("enableFullscreen false", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ // Make sure the fullscreen icon is not there
+ assert.isNull(el(settings.selector + 'fullscreen-icon'), "Fullscreen icon should not be present");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ enableFullscreen: false
+ });
+ });
+
+ it("enableFullscreen true", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ // Make sure the fullscreen icon is there
+ assert.isNotNull(el(settings.selector + 'fullscreen-icon'), "Fullscreen icon should be present");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ enableFullscreen: true
+ });
+ });
+
+ it("enableGotoPage false", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.isNull(el(settings.selector + 'goto-page'), "Go-to-page box should not be present");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ enableGotoPage: false
+ });
+ });
+
+ it("enableGotoPage true", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.isNotNull(el(settings.selector + 'goto-page'), "Go-to-page box should be present");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ enableGotoPage: true
+ });
+ });
+
+ it("fixedHeightGrid false", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function()
+ {
+ this.enterGridView();
+
+ assert.isOk(pagesHaveEqualDimension(this, 'width'), 'All page widths should be equal');
+ assert.isNotOk(pagesHaveEqualDimension(this, 'height'), 'All page heights should NOT be equal');
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ fixedHeightGrid: false
+ });
+ });
+
+ it("fixedHeightGrid true", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function()
+ {
+ this.enterGridView();
+
+ assert.isNotOk(pagesHaveEqualDimension(this, 'width'), 'All page widths should NOT be equal');
+ assert.isOk(pagesHaveEqualDimension(this, 'height'), 'All page heights should be equal');
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ fixedHeightGrid: true
+ });
+ });
+
+ function pagesHaveEqualDimension(viewer, dimension)
+ {
+ var dimensions = [];
+
+ var numPages = viewer.getNumberOfPages();
+
+ for (var i = 0; i < numPages; i++)
+ dimensions.push(viewer.getPageDimensionsAtCurrentZoomLevel(i)[dimension]);
+
+ var first = dimensions[0];
+
+ return dimensions.every(function (dim)
+ {
+ // FIXME: Should floating point numbers happen here?
+ return Math.abs(dim - first) < 0.5;
+ });
+ }
+
+ it("goDirectlyTo, valid", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.strictEqual(settings.activePageIndex, 10, "The initial page index should be 10");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ goDirectlyTo: 10
+ });
+ });
+
+ it("goDirectlyTo, invalid", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.strictEqual(settings.activePageIndex, 0, "The initial page index should be 0 (the fallback)");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ goDirectlyTo: -10
+ });
+ });
+
+ it('hashParamSuffix, omitted', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.strictEqual(typeof settings.hashParamSuffix, 'string', "If omitted, hashParamSuffix should default to... some string");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('hashParamSuffix, provided', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.strictEqual(settings.hashParamSuffix, '!!!!!!!', 'User hashParamSuffix should be honoured');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ hashParamSuffix: '!!!!!!!'
+ });
+ });
+
+ it("inBookLayout true", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.ok(settings.inBookLayout, 'inBookLayout should remain true after initialization');
+ assert.ok(this.getPageOffset(1).left < this.getPageOffset(2).left, 'Page 1 should be to the left of page 2');
+ assert.ok(this.getPageOffset(2).left > this.getPageOffset(3).left, 'Page 2 should be to the right of page 3');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ inBookLayout: true
+ });
+ });
+
+ it("manifest.paged triggers inBookLayout", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.isOk(settings.manifest.paged, 'settings.manifest.paged should be true when manifest has viewingHint: paged');
+ assert.isOk(settings.inBookLayout, 'settings.inBookLayout should be true when manifest.paged is true');
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://ddmal.github.io/diva.js/try/demo/beromunster-iiif.json'
+ });
+ });
+
+ it("inGrid false", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.isOk(!settings.inGrid, "inGrid setting should still be false");
+ assert.strictEqual(el(settings.selector + 'view-menu').children[0].classList[0], 'diva-document-icon', "Current toolbar view icon should be the document icon");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ inGrid: false
+ });
+ });
+
+ it("inGrid true", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.isOk(settings.inGrid, "inGrid setting should be preserved");
+ assert.strictEqual(el(settings.selector + 'view-menu').children[0].classList[0], 'diva-grid-icon', "Current toolbar view icon should be the grid icon");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ inGrid: true
+ });
+ });
+
+ // // imageDir cannot really be tested either
+
+ it("valid max/minPagesPerRow, valid pagesPerRow", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.strictEqual(settings.minPagesPerRow, 3, "minPagesPerRow should be 3");
+ assert.strictEqual(settings.maxPagesPerRow, 5, "maxPagesPerRow should be 5");
+ assert.strictEqual(settings.pagesPerRow, 5, "pagesPerRow is valid");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ minPagesPerRow: 3,
+ maxPagesPerRow: 5,
+ pagesPerRow: 5
+ });
+ });
+
+ it("invalid max/minPagesPerRow, invalid pagesPerRow", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.strictEqual(settings.minPagesPerRow, 2, "minPagesPerRow is invalid, set to 2");
+ assert.strictEqual(settings.maxPagesPerRow, 2, "maxPagesPerRow should be set to min");
+ assert.strictEqual(settings.pagesPerRow, 2, "invalid pages per row should be set to min");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ minPagesPerRow: 1,
+ maxPagesPerRow: 0,
+ pagesPerRow: 4
+ });
+ });
+
+ it("max/minZoomLevel, invalid values", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.strictEqual(settings.minZoomLevel, 0, "minZoomLevel should be set to 0");
+ assert.strictEqual(settings.maxZoomLevel, 5, "maxZoomLevel should be set to 5");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ minZoomLevel: -2,
+ maxZoomLevel: 6,
+ });
+ });
+
+ it("max/minZoomLevel, valid values, valid zoomLevel", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.strictEqual(settings.minZoomLevel, 1, "minZoomLevel should be set to 1");
+ assert.strictEqual(settings.maxZoomLevel, 3, "maxZoomLevel should be set to 3");
+ assert.strictEqual(settings.zoomLevel, 2, "zoomLevel should be 2");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ minZoomLevel: 1,
+ maxZoomLevel: 3,
+ zoomLevel: 2
+ });
+ });
+
+ it("max/minZoomLevel, valid values, invalid zoomLevel", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.strictEqual(settings.zoomLevel, 1, "Zoom level should be the minZoomLevel (1)");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ minZoomLevel: 1,
+ maxZoomLevel: 3,
+ zoomLevel: 0
+ });
+ });
+
+ it("max/minZoomLevel, invalid/valid values, invalid zoomLevel", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.strictEqual(settings.minZoomLevel, 2, "minZoomLevel should be set to 2 (valid)");
+ assert.strictEqual(settings.maxZoomLevel, 5, "maxZoomLevel should be set to 5 (invalid)");
+ assert.strictEqual(settings.zoomLevel, 2, "zoomLevel should be 2 (the minimum)");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ minZoomLevel: 2,
+ maxZoomLevel: -2,
+ zoomLevel: -2
+ });
+ });
+
+ it("object for objectData", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.strictEqual(this.getItemTitle(), "First page of Beromunster", "Should process an object for objectData like a normal manifest");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: {
+ "@context": "http://iiif.io/api/presentation/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/beromunster/manifest.json",
+ "@type": "sc:Manifest",
+ "label": "First page of Beromunster",
+ "viewingHint": "paged",
+ "sequences": [
+ {
+ "@type": "sc:Sequence",
+ "canvases": [
+ {
+ "@id": "https://images.simssa.ca/iiif/image/beromunster/canvas/bm_001.json",
+ "@type": "sc:Canvas",
+ "label": "Bm 001",
+ "height": 4445,
+ "width": 2846,
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/beromunster/bm_001.tif/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 4445,
+ "width": 2846,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/beromunster/bm_001.tif",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/image/beromunster/canvas/bm_001.json"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ });
+ });
+
+ // // pageLoadTimeout is a bit weird to test, but the code is simple so it should be fine
+
+ // // pagesPerRow is tested above, along with max/minPagesPerRow
+
+ // // No real point testing tileHeight/Width as we don't have images of different tile sizes
+
+ it("viewportMargin, value of 0", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ var dv = this;
+
+ setTimeout(function ()
+ {
+ assert.isOk(dv.isPageInViewport(0), "The first page should be loaded");
+ assert.isNotOk(dv.isPageInViewport(1), "The second page should not be loaded");
+ done();
+ }, 100);
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ viewportMargin: 0
+ });
+ });
+
+ it("viewportMargin, value of 1000", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ var dv = this;
+
+ // The second page should be visible after a timeout
+ setTimeout(function () {
+ assert.isOk(dv.isPageInViewport(0), "The first page should be loaded");
+ assert.isOk(dv.isPageInViewport(1), "The second page should be loaded");
+ done();
+ }, 100);
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ viewportMargin: 1000
+ });
+ });
+});
\ No newline at end of file
diff --git a/test/utils/book-layout_test.js b/test/utils/book-layout_test.js
new file mode 100644
index 00000000..bcedbd77
--- /dev/null
+++ b/test/utils/book-layout_test.js
@@ -0,0 +1,148 @@
+import ImageManifest from '../../source/js/image-manifest';
+import getBookLayout from '../../source/js/page-layouts/book-layout';
+
+var beromunsterManifest = require('../manifests/beromunsterManifest.json');
+var manifest = ImageManifest.fromIIIF(beromunsterManifest);
+
+describe('Get Book Layout', function ()
+{
+ it('In vertical orientation positions first page to the right', function ()
+ {
+ var layouts = getBookLayout({
+ manifest: manifest,
+ verticallyOriented: true
+ });
+
+ var firstGroup = layouts[0];
+ var width = manifest.getMaxPageDimensions(0).width;
+
+ assert.strictEqual(firstGroup.pages.length, 1, 'First group should be a single page');
+ assert.strictEqual(firstGroup.dimensions.width, 2 * width, 1, 'Group size should be twice page width');
+ assert.strictEqual(firstGroup.pages[0].groupOffset.left, width, 1, 'Page should be offset to the left by its width');
+ });
+
+ it('In horizontal orientation, shrink first group to single page size', function ()
+ {
+ var layouts = getBookLayout({
+ manifest: manifest,
+ verticallyOriented: false
+ });
+
+ var firstGroup = layouts[0];
+ var width = manifest.getMaxPageDimensions(0).width;
+
+ assert.strictEqual(firstGroup.pages.length, 1, 'First group should be a single page');
+ assert.strictEqual(firstGroup.dimensions.width, width, 1, 'Group width should be page width');
+ assert.strictEqual(firstGroup.pages[0].groupOffset.left, 0, 1, 'Page should not be offset to the left');
+ });
+
+ it('In vertical orientation, facing pages groups fit max height, width', function ()
+ {
+ var layouts = getBookLayout({
+ manifest: manifest,
+ verticallyOriented: true
+ });
+
+ var group = layouts[1];
+
+ assertDifferentSizePages(group);
+
+ assertFitsMax(group, 'width');
+ assertFitsMax(group, 'height');
+ });
+
+ it('In horizontal orientation, facing pages groups fit max height, tight width', function ()
+ {
+ var layouts = getBookLayout({
+ manifest: manifest,
+ verticallyOriented: false
+ });
+
+ var group = layouts[1];
+
+ assertDifferentSizePages(group);
+ assertFitsMax(group, 'height');
+
+ var width1 = group.pages[0].dimensions.width;
+ var width2 = group.pages[1].dimensions.width;
+ var groupWidth = group.dimensions.width;
+
+ assert.closeTo(groupWidth, width1 + width2, 1, 'Group width should be sum of page widths');
+ });
+
+ it('In vertical orientation, final left page is left-aligned', function ()
+ {
+ var layouts = getBookLayout({
+ manifest: manifest,
+ verticallyOriented: true
+ });
+
+ var lastGroup = layouts[layouts.length - 1];
+
+ assert.strictEqual(lastGroup.pages.length, 1, 'Sanity check: Last group should be a single page');
+
+ assert.closeTo(lastGroup.dimensions.width,
+ lastGroup.pages[0].dimensions.width * 2,
+ 1,
+ 'Group width should be twice page width');
+
+ assert.strictEqual(lastGroup.dimensions.height,
+ lastGroup.pages[0].dimensions.height,
+ 'Group height should be page height');
+
+ assert.closeTo(lastGroup.pages[0].groupOffset.left, 0, 1, 'Page should not be offset to the left');
+ });
+
+ it('In horizontal orientation, final left page is is in tight-fit group', function ()
+ {
+ var layouts = getBookLayout({
+ manifest: manifest,
+ verticallyOriented: false
+ });
+
+ var lastGroup = layouts[layouts.length - 1];
+
+ assert.strictEqual(lastGroup.pages.length, 1, 'Sanity check: Last group should be a single page');
+
+ assert.deepEqual(lastGroup.dimensions, lastGroup.pages[0].dimensions, 1, 'Group size should be page size');
+ assert.closeTo(lastGroup.pages[0].groupOffset.left, 0, 1, 'Page should not be offset to the left');
+ });
+
+ it('Displays facing pages in tight-fit group', function ()
+ {
+ var layouts = getBookLayout({
+ manifest: manifest,
+ verticallyOriented: true
+ });
+
+ var group = layouts[17];
+
+ assert.strictEqual(group.pages.length, 1, 'In own group');
+ assert.strictEqual(group.dimensions.width, group.pages[0].dimensions.width, 'Tight fit width');
+ });
+
+ function assertFitsMax(group, dimension)
+ {
+ var p1 = group.pages[0].dimensions[dimension];
+ var p2 = group.pages[1].dimensions[dimension];
+ var g = group.dimensions[dimension];
+
+ var times = dimension === 'width' ? 2 : 1;
+
+ assert.closeTo(g, Math.max(p1, p2) * times, 1, 'Group ' + dimension + ' should be derived from max page ' + dimension);
+ }
+
+ function assertDifferentSizePages(group)
+ {
+ assertDimenDiffers(group, 'height');
+ assertDimenDiffers(group, 'width');
+ }
+
+ function assertDimenDiffers(group, dimension)
+ {
+ var p1 = group.pages[0].dimensions[dimension];
+ var p2 = group.pages[1].dimensions[dimension];
+
+ assert.notStrictEqual(p1, p2, 'Sanity check: page ' + dimension + ' differs');
+ }
+});
\ No newline at end of file
diff --git a/test/utils/elt_test.js b/test/utils/elt_test.js
new file mode 100644
index 00000000..17a44a84
--- /dev/null
+++ b/test/utils/elt_test.js
@@ -0,0 +1,102 @@
+import {elt} from '../../source/js/utils/elt';
+
+describe('elt util', function ()
+{
+ it("elt() function works", function ()
+ {
+ // Serialize node type and text content (not attributes, because those are more complicated)
+ var serialize = function (node)
+ {
+ if (node.nodeName === '#text')
+ return node.textContent;
+
+ return {
+ name: node.nodeName.toLowerCase(),
+ childNodes: Array.prototype.map.call(node.childNodes, serialize)
+ };
+ };
+
+ var simple = elt('span');
+ var expectedSimple = { name: 'span', childNodes: [] };
+ assert.deepEqual(serialize(simple), expectedSimple, 'It should create nodes with the given tag');
+
+ var withNull = elt('span', null, undefined);
+ var expectedWithNull = { name: 'span', childNodes: [] };
+ assert.deepEqual(serialize(withNull), expectedWithNull, 'It should ignore null and undefined values');
+
+ var withText = elt('span', 'A', 'B');
+ var expectedWithText = { name: 'span', childNodes: ['A', 'B'] };
+ assert.deepEqual(serialize(withText), expectedWithText, 'It should add additional string arguments as text');
+
+ var withArray = elt('ol', [
+ elt('li', 'first'),
+ elt('li', 'second'),
+ [
+ elt('li', 'more'),
+ elt('li', 'and more')
+ ]
+ ]);
+ var expectedWithArray = {
+ name: 'ol',
+ childNodes: [
+ { name: 'li', childNodes: ['first'] },
+ { name: 'li', childNodes: ['second'] },
+ { name: 'li', childNodes: ['more'] },
+ { name: 'li', childNodes: ['and more'] }
+ ]
+ };
+ assert.deepEqual(serialize(withArray), expectedWithArray, 'It should recurse on nested arrays');
+
+ var withOther = elt('span', 2, false);
+ var expectedWithOther = { name: 'span', childNodes: ['2', 'false'] };
+ assert.deepEqual(serialize(withOther), expectedWithOther, 'It should coerce other arguments to strings');
+
+ var link = elt('a',
+ { href: 'http://example.org/', title: 'overridden' },
+ 'Hello world!',
+ { title: 'additional argument' }
+ );
+ var expectedLink = {
+ name: 'a',
+ childNodes: ['Hello world!']
+ };
+ assert.strictEqual(link.href, 'http://example.org/', 'It should set attributes from object arguments');
+ assert.strictEqual(link.title, 'additional argument', 'It should handle multiple attribute arguments');
+ assert.deepEqual(serialize(link), expectedLink, 'It should handle children along with attribute arguments');
+
+ var fragment = document.createDocumentFragment();
+ fragment.appendChild(document.createTextNode(', very'));
+
+ var compound = elt('span',
+ 'This is ', elt('em', 'very'), fragment, document.createTextNode(' exciting')
+ );
+ var expectedCompound = {
+ name: 'span',
+ childNodes: [
+ 'This is ',
+ {
+ name: 'em',
+ childNodes: ['very']
+ },
+ ', very',
+ ' exciting'
+ ]
+ };
+ assert.deepEqual(serialize(compound), expectedCompound, 'It should append DOM node arguments');
+
+ var hidden = elt('span', {
+ style: { display: 'none' }
+ });
+ assert.strictEqual(hidden.style.display, 'none', 'It should handle objects for the style attribute');
+
+ var hiddenAsText = elt('span', {
+ style: 'display: none;'
+ });
+ assert.strictEqual(hiddenAsText.style.display, 'none', 'It should handle strings for the style attribute');
+
+ var nullStyle = elt('span', {
+ style: null
+ });
+ assert.strictEqual(nullStyle.style.cssText, '', 'It should ignore a null style');
+ });
+});
\ No newline at end of file
diff --git a/test/utils/events_test.js b/test/utils/events_test.js
new file mode 100644
index 00000000..885a5c53
--- /dev/null
+++ b/test/utils/events_test.js
@@ -0,0 +1,245 @@
+'use strict';
+
+import {Events} from '../../source/js/utils/events';
+
+describe('Events', function ()
+{
+ it('subscribe(topic, callback[, instanceID])', function ()
+ {
+ var events = Events;
+
+ var callback = function () {};
+ assert.deepEqual(events.subscribe('Topic', callback), ['Topic', callback], 'Global callback handles should have no scope');
+ assert.deepEqual(events.subscribe('Topic', callback, 'A'), ['Topic', callback, 'A'], 'Scoped callback handles should have a scope');
+ });
+
+ it('publish(topic[, args])', function ()
+ {
+ var events = Events;
+ var calls = [];
+
+ events.subscribe('MyTopic', function ()
+ {
+ calls.push(['callback 1', this, Array.prototype.slice.call(arguments)]);
+ });
+
+ events.subscribe('MyTopic', function ()
+ {
+ calls.push(['callback 2', this, Array.prototype.slice.call(arguments)]);
+ });
+
+ events.subscribe('MyTopic', function ()
+ {
+ calls.push(['scoped callback', this, Array.prototype.slice.call(arguments)]);
+ }, 'some scope');
+
+ events.publish('OtherTopic', []);
+ events.publish('MyTopic', [1, 2, 3]);
+ events.publish('MyTopic');
+
+ assert.deepEqual(calls, [
+ ['callback 1', null, [1, 2, 3]],
+ ['callback 2', null, [1, 2, 3]],
+ ['callback 1', null, []],
+ ['callback 2', null, []]
+ ], 'Global callbacks should be called for the topic with the arguments in the order subscribed');
+ });
+
+ it('publish(topic, args, scope)', function ()
+ {
+ var scopeID = '1000';
+
+ var scopeObject = {
+ getInstanceId: function ()
+ {
+ return scopeID;
+ }
+ };
+
+ var events = Events;
+ var calls = [];
+
+ events.subscribe('MyTopic', function ()
+ {
+ calls.push(['global callback', this, Array.prototype.slice.call(arguments)]);
+ });
+
+ events.subscribe('MyTopic', function ()
+ {
+ calls.push(['scoped callback', this, Array.prototype.slice.call(arguments)]);
+ }, scopeID);
+
+ events.subscribe('MyTopic', function ()
+ {
+ calls.push(['global callback after scoped', this, Array.prototype.slice.call(arguments)]);
+ });
+
+ events.subscribe('MyTopic', function ()
+ {
+ calls.push(['irrelevant callback', this, Array.prototype.slice.call(arguments)]);
+ }, 'irrelevant');
+
+ events.publish('OtherTopic', ['should not be called'], scopeObject);
+ events.publish('MyTopic', [1, 2, 3], scopeObject);
+ events.publish('MyTopic', null, scopeObject); // Null arguments should work
+
+ assert.deepEqual(calls, [
+ ['global callback', scopeObject, [1, 2, 3]],
+ ['global callback after scoped', scopeObject, [1, 2, 3]],
+ ['scoped callback', scopeObject, [1, 2, 3]],
+ ['global callback', scopeObject, []],
+ ['global callback after scoped', scopeObject, []],
+ ['scoped callback', scopeObject, []]
+ ], 'Global and relevant scoped callbacks should be called, with globals first');
+
+ calls = [];
+
+ var invalidScope = null;
+
+ events.publish('MyTopic', [3, 2, 1], invalidScope);
+
+ // I don't know if this is really desirable behaviour, but it's what happens
+ assert.deepEqual(calls, [
+ ['global callback', invalidScope, [3, 2, 1]],
+ ['global callback after scoped', invalidScope, [3, 2, 1]]
+ ], 'Only global callbacks should be called for invalid scope objects');
+ });
+
+ it('unsubscribe(Array[, completely])', function ()
+ {
+ var events = Events;
+ events.unsubscribeAll();
+
+ var callback = function () {};
+ var otherCallback = function () {};
+
+ events.subscribe('MyTopic', callback);
+ events.subscribe('MyTopic', otherCallback);
+ events.subscribe('MyTopic', callback, 'some scope');
+ events.subscribe('MyTopic', otherCallback, 'some scope');
+ events.subscribe('MyTopic', callback, 'another scope');
+ events.subscribe('MyTopic', otherCallback, 'another scope');
+
+ assert.deepEqual(getTestSubscriptions(), {
+ 'global': [callback, otherCallback],
+ 'some scope': [callback, otherCallback],
+ 'another scope': [callback, otherCallback]
+ }, 'The callbacks should be subscribed (sanity check)');
+
+ assert.ok(events.unsubscribe(['MyTopic', callback]), 'It should return true if events are unsubscribed');
+ assert.ok(!events.unsubscribe(['MyTopic', callback, 'unknown']), 'It should return false if the scope is unknown');
+ assert.ok(!events.unsubscribe(['Blueberries', callback]), 'It should return false if the topic is unknown');
+
+ assert.deepEqual(getTestSubscriptions(), {
+ 'global': [otherCallback],
+ 'some scope': [callback, otherCallback],
+ 'another scope': [callback, otherCallback]
+ }, 'The global callback should be removed');
+
+ assert.ok(!events.unsubscribe(['MyTopic', callback]), 'It should return false if no events are unsubscribed');
+
+ events.unsubscribe(['MyTopic', callback, 'some scope']);
+
+ assert.deepEqual(getTestSubscriptions(), {
+ 'global': [otherCallback],
+ 'some scope': [otherCallback],
+ 'another scope': [callback, otherCallback]
+ }, 'The relevant scoped callback should be removed');
+
+ assert.ok(events.unsubscribe(['MyTopic', callback, 'another scope'], true), 'It should return true if events are unsubscribed (completely)');
+ assert.ok(!events.unsubscribe(['MyTopic', callback, 'another scope'], true), 'It should return false if no events are unsubscribed (completely)');
+
+ assert.deepEqual(getTestSubscriptions(), {
+ 'global': [otherCallback],
+ 'some scope': [otherCallback],
+ 'another scope': []
+ }, 'All scoped callbacks should be removed when `completely` is true');
+
+ events.unsubscribe(['MyTopic', callback], true);
+
+ assert.deepEqual(getTestSubscriptions(), {
+ 'global': [],
+ 'some scope': [otherCallback],
+ 'another scope': []
+ }, 'All global callbacks should be removed when `completely` is true');
+
+ function getTestSubscriptions()
+ {
+ return {
+ 'global': subscriptions(events, 'MyTopic'),
+ 'some scope': subscriptions(events, 'MyTopic', 'some scope'),
+ 'another scope': subscriptions(events, 'MyTopic', 'another scope')
+ };
+ }
+ });
+
+ it('unsubscribeAll([instanceID])', function ()
+ {
+ var events = Events;
+ events.unsubscribeAll();
+
+ var callback = function () {};
+
+ events.subscribe('MyTopic', callback);
+ events.subscribe('MyTopic', callback, 'some scope');
+ events.subscribe('MyTopic', callback, 'another scope');
+
+ assert.deepEqual(getTestSubscriptions(), {
+ 'global': [callback],
+ 'some scope': [callback],
+ 'another scope': [callback]
+ }, 'The callbacks should be subscribed (sanity check)');
+
+ events.unsubscribeAll('some scope');
+
+ assert.deepEqual(getTestSubscriptions(), {
+ 'global': [callback],
+ 'some scope': [],
+ 'another scope': [callback]
+ }, 'All topics for the scope should be unsubscribed');
+
+ events.unsubscribeAll('this is not actually a scope');
+
+ assert.deepEqual(getTestSubscriptions(), {
+ 'global': [callback],
+ 'some scope': [],
+ 'another scope': [callback]
+ }, 'Unsubscribing from an unknown topic should not blow things up');
+
+ events.unsubscribeAll();
+
+ assert.deepEqual(getTestSubscriptions(), {
+ 'global': [],
+ 'some scope': [],
+ 'another scope': []
+ }, 'Unsubscribing without a topic should clear everything');
+
+ function getTestSubscriptions()
+ {
+ return {
+ 'global': subscriptions(events, 'MyTopic'),
+ 'some scope': subscriptions(events, 'MyTopic', 'some scope'),
+ 'another scope': subscriptions(events, 'MyTopic', 'another scope')
+ };
+ }
+ });
+
+ /** Reach into an events instance to check private state **/
+ function subscriptions(events, topic, instanceID)
+ {
+ if (typeof instanceID === 'undefined')
+ instanceID = 'global';
+
+ var topicSubs = events._cache[topic];
+
+ if (!topicSubs)
+ return [];
+
+ var instanceSubs = topicSubs[instanceID];
+
+ if (!instanceSubs)
+ return [];
+
+ return instanceSubs.slice();
+ }
+});
\ No newline at end of file
diff --git a/test/utils/hash-params_test.js b/test/utils/hash-params_test.js
new file mode 100644
index 00000000..9738e901
--- /dev/null
+++ b/test/utils/hash-params_test.js
@@ -0,0 +1,79 @@
+import HashParams from '../../source/js/utils/hash-params';
+
+describe('HashParams', function ()
+{
+ it("HashParams.get", function ()
+ {
+ // First try it with no hash params - should return false
+ assert.ok(!HashParams.get('anything'), "No hash params, should return false");
+
+ // Now set the current URL to something
+ window.location.hash = '#p=149&z=2';
+ var nonexistentParam = HashParams.get('lol');
+ var firstParam = HashParams.get('p');
+ var secondParam = HashParams.get('z');
+ assert.ok(!nonexistentParam, "The nonexistent param should return false");
+ assert.strictEqual(firstParam, '149', "The 'p' param should be 149 (string)");
+ assert.strictEqual(secondParam, '2', "The 'z' param should be 2 (string)");
+
+ // Now let there be only one element in the URL
+ window.location.hash = '#p=149';
+ var soleParam = HashParams.get('p');
+ assert.strictEqual(soleParam, '149', "The 'p' param should be 149 when it is the sole param");
+
+ // Now let there be other elements in the URL
+ window.location.hash = '#z=2&p=100&lol=lol';
+ var anotherFirstParam = HashParams.get('z');
+ var anotherSecondParam = HashParams.get('p');
+ var thirdParam = HashParams.get('lol');
+ assert.strictEqual(anotherFirstParam, '2', "The 'z' param should be '2' when it is the first param");
+ assert.strictEqual(anotherSecondParam, '100', "The 'p' param should be '100' when it is the middle param");
+ assert.strictEqual(thirdParam, 'lol', "The last param should be 'lol'");
+ window.location.hash = '';
+ });
+
+ it("HashParams.update", function ()
+ {
+ window.location.hash = '';
+ // First try it with no hash params in the URL
+ HashParams.update('p', '1');
+ assert.strictEqual(window.location.hash, '#p=1');
+
+ // The key is present but there is no value
+ window.location.hash = '#p=';
+ HashParams.update('p', '2');
+ assert.strictEqual(window.location.hash, '#p=2');
+
+ // Then, with a bunch of irrelevant ones
+ window.location.hash = '#key=2&another=3';
+ HashParams.update('p', '3');
+ assert.strictEqual(window.location.hash, '#key=2&another=3&p=3');
+
+ // One irrelevant one
+ window.location.hash = '#a=b';
+ HashParams.update('p', '4');
+ assert.strictEqual(window.location.hash, '#a=b&p=4');
+
+ // Only one hash param, and it's the one we want to update
+ window.location.hash = '#p=1';
+ HashParams.update('p', '9001');
+ assert.strictEqual(window.location.hash, '#p=9001');
+
+ // Two hash params, one of which is the one we want to update
+ window.location.hash = '#p=4&h=1';
+ HashParams.update('p', '1');
+ assert.strictEqual(window.location.hash, '#p=1&h=1');
+ HashParams.update('h', '100');
+ assert.strictEqual(window.location.hash, '#p=1&h=100');
+
+ // Two hash params, both are which are right (choose one)
+ // Should never happen unless the user is being malicious
+ window.location.hash = '#p=4&p=2';
+ HashParams.update('p', '5');
+ assert.strictEqual(window.location.hash, '#p=4&p=5');
+ // Not actually sure why it chooses the first one to update
+
+ // Restore the URL
+ window.location.hash = '';
+ });
+});
\ No newline at end of file
diff --git a/test/utils/parse-label-value_test.js b/test/utils/parse-label-value_test.js
new file mode 100644
index 00000000..0ff3605f
--- /dev/null
+++ b/test/utils/parse-label-value_test.js
@@ -0,0 +1,45 @@
+import parseLabelValue from '../../source/js/utils/parse-label-value';
+
+describe('Parse Label Value', function ()
+{
+ it('Should parse object -> array -> objects', function ()
+ {
+ let key = {
+ "label" : "Date",
+ "value" : [
+ {
+ "@value" : "1101-1125"
+ }, {
+ "@value" : "1301-1400"
+ }
+ ]
+ };
+
+ let obj = parseLabelValue(key);
+
+ assert.strictEqual(obj.label, 'Date', 'Label should be "Date"');
+ assert.strictEqual(obj.value, '1101-1125, 1301-1400', 'Value should be the date string');
+ });
+
+ it('Should parse object -> array', function ()
+ {
+ let key = {
+ "label": {
+ "en": [
+ "Date Statement"
+ ]
+ },
+ "value": {
+ "en": [
+ "1401",
+ "1500"
+ ]
+ }
+ };
+
+ let obj = parseLabelValue(key);
+
+ assert.strictEqual(obj.label, 'Date Statement', 'Label should be "Date Statement"');
+ assert.strictEqual(obj.value, '1401, 1500', 'Value should be the date string');
+ });
+});
\ No newline at end of file
diff --git a/test/z_plugins_test.js b/test/z_plugins_test.js
new file mode 100644
index 00000000..430c2c1a
--- /dev/null
+++ b/test/z_plugins_test.js
@@ -0,0 +1,184 @@
+import Diva from '../source/js/diva';
+
+let v3Manifest = require('./manifests/iiifv3.json');
+
+describe('Plugins', function ()
+{
+ beforeEach(function ()
+ {
+ // reset event subscription so only current test is subscribed
+ Diva.Events.unsubscribeAll();
+
+ // recreate diva instance
+ let oldWrapper = document.getElementById('parent-wrapper');
+ oldWrapper.parentNode.removeChild(oldWrapper);
+ let newWrapper = document.createElement('div');
+ newWrapper.id = 'parent-wrapper';
+ newWrapper.setAttribute('style', 'width: 984px;');
+ let div = document.createElement('div');
+ div.id = 'diva-wrapper';
+ newWrapper.appendChild(div);
+ document.body.appendChild(newWrapper);
+ });
+
+ //METADATA PLUGIN
+ it('Metadata plugin is created when added as a Diva plugin', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ let icon = document.getElementsByClassName('diva-metadata-icon')[0];
+ assert.isNotNull(icon, 'Metadata icon should exist');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ plugins: [Diva.MetadataPlugin]
+ });
+ });
+
+ it('Metadata div can be opened and closed', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ let icon = document.getElementsByClassName('diva-metadata-icon')[0];
+
+ assert.isNull(document.getElementById('metadataDiv'), 'Metadata div should not exist yet');
+
+ icon.click();
+
+ let div = document.getElementById('metadataDiv');
+ assert.isNotNull(div, 'Metadata div should exist');
+
+ icon.click();
+ assert.strictEqual(div.style.display, 'none', 'Div should be hidden');
+
+ icon.click();
+ document.getElementsByClassName('close-button')[0].click();
+ assert.strictEqual(div.style.display, 'none', 'Div should be hidden from close button');
+
+ // trigger drag events
+ icon.click();
+ let e = new Event('mousedown');
+ div.dispatchEvent(e);
+ e = new Event('mousemove');
+ document.dispatchEvent(e);
+ e = new Event('mouseup');
+ document.dispatchEvent(e);
+ icon.click();
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ plugins: [Diva.MetadataPlugin]
+ });
+ });
+
+ // hard to test dragging the element with just javascript, skipping
+
+ // DOWNLOAD PLUGIN
+ it('Download plugin is created when added as a Diva plugin', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ let icon = document.getElementsByClassName('diva-download-icon')[0];
+ assert.isNotNull(icon, 'Download icon should exist');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ plugins: [Diva.DownloadPlugin]
+ });
+ });
+
+ it('Download icon can be clicked', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ let icon = document.getElementsByClassName('diva-download-icon')[0];
+ icon.click();
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ plugins: [Diva.DownloadPlugin]
+ });
+ });
+
+ // MANIPULATION PLUGIN
+ it('Manipulation plugin is created when added as a Diva plugin', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ let icon = document.getElementsByClassName('diva-manipulation-icon')[0];
+ assert.isNotNull(icon, 'Manipulation icon should exist');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ plugins: [Diva.ManipulationPlugin]
+ });
+ });
+
+ it('Manipulation controls can be used', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ let icon = document.getElementsByClassName('diva-manipulation-icon')[0];
+ icon.click();
+
+ let controls = document.getElementsByClassName('manipulation-tools')[0];
+ assert.isNotNull(controls, 'Controls exist once icon is clicked');
+
+ // give main image some time to load
+ setTimeout(() =>
+ {
+ // do all control related tests
+ let view = document.getElementsByClassName('manipulation-main-area')[0];
+
+ let event = new MouseEvent('dblclick', {
+ 'view': window,
+ 'bubbles': true,
+ 'cancelable': true
+ });
+
+ view.dispatchEvent(event);
+
+ let zoomSlider = document.getElementById('zoom-slider');
+ assert.strictEqual(zoomSlider.value, '2', 'Zoom should now be 2');
+
+ // click on mirror buttons
+ document.getElementById('horizontal-mirror-button').click();
+ document.getElementById('vertical-mirror-button').click();
+
+ // click on first color filter button (grayscale rn)
+ document.getElementsByClassName('color-filters')[0].click();
+ let log = document.getElementById('filter-log');
+
+ // change select to threshold
+ let select = document.getElementById('filter-select');
+ select.value = 'threshold';
+ event = new Event('change');
+ select.dispatchEvent(event);
+ assert.isFalse(log.innerText.includes('Grayscale'), 'Log should be reset');
+
+ // click on secondary image
+ document.getElementsByClassName('manipulation-sidebar-secondary-image')[0].click();
+
+ done();
+ }, 1000);
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: v3Manifest,
+ plugins: [Diva.ManipulationPlugin]
+ });
+ });
+
+ // hard to test dragging the sliders to manipulate the image with just javascript, skipping
+});
\ No newline at end of file
diff --git a/tests/event-tracker.js b/tests/event-tracker.js
deleted file mode 100644
index cb579473..00000000
--- a/tests/event-tracker.js
+++ /dev/null
@@ -1,73 +0,0 @@
-var diva = require('../source/js/diva');
-
-module.exports = EventTracker;
-
-function EventTracker(assert, viewer)
-{
- this._assert = assert;
- this._viewer = viewer;
- this._queue = [];
-
- this._subscribedEvents = [];
-}
-
-/**
- * Track events of the given type and make sure they aren't called unexpectedly.
- * Event types are also watched if expect() is called for an event of that type.
- *
- * @param {string} eventName
- */
-EventTracker.prototype.watchEvent = function (eventName)
-{
- if (this._subscribedEvents.indexOf(eventName) === -1)
- {
- var handler = this._handleEvent.bind(this, eventName);
-
- diva.Events.subscribe(eventName, handler, this._viewer.getInstanceId());
- this._subscribedEvents.push(eventName);
- }
-};
-
-/**
- * Assert that the next event of a watched type published by the viewer will
- * have these arguments.
- *
- * @param {string} eventName
- * @param {...any} args
- */
-EventTracker.prototype.expect = function (eventName)
-{
- var args = Array.prototype.slice.call(arguments, 1);
-
- this._queue.push({
- expected: {
- event: eventName,
- args: args
- },
- done: this._assert.async()
- });
-
- this.watchEvent(eventName);
-};
-
-EventTracker.prototype._handleEvent = function (eventName)
-{
- var args = Array.prototype.slice.call(arguments, 1);
- var queued = this._queue.shift();
-
- if (!queued)
- {
- this._assert.deepEqual({ event: eventName, args: args }, null, 'Unexpected event triggered');
- return;
- }
-
- var argString = queued.expected.args.map(function (arg)
- {
- return arg + '';
- }).join(', ');
-
- var description = 'Expected event ' + queued.expected.event + ': ' + argString;
- this._assert.deepEqual({ event: eventName, args: args }, queued.expected, description);
-
- queued.done();
-};
diff --git a/tests/index.html b/tests/index.html
deleted file mode 100755
index 1b236ef2..00000000
--- a/tests/index.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Diva.js Test Suite
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/main.js b/tests/main.js
deleted file mode 100644
index d16f2559..00000000
--- a/tests/main.js
+++ /dev/null
@@ -1,15 +0,0 @@
-require('qunit-assert-close');
-require('jquery');
-require('jquery-simulate/jquery.simulate.js');
-
-require('./utils');
-
-// Load all source files to ensure they're counted for code coverage
-const srcContext = require.context('../source/js/', true, /(diva|plugins\/.*)\.js$/);
-srcContext.keys().forEach(srcContext);
-
-require('../source/js/register-builtin-plugins');
-
-// Load all test files
-const testsContext = require.context('./unit/', true, /\.js$/);
-testsContext.keys().forEach(testsContext);
diff --git a/tests/unit/composite-image.js b/tests/unit/composite-image.js
deleted file mode 100644
index a0ba71e0..00000000
--- a/tests/unit/composite-image.js
+++ /dev/null
@@ -1,95 +0,0 @@
-'use strict';
-
-var CompositeImage = require('../../source/js/composite-image');
-
-QUnit.module('CompositeImage');
-
-QUnit.test('getTiles(zoomLevel)', function (assert)
-{
- var tileLevels = [
- dummyTileLevel({ zoomLevel: 2, baseRows: 1, baseCols: 1 }),
- dummyTileLevel({ zoomLevel: 1, baseRows: 1, baseCols: 1 }),
- dummyTileLevel({ zoomLevel: 0, baseRows: 1, baseCols: 1 })
- ];
-
- var composite = new CompositeImage(tileLevels);
-
- // Load the really low-res tile
- composite.updateWithLoadedUrls(getUrls(tileLevels[2].tiles));
-
- assert.propEqual(composite.getTiles(2), tileLevels[2].tiles, 'Should load available images');
-
- var mostOfLevel1 = tileLevels[1].tiles.slice(1);
- composite.updateWithLoadedUrls(getUrls(mostOfLevel1));
-
- assert.propEqual(composite.getTiles(2), [tileLevels[2].tiles[0]].concat(mostOfLevel1),
- 'Should load lower-res tiles if not completely covered (with low-res first)');
-
- assert.propEqual(composite.getTiles(0), tileLevels[2].tiles,
- 'Should prefer tiles at the specified zoomLevel, then higher levels, then lower');
-
- composite.clear();
- composite.updateWithLoadedUrls(getUrls(tileLevels[2].tiles));
- var mostOfLevel0 = tileLevels[0].tiles.slice(1);
- composite.updateWithLoadedUrls(getUrls(mostOfLevel0));
-
- assert.propEqual(composite.getTiles(2), [tileLevels[2].tiles[0]].concat(mostOfLevel0),
- 'Should load lower-res tiles across multiple zoom levels if not completely covered');
-});
-
-function dummyTileLevel(options)
-{
- var zoomLevel = options.zoomLevel,
- baseRows = options.baseRows,
- baseCols = options.baseCols;
-
- var tiles = [];
- var scaleRatio = Math.pow(2, zoomLevel);
-
- for (var baseRow=0; baseRow < baseRows; baseRow++) {
- for (var baseCol=0; baseCol < baseCols; baseCol++) {
- tiles.push.apply(tiles, dummyTiles(scaleRatio, baseRow, baseCol));
- }
- }
-
- return {
- zoomLevel: zoomLevel,
- rows: baseRows * scaleRatio,
- cols: baseCols * scaleRatio,
- tiles: tiles
- };
-}
-
-function dummyTiles(scaleRatio, baseRow, baseCol)
-{
- var tiles = [];
-
- for (var rowOffset=0; rowOffset < scaleRatio; rowOffset++)
- {
- for (var colOffset=0; colOffset < scaleRatio; colOffset++)
- {
- var row = baseRow * scaleRatio + rowOffset;
- var col = baseCol * scaleRatio + colOffset;
-
- var url = 'dummy://ratio/' + scaleRatio + '/' +
- baseRow + '[' + rowOffset + ']/' +
- baseCol + '[' + colOffset + ']';
-
- // FIXME: More fields
- tiles.push({
- url: url,
- row: row,
- col: col
- });
- }
- }
-
- return tiles;
-}
-
-function getUrls(tiles) {
- return tiles.map(function (tile)
- {
- return tile.url;
- });
-}
diff --git a/tests/unit/diva-global.js b/tests/unit/diva-global.js
deleted file mode 100644
index f5e8628e..00000000
--- a/tests/unit/diva-global.js
+++ /dev/null
@@ -1,40 +0,0 @@
-var $ = require('jquery');
-var TestUtils = require('../utils');
-var diva = require('../../source/js/diva');
-
-QUnit.module("diva global", { beforeEach: TestUtils.clearTempDiva });
-
-QUnit.test('diva.create(elem, options) -> Diva', function (assert)
-{
- var wrapper = TestUtils.getWrapper()[0];
- var options = {
- objectData: '../demo/beromunster-iiif.json'
- };
-
- var inst = diva.create(wrapper, options);
-
- assert.strictEqual(inst, $(wrapper).data('diva'), 'Should instantiate and return a Diva viewer');
-
- assert.throws(function ()
- {
- diva.create(wrapper, options);
- }, new Error("Diva is already initialized on #diva-temp"), 'Should throw if element is already initialized');
-});
-
-QUnit.test('diva.find(elem) -> ?Diva', function (assert)
-{
- var dv = $.tempDiva({});
-
- var parent = TestUtils.getWrapper()[0];
-
- assert.strictEqual(diva.find(document.body), null, 'Should return null if the element is not a Diva wrapper');
- assert.strictEqual(diva.find(parent), dv, 'Should return existing instances');
-
- var done = assert.async();
- diva.Events.subscribe('ViewerDidLoad', function ()
- {
- dv.destroy();
- assert.strictEqual(diva.find(parent), null, 'Should return null after instance destruction');
- done();
- });
-});
diff --git a/tests/unit/hashparams.js b/tests/unit/hashparams.js
deleted file mode 100644
index 3f370109..00000000
--- a/tests/unit/hashparams.js
+++ /dev/null
@@ -1,209 +0,0 @@
-/*
-Test coverage: pretty much complete
-*/
-
-var $ = require('jquery');
-var clearTempDiva = require('../utils').clearTempDiva;
-var diva = require('../../source/js/diva');
-
-QUnit.module("Hash params", { beforeEach: clearTempDiva });
-
-var testHashParams = function (testName, hashParams, onReadyCallback, config)
-{
- QUnit.test(testName, function (assert)
- {
- var done = assert.async();
-
- var previousHash = window.location.hash;
-
- window.location.hash = Object.keys(hashParams).map(function (param)
- {
- return param + '=' + hashParams[param];
- }).join('&');
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- var scroll = {
- left: settings.viewportElement.scrollLeft,
- top: settings.viewportElement.scrollTop
- };
-
- onReadyCallback.call(this, settings, assert, scroll);
- window.location.hash = previousHash;
- done();
- });
-
- $.tempDiva($.extend({
- hashParamSuffix: ''
- }, config));
- });
-};
-
-testHashParams('works with hashParamSuffix', {vxyz: 'g', f: 'true'}, function (settings, assert)
-{
- assert.ok(settings.inGrid, 'Should read properties with the specified suffix');
- assert.ok(!settings.inFullscreen, 'Should not read properties without it');
-}, {hashParamSuffix: 'xyz'});
-
-testHashParams("grid view (v)", {v: "g"}, function (settings, assert)
-{
- assert.ok(settings.inGrid, "inGrid setting should be true");
- assert.strictEqual($(settings.selector + 'view-menu').children()[0].classList[0], 'diva-grid-icon', "Current toolbar view icon should be the grid icon");
- assert.ok($(settings.selector + 'grid-out-button').is(':visible'), "Grid buttons (-) should be visible");
- assert.ok($(settings.selector + 'grid-in-button').is(':visible'), "Grid buttons (+) should be visible");
- assert.ok(!$(settings.selector + 'zoom-slider').is(':visible'), "Zoom slider should not be visible");
-});
-
-testHashParams("book view (v)", {v: "b"}, function (settings, assert)
-{
- assert.ok(settings.inBookLayout, "inBookLayout setting should be true");
- assert.strictEqual($(settings.selector + 'view-menu').children()[0].classList[0], 'diva-book-icon', "Current toolbar view icon should be the book icon");
- assert.ok(this.isPageInViewport(0), 'There should be some book pages');
-});
-
-testHashParams("fullscreen (f)", {f: "true"}, function (settings, assert)
-{
- assert.ok(settings.inFullscreen, "inFullscreen setting should be true");
- assert.ok($('body').hasClass('diva-hide-scrollbar'), "The body element should have the hide-scrollbar class");
-});
-
-testHashParams("view (v) = 'g' and fullscreen (f)", {v: "g", f: "true"}, function (settings, assert)
-{
- assert.ok(settings.inFullscreen, "inFullscreen setting should be true");
- assert.ok(settings.inGrid, "inGrid setting should be true");
-});
-
-testHashParams("zoom level (z) - valid value", {z: "3"}, function (settings, assert)
-{
- assert.strictEqual(settings.zoomLevel, 3, "Initial zoom level should be 3");
-});
-
-testHashParams("zoom level (z) - invalid value", {z: "5"}, function (settings, assert)
-{
- assert.strictEqual(settings.zoomLevel, 0, "Initial zoom was invalid but >= 0, should be set to the min (0)");
-});
-
-testHashParams("zoom level (z) and view (v) = 'g' ", {z: "1", v: "g"}, function (settings, assert)
-{
- assert.strictEqual(settings.zoomLevel, 1, "Initial zoom level should be 1");
- assert.ok(settings.inGrid, "Should be in grid initially");
-
- // Now let's switch into document view and see if the zoom level is preserved
- $(settings.selector + 'grid-icon').click();
- assert.strictEqual(settings.zoomLevel, 1, "Zoom level setting should still be 1");
- assert.strictEqual($(settings.selector + 'zoom-label').text(), "Zoom level: 1.00", "Zoom buttons label should show a zoom level of 1");
-});
-
-testHashParams("zoom level (z) and fullscreen (f)", {z: "1", f: "true"}, function (settings, assert)
-{
- assert.strictEqual(settings.zoomLevel, 1, "Initial zoom level should be 1");
- assert.ok(settings.inFullscreen, "Should be in fullscreen initially");
-
- // Check that we're actually in fullscreen mode
- assert.ok($('body').hasClass('diva-hide-scrollbar'), "The body element should have the hide-scrollbar class");
-
- // Check that the zoom level is actually 1
- assert.strictEqual($(settings.selector + 'zoom-label').text(), "Zoom level: 1.00", "Zoom buttons label should show a zoom level of 1");
-});
-
-testHashParams("pagesPerRow (n) - valid value", {n: "3"}, function (settings, assert)
-{
- assert.strictEqual(settings.pagesPerRow, 3, "Pages per row should be 3 initially");
-});
-
-testHashParams("pagesPerRow (n) - invalid value", {n: "1"}, function (settings, assert)
-{
- assert.strictEqual(settings.pagesPerRow, 8, "Pages per row should default to the maximum");
-});
-
-testHashParams("pagesPerRow (n) and view (v) = 'g'", {n: "3", v: "g"}, function (settings, assert)
-{
- assert.strictEqual(settings.pagesPerRow, 3, "Pages per row should be 3 initially");
- assert.ok(settings.inGrid, "Should be in grid initially");
-
- // Check that the pages per row setting is actually 3
- assert.strictEqual($(settings.selector + 'grid-label').text(), "Pages per row: 3", "Grid buttons label should show 3 pages per row");
-});
-
-testHashParams("page filename (i) - valid value", {i: "https://images.simssa.ca/iiif/image/beromunster/bm_006.tif"}, function (settings, assert)
-{
- assert.strictEqual(settings.currentPageIndex, 5, "The initial page should be page 6 (index of 5)");
-}, {enableFilename: true});
-
-testHashParams("page filename (i) - invalid value", {i: "https://images.simssa.ca/iiif/image/beromunster/bm_000.tif"}, function (settings, assert)
-{
- assert.strictEqual(settings.currentPageIndex, 0, "The initial page should just be the first page");
-}, {enableFilename: true});
-
-testHashParams("page number (p) - valid value", {p: "6"}, function (settings, assert)
-{
- assert.strictEqual(settings.currentPageIndex, 5, "The initial page should be page 6 (index of 5)");
-}, {enableFilename: false});
-
-testHashParams("page number (p) - invalid value", {p: "600"}, function (settings, assert)
-{
- assert.strictEqual(settings.currentPageIndex, 0, "The initial page should just be the first page");
-}, {enableFilename: false});
-
-testHashParams("page number (p), view = 'g'", {p: "100", v: "g"}, function (settings, assert)
-{
- assert.strictEqual(settings.currentPageIndex, 99, "The initial page should be 100 (index of 99)");
- assert.ok(settings.inGrid, "Should be in grid");
-}, {enableFilename: false});
-
-testHashParams("horizontal and vertical offsets (x, y) without page specified", {x: 100, y: 200}, function (settings, assert, scroll)
-{
- var expectedLeftScroll = (settings.innerElement.clientWidth - settings.panelWidth) / 2;
- assert.close(scroll.left, expectedLeftScroll, 1.5, 'x position should not change');
- assert.strictEqual(scroll.top, 0, 'y position should not change');
-});
-
-testHashParams("vertical offset (y) on first page - positive value", {y: "600", p: "1"}, function (settings, assert, scroll)
-{
- assert.strictEqual(scroll.top, 250, "Should have scrolled 250 (600 = top of page - viewport y-center) vertically");
-});
-
-testHashParams("vertical offset (y) on first page - negative value", {y: "-600", p: "1"}, function (settings, assert, scroll)
-{
- assert.strictEqual(scroll.top, 0, "Should not have scrolled negatively because, well, you can't");
-});
-
-testHashParams("vertical offset (y) and page number (p)", {y: 500, p: "50"}, function (settings, assert, scroll)
-{
- var expectedTopScroll = 52922;
- assert.strictEqual(settings.currentPageIndex, 49, "Current page should be 50 (index of 49)");
- assert.strictEqual(scroll.top, expectedTopScroll, "Should be heightAbovePages + 500 pixels of scroll from the top + page y-center");
-
- // Check that the horizontal scroll hasn't been weirdly affected
- var expectedInnerWidth = settings.manifest.getMaxWidth(settings.zoomLevel) + settings.horizontalPadding * 2;
- var expectedLeftScroll = parseInt((expectedInnerWidth - settings.panelWidth) / 2, 10);
- assert.strictEqual(scroll.left, expectedLeftScroll, "Horizontal scroll should just center it");
-}, {enableFilename: false, zoomLevel: 2});
-
-testHashParams("horizontal offset (x) on first page - positive value", {x: "100", p: "1"}, function (settings, assert, scroll)
-{
- // FIXME: https://github.com/DDMAL/diva.js/issues/331
- assert.strictEqual(scroll.left, 0, "Horizontal scroll should center it + 100 pixels to the right");
-});
-
-testHashParams("horizontal offset (x) on first page - negative value", {x: "-100", p: "1"}, function (settings, assert, scroll)
-{
- // FIXME: https://github.com/DDMAL/diva.js/issues/331
- assert.strictEqual(scroll.left, 0, "Horizontal scroll should center it + 100 pixels to the left");
-});
-
-testHashParams("horizontal offset (x) and page number (p)", {x: 100, p: "50"}, function (settings, assert, scroll)
-{
- // FIXME: https://github.com/DDMAL/diva.js/issues/331
- var expectedTopScroll = 52772;
- assert.strictEqual(scroll.top, expectedTopScroll, "vertical scroll should be just to page 50");
- assert.strictEqual(scroll.left, 0, "Horizontal scroll should center it + 100 pixels to the right");
-}, {enableFilename: false});
-
-testHashParams("horizontal offset (x), vertical offset (y), page number (p)", {x: 100, y: 200, p: "50"}, function (settings, assert, scroll)
-{
- // FIXME: https://github.com/DDMAL/diva.js/issues/331
- var expectedTopScroll = 52622;
- assert.strictEqual(scroll.top, expectedTopScroll, "vertical scroll should be to page 50 + 200 + page y-center");
- assert.strictEqual(scroll.left, 0, "Horizontal scroll should center it + 100 pixels to the right");
-}, {enableFilename: false});
diff --git a/tests/unit/image-cache.js b/tests/unit/image-cache.js
deleted file mode 100644
index 038c12f2..00000000
--- a/tests/unit/image-cache.js
+++ /dev/null
@@ -1,104 +0,0 @@
-'use strict';
-
-var ImageCache = require('../../source/js/image-cache');
-
-QUnit.module('ImageCache');
-
-QUnit.test('Default max entries is 100', function (assert)
-{
- var cache = new ImageCache();
- assert.strictEqual(cache.maxKeys, 100);
-});
-
-QUnit.test('Evicts the least recently used entry', function (assert)
-{
- var cache = new ImageCache({ maxKeys: 2 });
-
- var imgA = new Image();
- var imgB = new Image();
- var imgC = new Image();
-
- cache.put('A', imgA);
- cache.put('B', imgB);
- cache.put('C', imgC);
-
- assert.strictEqual(cache.has('A'), false, 'A evicted [has]');
- assert.strictEqual(cache.has('B'), true, 'B remains [has]');
- assert.strictEqual(cache.has('C'), true, 'C remains [has]');
-
- assert.strictEqual(cache.get('A'), null, 'A evicted [get]');
- assert.strictEqual(cache.get('B'), imgB, 'B remains [get]');
- assert.strictEqual(cache.get('C'), imgC, 'C remains [get]');
-
- cache.put('A', imgA);
- assert.strictEqual(cache.has('A'), true, 'A restored [has v2]');
- assert.strictEqual(cache.has('B'), false, 'B evicted [has v2]');
- assert.strictEqual(cache.has('C'), true, 'C remains [has v2]');
-});
-
-QUnit.test('Put overwrites existing entries and bumps their LRU position', function (assert)
-{
- var cache = new ImageCache({ maxKeys: 2 });
-
- var imgA = new Image();
- var imgA2 = new Image();
- var imgB = new Image();
- var imgC = new Image();
-
- cache.put('A', imgA);
- cache.put('B', imgB);
- cache.put('A', imgA2);
- cache.put('C', imgC);
-
- assert.strictEqual(cache.get('A'), imgA2, 'A overwritten, still in cache');
- assert.strictEqual(cache.get('B'), null, 'B evicted');
- assert.strictEqual(cache.get('C'), imgC, 'C still in cache');
-});
-
-QUnit.test("Entries which have been acquire()'d are promoted", function (assert)
-{
- var cache = new ImageCache({ maxKeys: 2 });
-
- var imgA = new Image();
- var imgB = new Image();
- var imgC = new Image();
-
- cache.put('A', imgA);
- cache.put('B', imgB);
-
- cache.acquire('A');
- cache.release('A');
-
- cache.put('C', imgC); // A would be evicted here if not promoted
-
- assert.strictEqual(cache.has('A'), true, 'A remains');
- assert.strictEqual(cache.has('B'), false, 'B evicted');
- assert.strictEqual(cache.has('C'), true, 'C remains');
-});
-
-QUnit.test("Entries which have been acquire()'d are not evicted until released", function (assert)
-{
- var cache = new ImageCache({ maxKeys: 2 });
-
- var imgA = new Image();
- var imgB = new Image();
- var imgC = new Image();
-
- cache.put('A', imgA);
- cache.acquire('A');
-
- cache.put('B', imgB);
- cache.acquire('B');
-
- cache.put('C', imgC); // A would be evicted here if not held
-
- assert.strictEqual(cache.has('A'), true, 'A remains');
- assert.strictEqual(cache.has('B'), true, 'B remains');
- assert.strictEqual(cache.has('C'), true, 'C still entered');
-
- cache.release('B'); // B will be evicted even though it still has priority over A
-
- assert.strictEqual(cache.has('A'), true, 'A still remains (held)');
- assert.strictEqual(cache.has('B'), false, 'B evicted');
- assert.strictEqual(cache.has('C'), true, 'C still remains (by LRU policy)');
-});
diff --git a/tests/unit/navigation.js b/tests/unit/navigation.js
deleted file mode 100644
index 7f251fbc..00000000
--- a/tests/unit/navigation.js
+++ /dev/null
@@ -1,500 +0,0 @@
-/*
-Test coverage: pretty much complete
-Could also test key navigation, but it's pretty difficult and doesn't seem worth it
-*/
-
-var $ = require('jquery');
-var clearTempDiva = require('../utils').clearTempDiva;
-var diva = require('../../source/js/diva');
-var EventTracker = require('../event-tracker');
-
-QUnit.module("Navigation", { beforeEach: clearTempDiva });
-
-// FIXME: This test pattern is pretty iffy. There should be more robust ways to do this than
-// with a timeout, and the toolbar and page index are kind of separate concerns.
-var assertPageAfterScroll = function (scroll, index, divaInst, assert, done)
-{
- var viewportObject = divaInst.getSettings().viewportObject;
-
- if ('left' in scroll)
- viewportObject.scrollLeft(scroll.left);
-
- viewportObject.one('scroll', function ()
- {
- setTimeout(function ()
- {
- var rendered = (index + 1) + '';
-
- var actualIndex = divaInst.getCurrentPageIndex();
- assert.strictEqual(actualIndex, index, "The page should now be " + rendered + " (index of " + index + ")");
-
- var actualRendered = $(divaInst.getSettings().selector + 'current-page').text();
- assert.strictEqual(actualRendered, rendered, "The toolbar should have been updated");
-
- done();
- }, 10);
- });
-
- viewportObject.scrollTop(scroll.top);
-};
-
-var assertZoomIs = function (level, divaInst, controlName, assert)
-{
- var actualLevel = divaInst.getZoomLevel();
- var renderedLevel = $(divaInst.getSettings().selector + 'zoom-level').text();
-
- assert.strictEqual(actualLevel, level, "Zoom level should now be " + level);
- assert.strictEqual(renderedLevel, level.toFixed(2), "The " + controlName + " label should have been updated");
-};
-
-QUnit.test("Scrolling in document view", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assertPageAfterScroll({ top: 10000 }, 34, this, assert, done);
- });
-
- $.tempDiva({
- zoomLevel: 0,
- adaptivePadding: 0,
- fixedPadding: 40
- });
-});
-
-QUnit.test("Scrolling in grid view", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assertPageAfterScroll({ top: 10000 }, 26, this, assert, done);
- });
-
- $.tempDiva({
- inGrid: true,
- pagesPerRow: 2,
- fixedHeightGrid: false
- });
-});
-
-QUnit.test("Scrolling in book view", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assertPageAfterScroll({ left: 200, top: 10000 }, 18, this, assert, done);
- });
-
- $.tempDiva({
- objectData: '../demo/beromunster-iiif-test.json'
- });
-});
-
-// FIXME: The behaviour for this should be better-defined, but the behaviour
-// in this test isn't necessarily right either.
-QUnit.skip('Page positioning on zoom', function (assert)
-{
- var done = assert.async();
- var state;
-
- var dv = $.tempDiva({});
-
- var loadSig = diva.Events.subscribe('ViewerDidLoad', function ()
- {
- diva.Events.unsubscribe(loadSig);
-
- var eventTracker = new EventTracker(assert, dv);
-
- eventTracker.expect('ZoomLevelDidChange', 1);
- eventTracker.expect('ZoomLevelDidChange', 2);
-
- eventTracker.expect('ViewerDidZoomOut', 1);
- eventTracker.expect('ViewerDidZoom', 1);
-
- eventTracker.expect('ViewerDidZoomIn', 2);
- eventTracker.expect('ViewerDidZoom', 2);
-
- state = dv.getState();
-
- dv.zoomOut();
- });
-
- diva.Events.subscribe('ViewerDidZoomOut', function ()
- {
- dv.zoomIn();
- });
-
- diva.Events.subscribe('ViewerDidZoomIn', function ()
- {
- var newState = dv.getState();
-
- Object.keys(state).forEach(function (key)
- {
- var msg = 'state.' + key + ' should not change from zooming in and out';
-
- if (key === 'x' || key === 'y')
- {
- // Numbers are hard :(
- assert.close(newState[key], state[key], 3, msg);
- }
- else
- {
- assert.strictEqual(newState[key], state[key], msg);
- }
- });
-
- done();
- });
-});
-
-// Try to verify that zoom animation can be gracefully interrupted
-QUnit.test('View change during zoom animation', function (assert)
-{
- var done = assert.async();
- var gridViewSeen = false;
-
- diva.Events.subscribe('ViewerDidLoad', function ()
- {
- var eventTracker = new EventTracker(assert, this);
-
- eventTracker.watchEvent('ViewerDidZoom');
- eventTracker.watchEvent('ViewerDidZoomIn');
- eventTracker.watchEvent('ViewerDidZoomOut');
-
- eventTracker.expect('ZoomLevelDidChange', 3);
- eventTracker.expect('ViewDidSwitch', true);
- eventTracker.expect('ViewDidSwitch', false);
-
- diva.Events.subscribe('ZoomLevelDidChange', function ()
- {
- this.enterGridView();
- }, this.getInstanceId());
-
- diva.Events.subscribe('ViewDidSwitch', function (inGrid)
- {
- // debugger
- if (inGrid)
- {
- gridViewSeen = true;
- assert.strictEqual(this.getZoomLevel(), 3, 'Updated zoom level should be set');
-
- defer(this.leaveGridView, this);
- }
- else
- {
- assert.ok(gridViewSeen, 'Grid view should have been entered');
- assert.strictEqual(this.getZoomLevel(), 3, 'Zoom level should still be 3');
-
- done();
- }
- }, this.getInstanceId());
-
- // debugger
- this.zoomIn();
- });
-
- $.tempDiva({
- zoomLevel: 2
- });
-
- function defer(callback, ctx)
- {
- setTimeout(callback.bind(ctx), 10);
- }
-});
-
-QUnit.test("Zooming using the slider", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- var slider = $(settings.selector + 'zoom-slider');
-
- slider.val(0);
- slider.change();
-
- assertZoomIs(0, this, 'slider', assert);
-
- slider.val(4);
- slider.change();
-
- assertZoomIs(4, this, 'slider', assert);
-
- done();
- });
-
- $.tempDiva({
- enableZoomControls: 'slider',
- zoomLevel: 4
- });
-});
-
-QUnit.test("Zooming using +/- buttons", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- for (var i = 0; i < 4; i++)
- {
- $(settings.selector + 'zoom-out-button').trigger('click');
- }
-
- assertZoomIs(0, this, 'zoom buttons', assert);
-
- for (i = 0; i < 4; i++)
- {
- $(settings.selector + 'zoom-in-button').trigger('click');
- }
-
- assertZoomIs(4, this, 'zoom buttons', assert);
-
- done();
- });
-
- $.tempDiva({
- zoomLevel: 4
- });
-});
-
-QUnit.test("Changing pages per row in Grid view using slider", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- this.enterGridView();
- $(settings.selector + 'grid-slider').val(8);
- $(settings.selector + 'grid-slider').change();
- assert.strictEqual(this.getState().n, 8, "Pages per row should now be 8");
- assert.strictEqual($(settings.selector + 'pages-per-row').text(), '8', "The grid buttons label should have been updated");
-
- $(settings.selector + 'grid-slider').val(3);
- $(settings.selector + 'grid-slider').change();
- assert.strictEqual(this.getState().n, 3, "Pages per row should now be 3");
- assert.strictEqual($(settings.selector + 'pages-per-row').text(), '3', "The grid buttons label should have been updated");
-
- done();
- });
-
- $.tempDiva({
- enableGridControls: 'slider',
- pagesPerRow: 2
- });
-});
-
-QUnit.test("Scrolling and subsequently zooming in Grid view", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- settings.viewportObject.scrollTop(10050);
-
- var self = this;
- setTimeout(function ()
- {
- assert.strictEqual(self.getCurrentPageIndex(), 160, "The current page should be 170 (10050px down, 1000px viewport)");
-
- $(settings.selector + 'grid-slider').val(8);
- assert.strictEqual(self.getCurrentPageIndex(), 160, "The current page should still be 170");
-
- $(settings.selector + 'grid-slider').val(2);
- assert.strictEqual(self.getCurrentPageIndex(), 160, "The current page should still be 170");
-
- done();
- }, 10);
- });
-
- $.tempDiva({
- inGrid: true,
- enableGridControls: 'slider',
- pagesPerRow: 5,
- fixedHeightGrid: false
- });
-});
-
-QUnit.test("Changing pages per row in Grid view using +/- buttons", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- var eventTracker = new EventTracker(assert, this);
-
- eventTracker.expect('ViewDidSwitch', true);
- eventTracker.expect('GridRowNumberDidChange', 3);
- eventTracker.expect('GridRowNumberDidChange', 4);
- eventTracker.expect('GridRowNumberDidChange', 5);
- eventTracker.expect('GridRowNumberDidChange', 6);
- eventTracker.expect('GridRowNumberDidChange', 7);
- eventTracker.expect('GridRowNumberDidChange', 8);
-
- this.enterGridView();
- for (var i = 0; i < 6; i++)
- {
- $(settings.selector + 'grid-out-button').trigger('click');
- }
- assert.strictEqual(this.getState().n, 2, "Pages per row should now be 2");
- assert.strictEqual($(settings.selector + 'pages-per-row').text(), '2', "The grid buttons label should have been updated");
-
- for (i = 0; i < 6; i++)
- {
- $(settings.selector + 'grid-in-button').trigger('click');
- }
- assert.strictEqual(this.getState().n, 8, "Pages per row should now be 8");
- assert.strictEqual($(settings.selector + 'pages-per-row').text(), '8', "The grid buttons label should have been updated");
-
- done();
- });
-
- $.tempDiva({
- pagesPerRow: 2
- });
-});
-
-QUnit.test("Zooming by double-clicking", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- var eventTracker = new EventTracker(assert, this);
- eventTracker.expect('ZoomLevelDidChange', 2);
- eventTracker.expect('ViewerDidZoomIn', 2);
- eventTracker.expect('ViewerDidZoom', 2);
-
- var wrapperOffset = $('#diva-temp').offset();
- var testEvent = $.Event("dblclick");
- testEvent.pageX = 500;
- testEvent.pageY = 350 + wrapperOffset.top;
- testEvent.target = settings.innerElement;
-
- setTimeout(function ()
- {
- settings.innerObject.trigger(testEvent);
- setTimeout(function ()
- {
- assert.strictEqual(settings.zoomLevel, 2, "Zoom level should now be 2");
- assert.strictEqual(settings.currentPageIndex, 100, "Should still be on page 100");
- done();
- }, 10);
- }, 10);
- });
-
- $.tempDiva({
- zoomLevel: 1,
- goDirectlyTo: 100
- });
-});
-
-QUnit.test("Switching between document and grid view", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- var eventTracker = new EventTracker(assert, this);
- eventTracker.expect('ViewDidSwitch', true);
-
- assert.ok(!settings.inGrid, "Not in grid initially");
- $(settings.selector + 'grid-icon').click();
-
- // Click the grid icon, then wait a bit for the event to be triggered
- setTimeout(function ()
- {
- assert.ok(settings.inGrid, "Should now be in grid");
- assert.ok($(settings.selector + 'grid-out-button').is(':visible'), "Grid buttons should be visible (-)");
- assert.ok($(settings.selector + 'grid-in-button').is(':visible'), "Grid buttons should be visible (+)");
- assert.ok(!$(settings.selector + 'zoom-out-buttons').is(':visible'), "Zoom buttons should not be visible (-)");
- assert.ok(!$(settings.selector + 'zoom-in-buttons').is(':visible'), "Zoom buttons should not be visible (+)");
- done();
- }, 10);
- });
-
- $.tempDiva({});
-});
-
-QUnit.test("Switching between regular and fullscreen mode", function (assert)
-{
- var done = assert.async();
-
- var initialX = null;
- var initialY = null;
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.ok(!settings.inFullscreen, "Not in fullscreen initially");
-
- var state = this.getState();
- initialX = state.x;
- initialY = state.y;
-
- this.enterFullscreenMode();
- });
-
- diva.Events.subscribe('ModeDidSwitch', function (inFullscreen)
- {
- if (inFullscreen)
- {
- assert.ok(this.getSettings().inFullscreen, "Should now be in fullscreen");
- assert.ok($('body').hasClass('diva-hide-scrollbar'), "Body should have the hide-scrollbar class");
-
- this.leaveFullscreenMode();
- }
- else
- {
- var state = this.getState();
-
- assert.ok(!this.getSettings().inFullscreen, "Should now not be in fullscreen");
- assert.strictEqual(state.x, initialX, 'Entering and leaving fullscreen mode should not change the x position');
- assert.strictEqual(state.y, initialY, 'Entering and leaving fullscreen mode should not change the y position');
-
- done();
- }
- });
-
- $.tempDiva({});
-});
-
-QUnit.test("Jumping to page in Book view", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- var eventTracker = new EventTracker(assert, this);
-
- eventTracker.expect('VisiblePageDidChange', 5, this.getFilenames()[5]);
- eventTracker.expect('ViewerDidJump', 5);
-
- eventTracker.expect('VisiblePageDidChange', 6, this.getFilenames()[6]);
- eventTracker.expect('ViewerDidJump', 6);
-
- this.gotoPageByIndex(5);
-
- assert.ok(settings.inBookLayout, "Should be in book layout");
- assert.strictEqual($(settings.selector + 'current-page').text(), '6', "Toolbar should indicate page 6");
-
- var dv = this;
-
- setTimeout(function()
- {
- assert.ok(dv.isPageInViewport(5), "Page 6 (index 5) should be loaded");
-
- dv.gotoPageByIndex(6);
- assert.strictEqual($(settings.selector + 'current-page').text(), '7', "Toolbar should indicate page 7");
- assert.ok(dv.isPageInViewport(6), "Page 7 (index 6) should be loaded");
-
- done();
- }, 10);
- });
-
- $.tempDiva({
- inBookLayout: true
- });
-});
diff --git a/tests/unit/page-layouts/book-layout.js b/tests/unit/page-layouts/book-layout.js
deleted file mode 100644
index 6e9f763d..00000000
--- a/tests/unit/page-layouts/book-layout.js
+++ /dev/null
@@ -1,148 +0,0 @@
-var ImageManifest = require('../../../source/js/image-manifest');
-var getBookLayout = require('../../../source/js/page-layouts/book-layout');
-
-var iiifBeromunster = require('../../../demo/beromunster-iiif-test.json');
-
-var manifest = ImageManifest.fromIIIF(iiifBeromunster);
-
-QUnit.module('getBookLayout');
-
-QUnit.test('In vertical orientation positions first page to the right', function (assert)
-{
- var layouts = getBookLayout({
- manifest: manifest,
- verticallyOriented: true
- });
-
- var firstGroup = layouts[0];
- var width = manifest.getMaxPageDimensions(0).width;
-
- assert.strictEqual(firstGroup.pages.length, 1, 'First group should be a single page');
- assert.strictEqual(firstGroup.dimensions.width, 2 * width, 1, 'Group size should be twice page width');
- assert.strictEqual(firstGroup.pages[0].groupOffset.left, width, 1, 'Page should be offset to the left by its width');
-});
-
-QUnit.test('In horizontal orientation, shrink first group to single page size', function (assert)
-{
- var layouts = getBookLayout({
- manifest: manifest,
- verticallyOriented: false
- });
-
- var firstGroup = layouts[0];
- var width = manifest.getMaxPageDimensions(0).width;
-
- assert.strictEqual(firstGroup.pages.length, 1, 'First group should be a single page');
- assert.strictEqual(firstGroup.dimensions.width, width, 1, 'Group width should be page width');
- assert.strictEqual(firstGroup.pages[0].groupOffset.left, 0, 1, 'Page should not be offset to the left');
-});
-
-QUnit.test('In vertical orientation, facing pages groups fit max height, width', function (assert)
-{
- var layouts = getBookLayout({
- manifest: manifest,
- verticallyOriented: true
- });
-
- var group = layouts[1];
-
- assertDifferentSizePages(group, assert);
-
- assertFitsMax(group, 'width', assert);
- assertFitsMax(group, 'height', assert);
-});
-
-QUnit.test('In horizontal orientation, facing pages groups fit max height, tight width', function (assert)
-{
- var layouts = getBookLayout({
- manifest: manifest,
- verticallyOriented: false
- });
-
- var group = layouts[1];
-
- assertDifferentSizePages(group, assert);
- assertFitsMax(group, 'height', assert);
-
- var width1 = group.pages[0].dimensions.width;
- var width2 = group.pages[1].dimensions.width;
- var groupWidth = group.dimensions.width;
-
- assert.close(groupWidth, width1 + width2, 1, 'Group width should be sum of page widths');
-});
-
-QUnit.test('In vertical orientation, final left page is left-aligned', function (assert)
-{
- var layouts = getBookLayout({
- manifest: manifest,
- verticallyOriented: true
- });
-
- var lastGroup = layouts[layouts.length - 1];
-
- assert.strictEqual(lastGroup.pages.length, 1, 'Sanity check: Last group should be a single page');
-
- assert.close(lastGroup.dimensions.width,
- lastGroup.pages[0].dimensions.width * 2,
- 1,
- 'Group width should be twice page width');
-
- assert.strictEqual(lastGroup.dimensions.height,
- lastGroup.pages[0].dimensions.height,
- 'Group height should be page height');
-
- assert.close(lastGroup.pages[0].groupOffset.left, 0, 1, 'Page should not be offset to the left');
-});
-
-QUnit.test('In horizontal orientation, final left page is is in tight-fit group', function (assert)
-{
- var layouts = getBookLayout({
- manifest: manifest,
- verticallyOriented: false
- });
-
- var lastGroup = layouts[layouts.length - 1];
-
- assert.strictEqual(lastGroup.pages.length, 1, 'Sanity check: Last group should be a single page');
-
- assert.propEqual(lastGroup.dimensions, lastGroup.pages[0].dimensions, 1, 'Group size should be page size');
- assert.close(lastGroup.pages[0].groupOffset.left, 0, 1, 'Page should not be offset to the left');
-});
-
-QUnit.test('Displays facing pages in tight-fit group', function (assert)
-{
- var layouts = getBookLayout({
- manifest: manifest,
- verticallyOriented: true
- });
-
- var group = layouts[17];
-
- assert.strictEqual(group.pages.length, 1, 'In own group');
- assert.strictEqual(group.dimensions.width, group.pages[0].dimensions.width, 'Tight fit width');
-});
-
-function assertFitsMax(group, dimension, assert)
-{
- var p1 = group.pages[0].dimensions[dimension];
- var p2 = group.pages[1].dimensions[dimension];
- var g = group.dimensions[dimension];
-
- var times = dimension === 'width' ? 2 : 1;
-
- assert.close(g, Math.max(p1, p2) * times, 1, 'Group ' + dimension + ' should be derived from max page ' + dimension);
-}
-
-function assertDifferentSizePages(group, assert)
-{
- assertDimenDiffers(group, 'height', assert);
- assertDimenDiffers(group, 'width', assert);
-}
-
-function assertDimenDiffers(group, dimension, assert)
-{
- var p1 = group.pages[0].dimensions[dimension];
- var p2 = group.pages[1].dimensions[dimension];
-
- assert.notStrictEqual(p1, p2, 'Sanity check: page ' + dimension + ' differs');
-}
diff --git a/tests/unit/public.js b/tests/unit/public.js
deleted file mode 100644
index 602746e9..00000000
--- a/tests/unit/public.js
+++ /dev/null
@@ -1,541 +0,0 @@
-/*
-Test coverage: pretty much complete
-*/
-
-var $ = require('jquery');
-var clearTempDiva = require('../utils').clearTempDiva;
-var diva = require('../../source/js/diva');
-var getScrollbarWidth = require('../../source/js/utils/get-scrollbar-width');
-
-QUnit.module("Public functions", { beforeEach: clearTempDiva });
-
-QUnit.test("getItemTitle()", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual(this.getItemTitle(), "Beromunster", "The title should be Beromunster");
- done();
- });
-
- $.tempDiva({});
-});
-
-QUnit.test("getCurrentPage()", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual(this.getCurrentPageIndex(), 0, "Initial page should be 0");
- this.gotoPageByIndex(500); // Go to page index 500
- assert.strictEqual(this.getCurrentPageIndex(), 500, "The page index should now be 500");
-
- diva.Events.subscribe('ViewDidSwitch', function ()
- {
- this.gotoPageByIndex(100);
- assert.strictEqual(this.getCurrentPageIndex(), 100, 'Transitions in grid mode should work');
-
- done();
- });
-
- this.enterGridView();
- });
-
- $.tempDiva({});
-});
-
-QUnit.test("getCurrentPageIndex()", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual(this.getCurrentPageIndex(), 0, "Initial page should be 0");
- this.gotoPageByIndex(300);
- assert.strictEqual(this.getCurrentPageIndex(), 300, "The page index should now be 300");
-
- // Reset it to the first page
- this.gotoPageByIndex(0);
- assert.strictEqual(this.getCurrentPageIndex(), 0, "The page index should now be 0");
- done();
- });
-
- $.tempDiva({});
-});
-
-QUnit.test("get/setZoomLevel(), zoomIn() and zoomOut()", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual(this.getZoomLevel(), 2, "Initial zoom level should be 2");
- assert.ok(this.zoomOut(), "It should be possible to zoom out once");
- assert.strictEqual(this.getZoomLevel(), 1, "Zoom level should now be 1");
- assert.ok(!this.zoomOut(), "It should not be possible to zoom out again");
- assert.strictEqual(this.getZoomLevel(), 1, "Zoom level should still be 1");
-
- assert.ok(this.zoomIn(), "It should be possible to zoom in");
- assert.strictEqual(this.getZoomLevel(), 2, "Zoom level should now be 2");
- assert.ok(this.zoomIn(), "Zooming in again");
- assert.strictEqual(this.getZoomLevel(), 3, "Zoom level should now be 3");
- assert.ok(!this.zoomIn(), "It should not be possible to zoom in again (hit max)");
- assert.strictEqual(this.getZoomLevel(), 3, "Zoom level should still be 3");
-
- assert.ok(!this.setZoomLevel(5), "Setting zoom level to 5 should fail");
- assert.strictEqual(this.getZoomLevel(), 3, "Zoom level should still be 3");
-
- assert.ok(this.setZoomLevel(2), "Setting zoom level to 2 should be fine");
- assert.strictEqual(this.getZoomLevel(), 2, "Zoom level should now be 2");
- done();
- });
-
- $.tempDiva({
- zoomLevel: 2,
- minZoomLevel: 1,
- maxZoomLevel: 3
- });
-});
-
-QUnit.skip("enable/disableScrollable()", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- this.setZoomLevel(2);
-
- // should be able to zoom by double click
- var event = $.Event("dblclick");
- event.pageX = 1000;
- event.pageY = 500;
- $(settings.selector + 'page-0').trigger(event);
- assert.strictEqual(settings.zoomLevel, 3, "Should be able to zoom by double click, zoom level should now be 3");
-
- // should be able to scroll by dragging
- var initScroll = settings.viewportObject.scrollTop();
- // simulate drag downwards
- $('.diva-dragger').simulate('drag', { dx: 0, dy: -500 });
- var finalScroll = settings.viewportObject.scrollTop();
-
- assert.ok(finalScroll > initScroll, "Should have scrolled down before disableScrollable()");
-
- this.disableScrollable();
-
- // should not be able to zoom by double click
- event = $.Event("dblclick");
- event.pageX = 1000;
- event.pageY = 500;
- $(settings.selector + 'page-0').trigger(event);
- assert.strictEqual(settings.zoomLevel, 3, "Should not be able to zoom by double click after disableScrollable(), zoom level should still be 3");
-
- // should not be able to drag
- // store previous scroll in initScroll
- initScroll = settings.viewportObject.scrollTop();
- $('.diva-dragger').simulate('drag', { dx: 0, dy: -500 });
- finalScroll = settings.viewportObject.scrollTop();
- assert.ok(finalScroll === initScroll, "Should not have scrolled down after disableScrollable()");
-
- this.enableScrollable();
-
- // should be able to zoom by double click
- event = $.Event("dblclick");
- event.pageX = 1000;
- event.pageY = 500;
- $(settings.selector + 'page-0').trigger(event);
- assert.strictEqual(settings.zoomLevel, 4, "Should be able to zoom by double click after enableScrollable(), zoom level should now be 4");
-
- // should be able to scroll by dragging
- initScroll = settings.viewportObject.scrollTop();
- // simulate drag downwards
- $('.diva-dragger').simulate('drag', { dx: 0, dy: -500 });
- finalScroll = settings.viewportObject.scrollTop();
-
- assert.ok(finalScroll > initScroll, "Should have scrolled down after enableScrollable()");
-
- done();
- });
-
- $.tempDiva({});
-});
-
-QUnit.test("isRegionInViewport()", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- // Can only do fairly simple checks
- assert.ok(this.isRegionInViewport(0, 100, 200, 100, 150));
- assert.ok(!this.isRegionInViewport(0, 100, -200, 100, 100));
- assert.ok(!this.isRegionInViewport(40, 100, 50, 100, 200));
-
- done();
- });
-
- $.tempDiva({
- viewportMargin: 0
- });
-});
-
-QUnit.test("isPageInViewport()", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function ()
- {
- assert.ok(this.isPageInViewport(0), 'The first page should be in the viewport');
- assert.ok(!this.isPageInViewport(100), 'The hundredth page should not be in the viewport');
-
- this.enterGridView();
- });
-
- diva.Events.subscribe('ViewDidSwitch', function ()
- {
- assert.ok(this.isPageInViewport(0), 'The first page should be in the viewport grid');
- assert.ok(this.isPageInViewport(5), 'The fifth page should be in the viewport grid');
- assert.ok(!this.isPageInViewport(100), 'The hundredth page should not be in the viewport grid');
-
- done();
- });
-
- $.tempDiva({});
-});
-
-QUnit.test("toggleFullscreenMode(), enterFullscreenMode(), leaveFullscreenMode()", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.ok(!settings.inFullscreen, "Should not be in fullscreen initially");
- this.toggleFullscreenMode();
- assert.ok(settings.inFullscreen, "Should now be in fullscreen");
- assert.ok(!this.enterFullscreenMode(), "Should not be possible to enter fullscreen");
- assert.ok(settings.inFullscreen, "Should still be in fullscreen");
- assert.ok(this.leaveFullscreenMode(), "Should be possible to exit fullscreen");
- assert.ok(!settings.inFullscreen, "No longer in fullscreen");
- assert.ok(!this.leaveFullscreenMode(), "Should not be possible to exit fullscreen");
- assert.ok(!settings.inFullscreen, "Still not in fullscreen");
- assert.ok(this.enterFullscreenMode(), "Should be possible to enter fullscreen");
- this.toggleFullscreenMode();
- assert.ok(!settings.inFullscreen, "Should now be out of fullscreen");
- done();
- });
-
- $.tempDiva({});
-});
-
-QUnit.test("enterGridView(), leaveGridView()", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.ok(!settings.inGrid, "Should not be in grid initially");
- this.enterGridView();
- assert.ok(settings.inGrid, "Should now be in grid");
- assert.ok(!this.enterGridView(), "Should not be possible to enter grid");
- assert.ok(settings.inGrid, "Should still be in grid");
- assert.ok(this.leaveGridView(), "Should be possible to exit grid");
- assert.ok(!settings.inGrid, "No longer in grid");
- assert.ok(!this.leaveGridView(), "Should not be possible to exit grid");
- assert.ok(!settings.inGrid, "Still not in grid");
- assert.ok(this.enterGridView(), "Should be possible to enter grid");
- done();
- });
-
- $.tempDiva({});
-});
-
-QUnit.test("gotoPageByName()", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual(settings.currentPageIndex, 0, "Initial page number should be 1");
- assert.ok(!this.gotoPageByName('https://images.simssa.ca/iiif/image/beromunster/bm_000.tif'), "It should not find anything for bm_000.tif");
- assert.ok(this.gotoPageByName('https://images.simssa.ca/iiif/image/beromunster/bm_002.tif', "right", "center"), "It should find the page index for bm_002.tif");
- assert.strictEqual(settings.currentPageIndex, 1, "Now the page number should be 2");
-
- assert.strictEqual(settings.viewport.top, 1348, "The page should be anchored to the center (vertically)");
- assert.strictEqual(settings.viewport.left, 0, "The page should be anchored to the right");
- this.gotoPageByIndex(1, "left", "top");
- assert.strictEqual(settings.viewport.top, 1162, "The page should be anchored to the top");
- assert.strictEqual(settings.viewport.left, 291, "The page should be anchored to the left");
-
- done();
- });
-
- $.tempDiva({});
-});
-
-QUnit.test("getPageIndex()", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual(this.getPageIndex('https://images.simssa.ca/iiif/image/beromunster/bm_002.tif'), 1, "Valid filename");
- assert.strictEqual(this.getPageIndex('https://images.simssa.ca/iiif/image/beromunster/bm_lol.tif'), -1, "Invalid filename");
-
- done();
- });
-
- $.tempDiva({});
-});
-
-// Can't really test the getCurrentURL function
-
-// Can't really test getURLHash easily either
-// Since it relies on getState, we can test the public version of that instead
-
-QUnit.test("getState()", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- var viewportHeight = 700;
- var scrollbarWidth = getScrollbarWidth();
- var pageDimens = this.getCurrentPageDimensionsAtCurrentZoomLevel();
-
- var expected = {
- f: false,
- v: 'd',
- i: 'https://images.simssa.ca/iiif/image/beromunster/bm_001.tif',
- n: 5,
- p: false,
- x: pageDimens.width / 2,
- y: (viewportHeight - scrollbarWidth) / 2,
- z: 2
- };
-
- var actual = this.getState();
-
- // Sanity check
- assert.propEqual(Object.keys(actual).sort(), Object.keys(expected).sort(), 'State shape should be as expected');
-
- Object.keys(expected).forEach(function (key)
- {
- if (key === 'x' || key === 'y')
- assert.close(actual[key], expected[key], 1, "State key '" + key + "'");
- else
- assert.strictEqual(actual[key], expected[key], "State key '" + key + "'");
- });
-
- done();
- });
-
- $.tempDiva({});
-});
-
-QUnit.test("setState()", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- var state = {
- f: true,
- v: 'd',
- i: "https://images.simssa.ca/iiif/image/beromunster/bm_005.tif",
- n: 3,
- p: false,
- x: 500,
- y: 300,
- z: 3
- };
-
- this.setState(state);
- assert.ok(settings.inFullscreen, "Should now be in fullscreen");
- assert.ok(!settings.inGrid, "Should not be in grid");
- assert.ok(!settings.inBookLayout, "Should not be in book view");
- assert.strictEqual(settings.currentPageIndex, 4, "Current page should be 5 (index of 4)");
- assert.strictEqual(settings.pagesPerRow, 3, "Pages per row should be 3");
- assert.strictEqual(settings.zoomLevel, 3, "Zoom level should be 3");
-
- // Recompute the offsets from first principles
- var index = this.getPageIndex("https://images.simssa.ca/iiif/image/beromunster/bm_005.tif");
- var offset = this.getPageOffset(index);
- var viewportElem = settings.viewportElement;
- var x = viewportElem.scrollLeft - offset.left + (viewportElem.clientWidth / 2);
- var y = viewportElem.scrollTop - offset.top + (viewportElem.clientHeight / 2);
-
- assert.close(x, 500, 1, "x offset should be the specified value");
- assert.close(y, 300, 1, "y offset should be the specified value");
-
- state = {
- f: false,
- v: 'g',
- i: "https://images.simssa.ca/iiif/image/beromunster/bm_500.tif",
- n: 4,
- p: true,
- x: 100,
- y: 200,
- z: 4
- };
-
- this.setState(state);
- assert.ok(!settings.inFullscreen, "Should not be in fullscreen");
- assert.ok(settings.inGrid, "Should be in grid");
- assert.strictEqual(settings.currentPageIndex, 498, "Current page should be bm_500.tif (index of 498)");
- assert.strictEqual(settings.pagesPerRow, 4, "Pages per row should be 4");
- assert.strictEqual(settings.zoomLevel, 4, "Zoom level should be 4");
-
- done();
- });
-
- $.tempDiva({});
-});
-
-QUnit.test("translateFromMaxZoomLevel()", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- var state = {
- f: true,
- v: 'd',
- i: "https://images.simssa.ca/iiif/image/beromunster/bm_005.tif",
- n: 3,
- p: false,
- x: 500,
- y: 300,
- z: this.getMaxZoomLevel()
- };
-
- this.setState(state);
-
- var boxOnMaxPage = {x: 100, y: 100, width:1234, height:1324};
-
- // first check to make sure the box on the max zoom level is the same as the box we feed in.
- assert.strictEqual(this.translateFromMaxZoomLevel(100), boxOnMaxPage.x);
- assert.strictEqual(this.translateFromMaxZoomLevel(100), boxOnMaxPage.y);
- assert.strictEqual(this.translateFromMaxZoomLevel(1234), boxOnMaxPage.width);
- assert.strictEqual(this.translateFromMaxZoomLevel(1324), boxOnMaxPage.height);
-
- // reset the state to a different zoom level
- state = {
- f: true,
- v: 'd',
- i: "https://images.simssa.ca/iiif/image/beromunster/bm_005.tif",
- n: 3,
- p: false,
- x: 500,
- y: 300,
- z: 2
- };
- this.setState(state);
-
- // check that the box translation has changed accordingly.
- assert.strictEqual(this.translateFromMaxZoomLevel(boxOnMaxPage.x), 25);
- assert.strictEqual(this.translateFromMaxZoomLevel(boxOnMaxPage.y), 25);
- assert.strictEqual(this.translateFromMaxZoomLevel(boxOnMaxPage.width), 308.5);
- assert.strictEqual(this.translateFromMaxZoomLevel(boxOnMaxPage.height), 331);
-
- done();
- });
-
- $.tempDiva({});
-});
-
-QUnit.test("translateToMaxZoomLevel()", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- var state = {
- f: true,
- v: 'd',
- i: "https://images.simssa.ca/iiif/image/beromunster/bm_005.tif",
- n: 3,
- p: false,
- x: 500,
- y: 300,
- z: this.getMaxZoomLevel()
- };
-
- this.setState(state);
-
- var boxOnThisPage = {x: 10, y: 10, width:123, height:132};
-
- // first check to make sure the box on the max zoom level is the same as the box we feed in.
- assert.strictEqual(this.translateToMaxZoomLevel(10), boxOnThisPage.x);
- assert.strictEqual(this.translateToMaxZoomLevel(10), boxOnThisPage.y);
- assert.strictEqual(this.translateToMaxZoomLevel(123), boxOnThisPage.width);
- assert.strictEqual(this.translateToMaxZoomLevel(132), boxOnThisPage.height);
-
- // reset the state to a different zoom level
- state = {
- f: true,
- v: 'd',
- i: "https://images.simssa.ca/iiif/image/beromunster/bm_005.tif",
- n: 3,
- p: false,
- x: 500,
- y: 300,
- z: 2
- };
- this.setState(state);
-
- // console.log(this.translateToMaxZoomLevel(boxOnThisPage.x));
- // check that the box translation has changed accordingly. This assumes that
- // the co-ordinate we want to translate is on the current zoom level (2), and we want
- // to get it on the max page. Thus: 123 * (4-2)^2 = 984
- assert.strictEqual(this.translateToMaxZoomLevel(boxOnThisPage.x), 40);
- assert.strictEqual(this.translateToMaxZoomLevel(boxOnThisPage.y), 40);
- assert.strictEqual(this.translateToMaxZoomLevel(boxOnThisPage.width), 492);
- assert.strictEqual(this.translateToMaxZoomLevel(boxOnThisPage.height), 528);
-
- done();
- });
-
- $.tempDiva({});
-});
-
-QUnit.test("getPageDimensionsAtCurrentZoomLevel([pageIndex])", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function ()
- {
- var current = this.getPageDimensionsAtCurrentZoomLevel();
- var page10 = this.getPageDimensionsAtCurrentZoomLevel();
-
- assert.propEqual(current, page10, 'It should default to the current page');
- assert.ok(typeof page10.height === 'number' && typeof page10.width === 'number', 'It should ... have numbers?');
-
- this.leaveGridView();
-
- done();
- });
-
- $.tempDiva({
- goDirectlyTo: 10,
- inGrid: true
- });
-});
-
-QUnit.skip("getPageIndexForPageXYValues()", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- $('.diva-dragger').simulate('drag', { dx: 0, dy: -100000 });
- settings.viewportObject.scroll();
-
- assert.strictEqual(this.getPageIndexForPageXYValues(500, 5000), 93, "scrolled to a later page, click should register on a page");
- assert.strictEqual(this.getPageIndexForPageXYValues(10, 10), false, "click should be outside diva-outer and thus return false");
-
- done();
- });
-
- $.tempDiva({});
-});
diff --git a/tests/unit/settings.js b/tests/unit/settings.js
deleted file mode 100644
index 8bdd5fe4..00000000
--- a/tests/unit/settings.js
+++ /dev/null
@@ -1,638 +0,0 @@
-/*
-Test coverage: pretty much complete
-*/
-
-var $ = require('jquery');
-var clearTempDiva = require('../utils').clearTempDiva;
-var diva = require('../../source/js/diva');
-
-QUnit.module("Settings", { beforeEach: clearTempDiva });
-
-QUnit.test("adaptivePadding enabled", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings) {
- assert.notStrictEqual(settings.verticalPadding, 10, "Adaptive padding should be used, overrides vertical/horizontal");
- assert.notStrictEqual(settings.horizontalPadding, 10, "Horizontal padding should be overridden by adaptive");
- done();
- });
-
- $.tempDiva({
- adaptivePadding: 0.10
- });
-});
-
-QUnit.test("adaptivePadding disabled, fixedPadding set", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual(settings.verticalPadding, 40, "Vertical padding should be 40 (the minimum with plugins enabled)");
- assert.strictEqual(settings.horizontalPadding, 11, "Horizontal padding should be 11 (fixedPadding)");
- done();
- });
-
- $.tempDiva({
- adaptivePadding: 0,
- fixedPadding: 11
- });
-
-});
-
-// enableCanvas and enableDownload are tested in plugins.js
-
-// enableFilename is tested in hashparams.js
-
-QUnit.test("enableFullscreen false", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- // Make sure the fullscreen icon is not there
- assert.strictEqual($(settings.selector + 'fullscreen').length, 0, "Fullscreen icon should not be present");
- done();
- });
-
- $.tempDiva({
- enableFullscreen: false
- });
-});
-
-QUnit.test("enableFullscreen true", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- // Make sure the fullscreen icon is there
- assert.notStrictEqual($(settings.selector + 'fullscreen-icon').length, 0, "Fullscreen icon should be present");
- done();
- });
-
- $.tempDiva({
- enableFullscreen: true
- });
-});
-
-QUnit.test("enableGotoPage false", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual($(settings.selector + 'goto-page').length, 0, "Go-to-page box should not be present");
- done();
- });
-
- $.tempDiva({
- enableGotoPage: false
- });
-});
-
-QUnit.test("enableGotoPage true", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.notStrictEqual($(settings.selector + 'goto-page').length, 0, "Go-to-page box should be present");
- done();
- });
-
- $.tempDiva({
- enableGotoPage: true
- });
-});
-
-//TODO view icon tests
-
-QUnit.test("enableGridIcon false, enableLinkIcon true", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- // Check that the link icon is there
- assert.notStrictEqual($(settings.selector + 'link-icon').length, 0, "Link icon should be present");
- // But the left border should be there for the link icon
- assert.notStrictEqual($(settings.selector + 'link-icon').css('border-left-width'), '0px', "Link icon should have a left border");
-
- done();
- });
-
- $.tempDiva({
- enableGridIcon: false
- });
-});
-
-QUnit.test("enableGridIcon true, enableLinkIcon true", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.notStrictEqual($(settings.selector + 'grid-icon').length, 0, "Grid icon should be present");
- assert.notStrictEqual($(settings.selector + 'link-icon').length, 0, "Link icon should be present");
- done();
- });
-
- $.tempDiva({
- enableGridIcon: true
- });
-});
-
-QUnit.test("enableLinkIcon false, enableGridIcon true", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual($(settings.selector + 'link-icon').length, 0, "Link icon should not be present");
-
- // The grid icon should look normal
- assert.notStrictEqual($(settings.selector + 'grid-icon').css('border-right-width'), '0px', "Link icon should have a right border");
- done();
- });
-
- $.tempDiva({
- enableLinkIcon: false,
- enableGridIcon: true
- });
-});
-
-// Skipping the key and space scroll ones, because they're hard to test
-
-// test enableZoom/Grid Slider/Buttons settings
-QUnit.test("enableGridControls 'slider'", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.notStrictEqual($(settings.selector + 'grid-slider').length, 0, "Grid slider should be present");
- assert.notStrictEqual($(settings.selector + 'grid-label').length, 0, "Grid label should be present");
- assert.strictEqual($(settings.selector + 'grid-out-button').length, 0, "Grid buttons should not be present");
- assert.strictEqual($(settings.selector + 'grid-in-button').length, 0, "Grid buttons should not be present");
- done();
- });
-
- $.tempDiva({
- enableGridControls: 'slider'
- });
-});
-
-QUnit.test("enableZoomControls 'slider'", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.notStrictEqual($(settings.selector + 'zoom-slider').length, 0, "Zoom slider should be present");
- assert.notStrictEqual($(settings.selector + 'zoom-label').length, 0, "Zoom label should be present");
- assert.strictEqual($(settings.selector + 'zoom-out-button').length, 0, "Zoom buttons should not be present");
- assert.strictEqual($(settings.selector + 'zoom-in-button').length, 0, "Zoom buttons should not be present");
- assert.notStrictEqual($(settings.selector + 'grid-label').length, 0, "Grid label should be present");
- done();
- });
-
- $.tempDiva({
- enableZoomControls: 'slider'
- });
-});
-
-QUnit.test("enableGridControls 'buttons'", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.notStrictEqual($(settings.selector + 'grid-out-button').length, 0, "Grid out button should be present");
- assert.notStrictEqual($(settings.selector + 'grid-in-button').length, 0, "Grid in button should be present");
- assert.notStrictEqual($(settings.selector + 'grid-label').length, 0, "Grid label should be present");
- assert.strictEqual($(settings.selector + 'grid-slider').length, 0, "Grid slider should not be present");
- done();
- });
-
- $.tempDiva({
- enableGridControls: 'buttons'
- });
-});
-
-QUnit.test("enableZoomControls 'buttons'", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.notStrictEqual($(settings.selector + 'zoom-out-button').length, 0, "Zoom out button should be present");
- assert.notStrictEqual($(settings.selector + 'zoom-in-button').length, 0, "Zoom in button should be present");
- assert.notStrictEqual($(settings.selector + 'zoom-label').length, 0, "Zoom label should be present");
- assert.strictEqual($(settings.selector + 'zoom-slider').length, 0, "Grid slider should not be present");
- done();
- });
-
- $.tempDiva({
- enableZoomControls: 'buttons'
- });
-});
-
-// fixedPadding tested at the top (along with adaptivePadding)
-
-QUnit.test("fixedHeightGrid false", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function()
- {
- this.enterGridView();
-
- assert.ok(pagesHaveEqualDimension(this, 'width'), 'All page widths should be equal');
- assert.notOk(pagesHaveEqualDimension(this, 'height'), 'All page heights should NOT be equal');
-
- done();
- });
-
- $.tempDiva({
- fixedHeightGrid: false
- });
-});
-
-QUnit.test("fixedHeightGrid true", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function()
- {
- this.enterGridView();
-
- assert.notOk(pagesHaveEqualDimension(this, 'width'), 'All page widths should NOT be equal');
- assert.ok(pagesHaveEqualDimension(this, 'height'), 'All page heights should be equal');
-
- done();
- });
-
- $.tempDiva({
- fixedHeightGrid: true
- });
-});
-
-function pagesHaveEqualDimension(viewer, dimension)
-{
- var dimensions = [];
-
- var numPages = viewer.getNumberOfPages();
-
- for (var i = 0; i < numPages; i++)
- dimensions.push(viewer.getPageDimensionsAtCurrentZoomLevel(i)[dimension]);
-
- var first = dimensions[0];
-
- return dimensions.every(function (dim)
- {
- // FIXME: Should floating point numbers happen here?
- return Math.abs(dim - first) < 0.5;
- });
-}
-
-QUnit.test("goDirectlyTo, valid", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual(settings.currentPageIndex, 10, "The initial page index should be 10");
- done();
- });
-
- $.tempDiva({
- goDirectlyTo: 10
- });
-});
-
-QUnit.test("goDirectlyTo, invalid", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual(settings.currentPageIndex, 0, "The initial page index should be 0 (the fallback)");
- done();
- });
-
- $.tempDiva({
- goDirectlyTo: -10
- });
-});
-
-QUnit.test('hashParamSuffix, omitted', function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual(typeof settings.hashParamSuffix, 'string', "If omitted, hashParamSuffix should default to... some string");
- done();
- });
-
- $.tempDiva({});
-});
-
-QUnit.test('hashParamSuffix, provided', function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual(settings.hashParamSuffix, '!!!!!!!', 'User hashParamSuffix should be honoured');
- done();
- });
-
- $.tempDiva({
- hashParamSuffix: '!!!!!!!'
- });
-});
-
-// iipServerURL can't really be tested, just have to rely on this to work
-
-QUnit.test("inBookLayout true", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.ok(settings.inBookLayout, 'inBookLayout should remain true after initialization');
- assert.ok(this.getPageOffset(1).left < this.getPageOffset(2).left, 'Page 1 should be to the left of page 2');
- assert.ok(this.getPageOffset(2).left > this.getPageOffset(3).left, 'Page 2 should be to the right of page 3');
- done();
- });
-
- $.tempDiva({
- inBookLayout: true
- });
-});
-
-QUnit.test("manifest.paged triggers inBookLayout", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.ok(settings.manifest.paged, 'settings.manifest.paged should be true when manifest has viewingHint: paged');
- assert.ok(settings.inBookLayout, 'settings.inBookLayout should be true when manifest.paged is true');
-
- done();
- });
-
- $.tempDiva({
- objectData: '../demo/beromunster-iiif-test.json'
- });
-});
-
-QUnit.test("inGrid false", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.ok(!settings.inGrid, "inGrid setting should still be false");
- assert.strictEqual($(settings.selector + 'view-menu').children()[0].classList[0], 'diva-document-icon', "Current toolbar view icon should be the document icon");
- done();
- });
-
- $.tempDiva({
- inGrid: false
- });
-});
-
-QUnit.test("inGrid true", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.ok(settings.inGrid, "inGrid setting should be preserved");
- assert.strictEqual($(settings.selector + 'view-menu').children()[0].classList[0], 'diva-grid-icon', "Current toolbar view icon should be the grid icon");
- done();
- });
-
- $.tempDiva({
- inGrid: true
- });
-});
-
-// imageDir cannot really be tested either
-
-QUnit.test("valid max/minPagesPerRow, valid pagesPerRow", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual(settings.minPagesPerRow, 3, "minPagesPerRow should be 3");
- assert.strictEqual(settings.maxPagesPerRow, 5, "maxPagesPerRow should be 5");
- assert.strictEqual(settings.pagesPerRow, 5, "pagesPerRow is valid");
- done();
- });
-
- $.tempDiva({
- minPagesPerRow: 3,
- maxPagesPerRow: 5,
- pagesPerRow: 5
- });
-});
-
-QUnit.test("invalid max/minPagesPerRow, invalid pagesPerRow", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual(settings.minPagesPerRow, 2, "minPagesPerRow is invalid, set to 2");
- assert.strictEqual(settings.maxPagesPerRow, 2, "maxPagesPerRow should be set to min");
- assert.strictEqual(settings.pagesPerRow, 2, "invalid pages per row should be set to min");
- done();
- });
-
- $.tempDiva({
- minPagesPerRow: 1,
- maxPagesPerRow: 0,
- pagesPerRow: 4
- });
-});
-
-QUnit.test("max/minZoomLevel, invalid values", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual(settings.minZoomLevel, 0, "minZoomLevel should be set to 0");
- assert.strictEqual(settings.maxZoomLevel, 4, "maxZoomLevel should be set to 4");
- done();
- });
-
- $.tempDiva({
- minZoomLevel: -2,
- maxZoomLevel: 6
- });
-});
-
-QUnit.test("max/minZoomLevel, valid values, valid zoomLevel", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual(settings.minZoomLevel, 1, "minZoomLevel should be set to 1");
- assert.strictEqual(settings.maxZoomLevel, 3, "maxZoomLevel should be set to 3");
- assert.strictEqual(settings.zoomLevel, 2, "zoomLevel should be 2");
- done();
- });
-
- $.tempDiva({
- minZoomLevel: 1,
- maxZoomLevel: 3,
- zoomLevel: 2
- });
-});
-
-QUnit.test("max/minZoomLevel, valid values, invalid zoomLevel", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual(settings.zoomLevel, 1, "Zoom level should be the minZoomLevel (1)");
- done();
- });
-
- $.tempDiva({
- minZoomLevel: 1,
- maxZoomLevel: 3,
- zoomLevel: 0
- });
-});
-
-QUnit.test("max/minZoomLevel, invalid/valid values, invalid zoomLevel", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual(settings.minZoomLevel, 2, "minZoomLevel should be set to 2 (valid)");
- assert.strictEqual(settings.maxZoomLevel, 4, "maxZoomLevel should be set to 4 (invalid)");
- assert.strictEqual(settings.zoomLevel, 2, "zoomLevel should be 2 (the minimum)");
- done();
- });
-
- $.tempDiva({
- minZoomLevel: 2,
- maxZoomLevel: -2,
- zoomLevel: -2
- });
-});
-
-QUnit.test("object for objectData", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual(this.getItemTitle(), "First page of Beromunster", "Should process an object for objectData like a normal manifest");
- done();
- });
-
- $.tempDiva({
- objectData: {
- "@context": "http://iiif.io/api/presentation/2/context.json",
- "@id": "http://dev-diva.simssa.ca/iiif/srv/images/beromunster/manifest.json",
- "@type": "sc:Manifest",
- "label": "First page of Beromunster",
- "viewingHint": "paged",
- "sequences": [
- {
- "@type": "sc:Sequence",
- "canvases": [
- {
- "@id": "http://dev-diva.simssa.ca/iiif/srv/images/beromunster/canvas/bm_001.json",
- "@type": "sc:Canvas",
- "label": "Bm 001",
- "height": 4445,
- "width": 2846,
- "images": [
- {
- "@type": "oa:Annotation",
- "motivation": "sc:painting",
- "resource": {
- "@id": "http://dev-diva.simssa.ca/iiif/srv/images/beromunster/bm_001.tif/full/full/0/default.jpg",
- "@type": "dctypes:Image",
- "format": "image/jpeg",
- "height": 4445,
- "width": 2846,
- "service": {
- "@context": "http://iiif.io/api/image/2/context.json",
- "@id": "http://dev-diva.simssa.ca/iiif/srv/images/beromunster/bm_001.tif",
- "profile": "http://iiif.io/api/image/2/level2.json"
- }
- },
- "on": "http://dev-diva.simssa.ca/iiif/srv/images/beromunster/canvas/bm_001.json"
- }
- ]
- }
- ]
- }
- ]
- }
- });
-});
-
-// pageLoadTimeout is a bit weird to test, but the code is simple so it should be fine
-
-// pagesPerRow is tested above, along with max/minPagesPerRow
-
-// No real point testing tileHeight/Width as we don't have images of different tile sizes
-
-QUnit.test("viewportMargin, value of 0", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function()
- {
- var dv = this;
-
- setTimeout(function ()
- {
- assert.ok(dv.isPageInViewport(0), "The first page should be loaded");
- assert.notOk(dv.isPageInViewport(1), "The second page should not be loaded");
- done();
- }, 100);
- });
-
- $.tempDiva({
- viewportMargin: 0
- });
-});
-
-QUnit.test("viewportMargin, value of 1000", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function()
- {
- var dv = this;
-
- // The second page should be visible after a timeout
- setTimeout(function () {
- assert.ok(dv.isPageInViewport(0), "The first page should be loaded");
- assert.ok(dv.isPageInViewport(1), "The second page should be loaded");
- done();
- }, 100);
- });
-
- $.tempDiva({
- viewportMargin: 1000
- });
-});
diff --git a/tests/unit/utils/elt.js b/tests/unit/utils/elt.js
deleted file mode 100644
index 045ff79c..00000000
--- a/tests/unit/utils/elt.js
+++ /dev/null
@@ -1,102 +0,0 @@
-var elt = require('../../../source/js/utils/elt');
-
-QUnit.module('elt()');
-
-// TODO: Break this up?
-QUnit.test("elt()", function (assert)
-{
- // Serialize node type and text content (not attributes, because those are more complicated)
- var serialize = function (node)
- {
- if (node.nodeName === '#text')
- return node.textContent;
-
- return {
- name: node.nodeName.toLowerCase(),
- childNodes: Array.prototype.map.call(node.childNodes, serialize)
- };
- };
-
- var simple = elt('span');
- var expectedSimple = { name: 'span', childNodes: [] };
- assert.deepEqual(serialize(simple), expectedSimple, 'It should create nodes with the given tag');
-
- var withNull = elt('span', null, undefined);
- var expectedWithNull = { name: 'span', childNodes: [] };
- assert.deepEqual(serialize(withNull), expectedWithNull, 'It should ignore null and undefined values');
-
- var withText = elt('span', 'A', 'B');
- var expectedWithText = { name: 'span', childNodes: ['A', 'B'] };
- assert.deepEqual(serialize(withText), expectedWithText, 'It should add additional string arguments as text');
-
- var withArray = elt('ol', [
- elt('li', 'first'),
- elt('li', 'second'),
- [
- elt('li', 'more'),
- elt('li', 'and more')
- ]
- ]);
- var expectedWithArray = {
- name: 'ol',
- childNodes: [
- { name: 'li', childNodes: ['first'] },
- { name: 'li', childNodes: ['second'] },
- { name: 'li', childNodes: ['more'] },
- { name: 'li', childNodes: ['and more'] }
- ]
- };
- assert.deepEqual(serialize(withArray), expectedWithArray, 'It should recurse on nested arrays');
-
- var withOther = elt('span', 2, false);
- var expectedWithOther = { name: 'span', childNodes: ['2', 'false'] };
- assert.deepEqual(serialize(withOther), expectedWithOther, 'It should coerce other arguments to strings');
-
- var link = elt('a',
- { href: 'http://example.org/', title: 'overridden' },
- 'Hello world!',
- { title: 'additional argument' }
- );
- var expectedLink = {
- name: 'a',
- childNodes: ['Hello world!']
- };
- assert.strictEqual(link.href, 'http://example.org/', 'It should set attributes from object arguments');
- assert.strictEqual(link.title, 'additional argument', 'It should handle multiple attribute arguments');
- assert.deepEqual(serialize(link), expectedLink, 'It should handle children along with attribute arguments');
-
- var fragment = document.createDocumentFragment();
- fragment.appendChild(document.createTextNode(', very'));
-
- var compound = elt('span',
- 'This is ', elt('em', 'very'), fragment, document.createTextNode(' exciting')
- );
- var expectedCompound = {
- name: 'span',
- childNodes: [
- 'This is ',
- {
- name: 'em',
- childNodes: ['very']
- },
- ', very',
- ' exciting'
- ]
- };
- assert.deepEqual(serialize(compound), expectedCompound, 'It should append DOM node arguments');
-
- var hidden = elt('span', {
- style: { display: 'none' }
- });
- assert.strictEqual(hidden.style.display, 'none', 'It should handle objects for the style attribute');
-
- var hiddenAsText = elt('span', {
- style: 'display: none;'
- });
- assert.strictEqual(hiddenAsText.style.display, 'none', 'It should handle strings for the style attribute');
-
- var nullStyle = elt('span', {
- style: null
- });
- assert.strictEqual(nullStyle.style.cssText, '', 'It should ignore a null style');
-});
diff --git a/tests/unit/utils/events.js b/tests/unit/utils/events.js
deleted file mode 100644
index c8982644..00000000
--- a/tests/unit/utils/events.js
+++ /dev/null
@@ -1,244 +0,0 @@
-'use strict';
-
-var Events = require('../../../source/js/utils/events');
-
-QUnit.module('Events');
-
-// TODO: What happens with multiple subscriptions
-
-QUnit.test('subscribe(topic, callback[, instanceID])', function (assert)
-{
- var events = new Events();
-
- var callback = function () {};
- assert.deepEqual(events.subscribe('Topic', callback), ['Topic', callback], 'Global callback handles should have no scope');
- assert.deepEqual(events.subscribe('Topic', callback, 'A'), ['Topic', callback, 'A'], 'Scoped callback handles should have a scope');
-});
-
-QUnit.test('publish(topic[, args])', function (assert)
-{
- var events = new Events();
- var calls = [];
-
- events.subscribe('MyTopic', function ()
- {
- calls.push(['callback 1', this, Array.prototype.slice.call(arguments)]);
- });
-
- events.subscribe('MyTopic', function ()
- {
- calls.push(['callback 2', this, Array.prototype.slice.call(arguments)]);
- });
-
- events.subscribe('MyTopic', function ()
- {
- calls.push(['scoped callback', this, Array.prototype.slice.call(arguments)]);
- }, 'some scope');
-
- events.publish('OtherTopic', []);
- events.publish('MyTopic', [1, 2, 3]);
- events.publish('MyTopic');
-
- assert.deepEqual(calls, [
- ['callback 1', null, [1, 2, 3]],
- ['callback 2', null, [1, 2, 3]],
- ['callback 1', null, []],
- ['callback 2', null, []]
- ], 'Global callbacks should be called for the topic with the arguments in the order subscribed');
-});
-
-QUnit.test('publish(topic, args, scope)', function (assert)
-{
- var scopeID = '1000';
-
- var scopeObject = {
- getInstanceId: function ()
- {
- return scopeID;
- }
- };
-
- var events = new Events();
- var calls = [];
-
- events.subscribe('MyTopic', function ()
- {
- calls.push(['global callback', this, Array.prototype.slice.call(arguments)]);
- });
-
- events.subscribe('MyTopic', function ()
- {
- calls.push(['scoped callback', this, Array.prototype.slice.call(arguments)]);
- }, scopeID);
-
- events.subscribe('MyTopic', function ()
- {
- calls.push(['global callback after scoped', this, Array.prototype.slice.call(arguments)]);
- });
-
- events.subscribe('MyTopic', function ()
- {
- calls.push(['irrelevant callback', this, Array.prototype.slice.call(arguments)]);
- }, 'irrelevant');
-
- events.publish('OtherTopic', ['should not be called'], scopeObject);
- events.publish('MyTopic', [1, 2, 3], scopeObject);
- events.publish('MyTopic', null, scopeObject); // Null arguments should work
-
- assert.deepEqual(calls, [
- ['global callback', scopeObject, [1, 2, 3]],
- ['global callback after scoped', scopeObject, [1, 2, 3]],
- ['scoped callback', scopeObject, [1, 2, 3]],
- ['global callback', scopeObject, []],
- ['global callback after scoped', scopeObject, []],
- ['scoped callback', scopeObject, []]
- ], 'Global and relevant scoped callbacks should be called, with globals first');
-
- calls = [];
-
- var invalidScope = null;
-
- events.publish('MyTopic', [3, 2, 1], invalidScope);
-
- // I don't know if this is really desirable behaviour, but it's what happens
- assert.deepEqual(calls, [
- ['global callback', invalidScope, [3, 2, 1]],
- ['global callback after scoped', invalidScope, [3, 2, 1]]
- ], 'Only global callbacks should be called for invalid scope objects');
-});
-
-QUnit.test('unsubscribe(Array[, completely])', function (assert)
-{
- var events = new Events();
-
- var callback = function () {};
- var otherCallback = function () {};
-
- events.subscribe('MyTopic', callback);
- events.subscribe('MyTopic', otherCallback);
- events.subscribe('MyTopic', callback, 'some scope');
- events.subscribe('MyTopic', otherCallback, 'some scope');
- events.subscribe('MyTopic', callback, 'another scope');
- events.subscribe('MyTopic', otherCallback, 'another scope');
-
- assert.deepEqual(getTestSubscriptions(), {
- 'global': [callback, otherCallback],
- 'some scope': [callback, otherCallback],
- 'another scope': [callback, otherCallback]
- }, 'The callbacks should be subscribed (sanity check)');
-
- assert.ok(events.unsubscribe(['MyTopic', callback]), 'It should return true if events are unsubscribed');
- assert.ok(!events.unsubscribe(['MyTopic', callback, 'unknown']), 'It should return false if the scope is unknown');
- assert.ok(!events.unsubscribe(['Blueberries', callback]), 'It should return false if the topic is unknown');
-
- assert.deepEqual(getTestSubscriptions(), {
- 'global': [otherCallback],
- 'some scope': [callback, otherCallback],
- 'another scope': [callback, otherCallback]
- }, 'The global callback should be removed');
-
- assert.ok(!events.unsubscribe(['MyTopic', callback]), 'It should return false if no events are unsubscribed');
-
- events.unsubscribe(['MyTopic', callback, 'some scope']);
-
- assert.deepEqual(getTestSubscriptions(), {
- 'global': [otherCallback],
- 'some scope': [otherCallback],
- 'another scope': [callback, otherCallback]
- }, 'The relevant scoped callback should be removed');
-
- assert.ok(events.unsubscribe(['MyTopic', callback, 'another scope'], true), 'It should return true if events are unsubscribed (completely)');
- assert.ok(!events.unsubscribe(['MyTopic', callback, 'another scope'], true), 'It should return false if no events are unsubscribed (completely)');
-
- assert.deepEqual(getTestSubscriptions(), {
- 'global': [otherCallback],
- 'some scope': [otherCallback],
- 'another scope': []
- }, 'All scoped callbacks should be removed when `completely` is true');
-
- events.unsubscribe(['MyTopic', callback], true);
-
- assert.deepEqual(getTestSubscriptions(), {
- 'global': [],
- 'some scope': [otherCallback],
- 'another scope': []
- }, 'All global callbacks should be removed when `completely` is true');
-
- function getTestSubscriptions()
- {
- return {
- 'global': subscriptions(events, 'MyTopic'),
- 'some scope': subscriptions(events, 'MyTopic', 'some scope'),
- 'another scope': subscriptions(events, 'MyTopic', 'another scope')
- };
- }
-});
-
-QUnit.test('unsubscribeAll([instanceID])', function (assert)
-{
- var events = new Events();
-
- var callback = function () {};
-
- events.subscribe('MyTopic', callback);
- events.subscribe('MyTopic', callback, 'some scope');
- events.subscribe('MyTopic', callback, 'another scope');
-
- assert.deepEqual(getTestSubscriptions(), {
- 'global': [callback],
- 'some scope': [callback],
- 'another scope': [callback]
- }, 'The callbacks should be subscribed (sanity check)');
-
- events.unsubscribeAll('some scope');
-
- assert.deepEqual(getTestSubscriptions(), {
- 'global': [callback],
- 'some scope': [],
- 'another scope': [callback]
- }, 'All topics for the scope should be unsubscribed');
-
- events.unsubscribeAll('this is not actually a scope');
-
- assert.deepEqual(getTestSubscriptions(), {
- 'global': [callback],
- 'some scope': [],
- 'another scope': [callback]
- }, 'Unsubscribing from an unknown topic should not blow things up');
-
- events.unsubscribeAll();
-
- assert.deepEqual(getTestSubscriptions(), {
- 'global': [],
- 'some scope': [],
- 'another scope': []
- }, 'Unsubscribing without a topic should clear everything');
-
- function getTestSubscriptions()
- {
- return {
- 'global': subscriptions(events, 'MyTopic'),
- 'some scope': subscriptions(events, 'MyTopic', 'some scope'),
- 'another scope': subscriptions(events, 'MyTopic', 'another scope')
- };
- }
-});
-
-/** Reach into an events instance to check private state **/
-function subscriptions(events, topic, instanceID)
-{
- if (typeof instanceID === 'undefined')
- instanceID = 'global';
-
- var topicSubs = events._cache[topic];
-
- if (!topicSubs)
- return [];
-
- var instanceSubs = topicSubs[instanceID];
-
- if (!instanceSubs)
- return [];
-
- return instanceSubs.slice();
-}
diff --git a/tests/unit/utils/hash-params.js b/tests/unit/utils/hash-params.js
deleted file mode 100644
index d1e9edb0..00000000
--- a/tests/unit/utils/hash-params.js
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
-Test coverage: pretty much complete
-Can't really (or don't need to) test any of the others
-*/
-
-var HashParams = require('../../../source/js/utils/hash-params');
-
-QUnit.module("HashParams");
-
-QUnit.test("HashParams.get", function (assert)
-{
- // First try it with no hash params - should return false
- assert.ok(!HashParams.get('anything'), "No hash params, should return false");
-
- // Now set the current URL to something
- var baseUrl = window.location.href;
- window.location.hash = '#p=149&z=2';
- var nonexistentParam = HashParams.get('lol');
- var firstParam = HashParams.get('p');
- var secondParam = HashParams.get('z');
- assert.ok(!nonexistentParam, "The nonexistent param should return false");
- assert.strictEqual(firstParam, '149', "The 'p' param should be 149 (string)");
- assert.strictEqual(secondParam, '2', "The 'z' param should be 2 (string)");
-
- // Now let there be only one element in the URL
- window.location.hash = '#p=149';
- var soleParam = HashParams.get('p');
- assert.strictEqual(soleParam, '149', "The 'p' param should be 149 when it is the sole param");
-
- // Now let there be other elements in the URL
- window.location.hash = '#z=2&p=100&lol=lol';
- var anotherFirstParam = HashParams.get('z');
- var anotherSecondParam = HashParams.get('p');
- var thirdParam = HashParams.get('lol');
- assert.strictEqual(anotherFirstParam, '2', "The 'z' param should be '2' when it is the first param");
- assert.strictEqual(anotherSecondParam, '100', "The 'p' param should be '100' when it is the middle param");
- assert.strictEqual(thirdParam, 'lol', "The last param should be 'lol'");
- window.location.hash = '';
-});
-
-QUnit.test("HashParams.update", function (assert)
-{
- window.location.hash = '';
- // First try it with no hash params in the URL
- HashParams.update('p', '1');
- assert.strictEqual(window.location.hash, '#p=1');
-
- // The key is present but there is no value
- window.location.hash = '#p=';
- HashParams.update('p', '2');
- assert.strictEqual(window.location.hash, '#p=2');
-
- // Then, with a bunch of irrelevant ones
- window.location.hash = '#key=2&another=3';
- HashParams.update('p', '3');
- assert.strictEqual(window.location.hash, '#key=2&another=3&p=3');
-
- // One irrelevant one
- window.location.hash = '#a=b';
- HashParams.update('p', '4');
- assert.strictEqual(window.location.hash, '#a=b&p=4');
-
- // Only one hash param, and it's the one we want to update
- window.location.hash = '#p=1';
- HashParams.update('p', '9001');
- assert.strictEqual(window.location.hash, '#p=9001');
-
- // Two hash params, one of which is the one we want to update
- window.location.hash = '#p=4&h=1';
- HashParams.update('p', '1');
- assert.strictEqual(window.location.hash, '#p=1&h=1');
- HashParams.update('h', '100');
- assert.strictEqual(window.location.hash, '#p=1&h=100');
-
- // Two hash params, both are which are right (choose one)
- // Should never happen unless the user is being malicious
- window.location.hash = '#p=4&p=2';
- HashParams.update('p', '5');
- assert.strictEqual(window.location.hash, '#p=4&p=5');
- // Not actually sure why it chooses the first one to update
-
- // Restore the URL
- window.location.hash = '';
-});
diff --git a/tests/utils.js b/tests/utils.js
deleted file mode 100644
index 3da2b3e6..00000000
--- a/tests/utils.js
+++ /dev/null
@@ -1,64 +0,0 @@
-// Utility methods for testing
-
-var jQuery = require('jquery');
-var $ = jQuery;
-
-var diva = require('../source/js/diva');
-
-var getWrapper = module.exports.getWrapper = function ()
-{
- var wrapper = $('#diva-temp');
-
- // Attach the wrapper to the DOM on first instantiation
- if (wrapper.length === 0)
- {
- // The tests were developed for a viewport width of 1000px,
- // so we set the parent element to have a width of 1000px minus
- // standard body padding
- var width = 1000 - (8 * 2);
-
- var wrapperHtml = (
- '' +
- '' +
- ''
- );
-
- var parent = $(wrapperHtml);
- parent.appendTo(document.body);
-
- wrapper = parent.find('#diva-temp');
- }
-
- return wrapper;
-};
-
-(function () {
- // Allows you to clone, create a document viewer on, then remove an element
- $.tempDiva = function (settings) {
- var wrapper = getWrapper();
-
- settings = settings || {};
- // If the divaserveURL, imageDir, iconPath and iipServerURL settings aren't defined, define them
- settings.objectData = settings.objectData || "../demo/beromunster-iiif.json";
-
- // These are always enabled. I don't think that was really intentional
- // initially, but it's required now to keep existing tests from breaking.
- settings.enableCanvas = true;
- settings.enableDownload = true;
-
- return wrapper.diva(settings).data('diva');
- };
-})(jQuery);
-
-module.exports.clearTempDiva = function()
-{
- // First, empty it in case something else has been using it
- var dv = $('#diva-temp').data('diva');
- if (dv)
- {
- dv.destroy();
- }
-
- // Clear globally subscribed events (i.e. test callbacks)
- diva.Events.unsubscribeAll();
-};
diff --git a/tools/check-git-status.js b/tools/check-git-status.js
deleted file mode 100644
index d46217c3..00000000
--- a/tools/check-git-status.js
+++ /dev/null
@@ -1,34 +0,0 @@
-var spawn = require('child_process').spawn;
-var Promise = global.Promise || require('bluebird');
-
-module.exports = function ()
-{
- return gitExec(['status', '--porcelain']).then(function (output)
- {
- if (output)
- throw new Error('working directory must be clean, but got files:\n' + output);
- });
-};
-
-function gitExec(command)
-{
- return new Promise(function (resolve, reject)
- {
- var proc = spawn('git', command, {stdio: ['inherit', 'pipe', 'inherit']});
-
- var output = '';
-
- proc.stdout.on('data', function (data)
- {
- output += data;
- });
-
- proc.on('exit', function (code)
- {
- if (code === 0)
- resolve(output);
- else
- reject(new Error('git exited with code ' + code));
- });
- });
-}
diff --git a/tools/generate-archives.js b/tools/generate-archives.js
deleted file mode 100644
index 50f9568f..00000000
--- a/tools/generate-archives.js
+++ /dev/null
@@ -1,101 +0,0 @@
-'use strict';
-
-var Promise = global.Promise || require('bluebird');
-
-var fs = require('fs');
-var zlib = require('zlib');
-var tar = require('tar-fs');
-var archiver = require('archiver');
-
-var promisify = require('bluebird').promisify;
-
-var rmRec = promisify(require('rimraf'));
-
-var npmExec = require('./npm-exec');
-
-// Create a tar archive using npm pack and a zip archive based on it
-module.exports = function ()
-{
- // Ensure version is up to date
- delete require.cache[require.resolve('../package.json')];
- var version = require('../package.json').version;
-
- var releaseName = 'diva-v' + version;
- var npmPackFilename = 'diva.js-' + version + '.tgz';
-
- return npmExec(['pack']).then(function ()
- {
- var extractor = tar.extract('.tmp-package');
- var extracterComplete = streamToPromise(extractor, 'finish');
-
- var tgz = fs.createReadStream(npmPackFilename);
- tgz
- .pipe(zlib.Gunzip())
- .pipe(extractor);
-
- return extracterComplete;
- }).then(function ()
- {
- var tarOpts = {
- gzip: true,
- gzipOptions: {
- level: 9
- }
- };
-
- return Promise.all([
- writeArchive('zip', undefined, releaseName, '.zip'),
- writeArchive('tar', tarOpts, releaseName, '.tar.gz')
- ]);
- }).then(function ()
- {
- // No-op, ensure undefined returned
- }, function (err)
- {
- // Catch error to re-raise later
- return err;
- })
- .then(function (err)
- {
- // Cleanup
- return Promise.all([
- rmRec(npmPackFilename),
- rmRec('./.tmp-package')
- ]).then(function ()
- {
- // Re-throw an error if there was one
- if (err)
- throw err;
-
- console.log('Release build complete');
- });
- });
-};
-
-function writeArchive(format, options, releaseName, extension)
-{
- var fname = releaseName + extension;
- var output = fs.createWriteStream(fname);
-
- var archive = archiver(format, options);
-
- var archiverComplete = streamToPromise(archive, 'end');
-
- archive.pipe(output);
- archive.directory('.tmp-package/package', releaseName)
- .finalize();
-
- return archiverComplete.then(function ()
- {
- console.log('Wrote ' + fname + ' (' + archive.pointer() + ' bytes)');
- });
-}
-
-function streamToPromise(stream, endEvent)
-{
- return new Promise(function(resolve, reject)
- {
- stream.on(endEvent, resolve);
- stream.on('error', reject);
- });
-}
diff --git a/tools/npm-exec.js b/tools/npm-exec.js
deleted file mode 100644
index 75a3dd2a..00000000
--- a/tools/npm-exec.js
+++ /dev/null
@@ -1,25 +0,0 @@
-var spawn = require('child_process').spawn;
-var Promise = global.Promise || require('bluebird');
-
-module.exports = function (command)
-{
- return new Promise(function (resolve, reject)
- {
- console.log('executing npm ' + command.join(' '));
- var proc = spawn('npm', command, {shell: true, stdio: 'inherit'});
-
- proc.on('error', function (err)
- {
- console.error('failed to call npm ' + command[0] + ': ' + err);
- reject(err);
- });
-
- proc.on('exit', function (code)
- {
- if (code === 0)
- resolve();
- else
- reject(new Error('npm exited with code ' + code));
- });
- });
-};
diff --git a/webpack.conf.coverage.js b/webpack.conf.coverage.js
deleted file mode 100644
index 8f323b67..00000000
--- a/webpack.conf.coverage.js
+++ /dev/null
@@ -1,33 +0,0 @@
-var path = require('path');
-
-// FIXME: Dedupe common code with the regular test config
-module.exports = {
- externals: {
- // qunit-assert-close looks for this
- qunit: 'QUnit',
- qunitjs: 'QUnit'
- },
-
- module: {
- preLoaders: [
- // instrument only testing sources with Istanbul
- {
- test: /\.js$/,
- include: path.join(__dirname, 'source/js/'),
- loader: 'istanbul-instrumenter'
- }
- ],
- loaders: [
- {
- test: /\.json$/,
- loader: 'json'
- },
- {
- include: path.join(__dirname, 'node_modules/jquery-simulate'),
- loader: 'imports?jQuery=jquery'
- }
- ]
- },
-
- devtool: 'inline-source-map'
-};
diff --git a/webpack.conf.dev.js b/webpack.conf.dev.js
deleted file mode 100644
index 175e9317..00000000
--- a/webpack.conf.dev.js
+++ /dev/null
@@ -1,2 +0,0 @@
-// Output to diva.min.js because that's what the demos use.
-module.exports = require('./get-webpack-config')('development', { outputFilename: 'diva.min.js' });
diff --git a/webpack.conf.prod.js b/webpack.conf.prod.js
deleted file mode 100644
index 7b617273..00000000
--- a/webpack.conf.prod.js
+++ /dev/null
@@ -1,4 +0,0 @@
-module.exports = [
- require('./get-webpack-config')('production'),
- require('./get-webpack-config')('production', { compress: true })
-];
diff --git a/webpack.conf.test.js b/webpack.conf.test.js
deleted file mode 100644
index 69b25f7f..00000000
--- a/webpack.conf.test.js
+++ /dev/null
@@ -1,24 +0,0 @@
-var path = require('path');
-
-module.exports = {
- externals: {
- // qunit-assert-close looks for this
- qunit: 'QUnit',
- qunitjs: 'QUnit'
- },
-
- module: {
- loaders: [
- {
- test: /\.json$/,
- loader: 'json'
- },
- {
- include: path.join(__dirname, 'node_modules/jquery-simulate'),
- loader: 'imports?jQuery=jquery'
- }
- ]
- },
-
- devtool: 'inline-source-map'
-};
diff --git a/webpack.config.js b/webpack.config.js
new file mode 100644
index 00000000..1af58a6a
--- /dev/null
+++ b/webpack.config.js
@@ -0,0 +1,58 @@
+const path = require('path');
+const buildMode = (process.env.NODE_ENV === "production") ? 'production' : 'development';
+const CleanWebpackPlugin = require('clean-webpack-plugin');
+const CopyWebpackPlugin = require('copy-webpack-plugin');
+const MiniCssExtractPlugin = require("mini-css-extract-plugin");
+
+
+module.exports = [{
+ entry: [
+ // 'babel-polyfill',
+ "array.prototype.fill",
+ './source/js/diva.js',
+ './source/css/diva.scss'
+ ],
+ module: {
+ rules: [
+ {
+ test: /\.scss$/,
+ use: ['style-loader', MiniCssExtractPlugin.loader, 'css-loader', 'sass-loader']
+ }
+ ]
+ },
+ plugins: [
+ new CleanWebpackPlugin(['build']),
+ new CopyWebpackPlugin(),
+ new MiniCssExtractPlugin({
+ filename: path.join('diva.css')
+ })
+ ],
+ output: {
+ publicPath: '/build/',
+ path: path.join(__dirname, 'build'),
+ filename: 'diva.js'
+ },
+ mode: buildMode,
+ devtool: (buildMode === "production") ? 'cheap-source-map' : 'cheap-module-eval-source-map',
+ devServer: {
+ contentBase: __dirname,
+ compress: true,
+ port: 9001
+ }
+}, {
+ entry: {
+ 'download': './source/js/plugins/download.js',
+ 'manipulation': './source/js/plugins/manipulation.js',
+ 'metadata': './source/js/plugins/metadata.js'
+ },
+ plugins: [
+ new CleanWebpackPlugin([path.join('build', 'plugins')]),
+ ],
+ output: {
+ publicPath: '/build/plugins/',
+ path: path.join(__dirname, 'build', 'plugins'),
+ filename: '[name].js'
+ },
+ mode: buildMode,
+ devtool: (buildMode === "production") ? 'cheap-source-map' : 'cheap-module-eval-source-map'
+}];
\ No newline at end of file
diff --git a/webpack.config.test.js b/webpack.config.test.js
new file mode 100644
index 00000000..15777372
--- /dev/null
+++ b/webpack.config.test.js
@@ -0,0 +1,45 @@
+var path = require('path');
+
+module.exports = {
+ entry: './test/main.js',
+ mode: 'development',
+ output: {
+ filename: './build/test-bundle.js'
+ },
+ node: {
+ fs: 'empty',
+ net: 'empty',
+ tls: 'empty',
+ child_process: 'empty'
+ },
+ module: {
+ rules: [
+ {
+ loader: "babel-loader",
+ include: [
+ path.resolve(__dirname, "tests")
+ ],
+ query: {
+ presets: ["env"],
+ }
+ },
+ {
+ test: /\.js$/,
+ use: {
+ loader: 'istanbul-instrumenter-loader',
+ options: { esModules: true }
+ },
+ exclude: [
+ // exclude so we don't test coverage of these files
+ // very hard to test them with pure JS anyway
+ /source\/js\/utils\/vanilla\.kinetic\.js/,
+ /source\/js\/utils\/dragscroll\.js/,
+ /source\/js\/plugins\/_filters\.js/,
+ /source\/js\/gesture-events\.js/
+ ],
+ enforce: 'post',
+ include: path.resolve('source/js/')
+ }
+ ]
+ },
+};
Filter Application Order ";
+
+ // reset counters
+ this.zoom = 1;
+ this.rotate = 0;
+
+ // reset mirror
+ this.mirrorHorizontal = 1;
+ this.mirrorVertical = 1;
+ this.handleTransform(null, null, this.rotate);
+
+ resetFilters();
+ }
+
+ _loadImageInMainArea (event, imageURL)
+ {
+ this.currentImageURL = imageURL; // for resetting
+
+ let url = `${imageURL}full/full/0/default.jpg`;
+
+ this._mainImage = new Image();
+ this._mainImage.crossOrigin = "anonymous";
+
+ this._mainImage.addEventListener('load', () =>
+ {
+ // Determine the size of the (square) canvas based on the hypoteneuse
+ this._canvas.size = Math.sqrt(this._mainImage.width * this._mainImage.width + this._mainImage.height * this._mainImage.height);
+ this._canvas.width = this._canvas.size;
+ this._canvas.height = this._canvas.size;
+ this._canvas.cornerX = (this._canvas.size - this._mainImage.width) / 2;
+ this._canvas.cornerY = (this._canvas.size - this._mainImage.height) / 2;
+
+ this._ctx.clearRect(0, 0, this._canvas.width, this._canvas.height);
+ this._ctx.drawImage(this._mainImage, this._canvas.cornerX, this._canvas.cornerY, this._mainImage.width, this._mainImage.height);
+ this._originalData = this._ctx.getImageData(this._canvas.cornerX, this._canvas.cornerY, this._mainImage.width, this._mainImage.height);
+ this._alteredData = this._originalData;
+
+ // to preserve pre-zoom dimensions
+ this.dims = {
+ w: this._canvas.width,
+ h: this._canvas.height
+ };
+
+ // clean up the image data since it's been painted to the canvas
+ this._mainImage = null;
+
+ // center the viewport
+ this.centerView();
+ });
+
+ this._mainImage.src = url;
+
+ this._resetSliders();
+ }
+
+ _applyTransformationToImageData (event, func, value)
+ {
+ let cw = this._canvas.width;
+ let ch = this._canvas.height;
+ let adjustment;
+
+ if (value)
+ {
+ adjustment = parseInt(value, 10);
+ }
+
+ let newData = func(this._originalData, adjustment);
+ this._alteredData = newData;
+
+ this._ctx.clearRect(0, 0, cw, ch);
+ this._ctx.putImageData(newData, this._canvas.cornerX, this._canvas.cornerY);
+
+ // necessary to reset the current zoom level (since ImageData gets altered at zoom 1)
+ this.handleZoom(event, this.zoom, false);
+ }
+
+ handleZoom (event, value, recenter)
+ {
+ let scale = value * 0.5 + 0.5;
+
+ let w = this.dims.w;
+ let h = this.dims.h;
+
+ // temp canvas for drawing at original zoom level
+ let tempCanvas = document.createElement('canvas');
+ let tempCtx = tempCanvas.getContext('2d');
+ tempCanvas.width = w;
+ tempCanvas.height = h;
+ tempCtx.putImageData(this._alteredData, this._canvas.cornerX, this._canvas.cornerY);
+
+ this._canvas.width = w * scale;
+ this._canvas.height = h * scale;
+ this._ctx.clearRect(0, 0, this._canvas.width, this._canvas.height);
+ this._ctx.scale(scale, scale);
+ this._ctx.drawImage(tempCanvas, 0, 0);
+
+ // determine if zooming in or not
+ let zoomingIn = value > this.zoom ? true : false;
+
+ this.zoom = parseInt(value, 10);
+
+ if (recenter)
+ {
+ let rect = event.target.getBoundingClientRect();
+ let x = event.clientX - rect.left;
+ let y = event.clientY - rect.top;
+
+ if (!zoomingIn)
+ {
+ // x & y are in terms of pre-zoom-out dimensions, so scale down accordingly
+ let scaleOut = (this.zoom * 0.5 + 0.5) / ((this.zoom + 1) * 0.5 + 0.5);
+ x *= scaleOut;
+ y *= scaleOut;
+ }
+
+ this.centerView(x, y, zoomingIn);
+ }
+ }
+
+ centerView (x, y, zoomingIn)
+ {
+ let view = document.getElementsByClassName('manipulation-main-area')[0];
+
+ if (zoomingIn)
+ {
+ // x & y are in terms of pre-zoom-in dimensions, so scale up accordingly
+ let scaleIn = (this.zoom * 0.5 + 0.5) / ((this.zoom - 1) * 0.5 + 0.5);
+ x *= scaleIn;
+ y *= scaleIn;
+ }
+
+ // distance from center
+ let center = this._canvas.height / 2;
+ let distY = y - center;
+ let distX = x - center;
+
+ let h = this._canvas.height;
+ let w = this._canvas.width;
+
+ let topCentered = (h - view.clientHeight) / 2;
+ let leftCentered = (w - view.clientWidth) / 2;
+
+ let top = y ? topCentered + distY : topCentered;
+ let left = x ? leftCentered + distX : leftCentered;
+
+ view.scrollTop = top;
+ view.scrollLeft = left;
+ }
+
+ handleTransform (event, type, value)
+ {
+ let canvas = document.getElementsByClassName('manipulation-main-area')[0].children[0];
+
+ if (type === 'vertical')
+ this.mirrorVertical *= -1;
+ else if (type === 'horizontal')
+ this.mirrorHorizontal *= -1;
+
+ canvas.style.transform = "scale("+this.mirrorHorizontal+","+this.mirrorVertical+") rotate("+value+"deg)";
+
+ this.rotate = value;
+ }
+}
+
+ManipulationPlugin.prototype.pluginName = "manipulation";
+ManipulationPlugin.prototype.isPageTool = true;
+
+/**
+ * Make this plugin available in the global context
+ * as part of the 'Diva' namespace.
+ **/
+(function (global)
+{
+ global.Diva.ManipulationPlugin = ManipulationPlugin;
+})(window);
diff --git a/source/js/plugins/metadata.js b/source/js/plugins/metadata.js
new file mode 100644
index 00000000..d074ee1b
--- /dev/null
+++ b/source/js/plugins/metadata.js
@@ -0,0 +1,176 @@
+/**
+ * A simple plugin that implements a button to view the IIIF manifest metadata block. Plugins
+ * should register themselves as a class in the global Diva namespace, e.g., global.Diva.MetadataPlugin.
+ * Plugins are then included as *uninstantiated* references within a plugin configuration. To enable them, simply include
+ * plugins: [Diva.MetadataPlugin] when creating a Diva instance.
+ * When the viewer is instantiated it will also instantiate the plugin, which
+ * will then configure itself.
+ *
+ * Plugin constructors should take one argument, which is an instance of a ViewerCore object.
+ *
+ *
+ * Plugins should implement the following interface:
+ *
+ * {boolean} isPageTool - Added to the class prototype. Whether the plugin icon should be included for each page as a page tool
+ * {string} pluginName - Added to the class prototype. Defines the name for the plugin.
+ *
+ * @method createIcon - A div representing the icon. This *should* be implemented using SVG.
+ * @method handleClick - The click handler for the icon.
+ *
+ * Toolbar plugins must have a toolbarIcon and toolbarSide attribute, with toolbarSide being either 'left' or 'right'
+ **/
+
+import parseLabelValue from '../utils/parse-label-value';
+
+export default class MetadataPlugin
+{
+ constructor (core)
+ {
+ this.core = core;
+ this.toolbarIcon;
+ this.toolbarSide = 'right';
+
+ // helpers for handleClick
+ this.firstClick = true;
+ this.isVisible = false;
+ }
+
+ /**
+ * Display a modal with the IIIF manifest metadata.
+ **/
+ handleClick ()
+ {
+ // if first click create div elements
+ let metadataDiv;
+
+ let metadata = this.core.viewerState.manifest.metadata;
+
+ if (this.firstClick)
+ {
+ metadataDiv = document.createElement('div');
+ metadataDiv.id = 'metadataDiv';
+ metadataDiv.className = 'diva-modal';
+
+ let title = document.createElement('h2');
+ title.innerText = 'Metadata';
+ title.id = 'metadataTitle';
+
+ let closeButton = document.createElement('button');
+ closeButton.innerHTML = '✖';
+ closeButton.classList.add('close-button');
+ closeButton.onclick = () =>
+ {
+ metadataDiv.style.display = 'none';
+ this.isVisible = false;
+ };
+
+ let contentDiv = document.createElement('div');
+ contentDiv.id = 'contentDiv';
+
+ for (let i = 0, len = metadata.length; i < len; i++)
+ {
+ let key = metadata[i];
+
+ let header = document.createElement('h4');
+ header.innerHTML = parseLabelValue(key).label;
+ header.setAttribute('style', 'margin-bottom: 0');
+
+ let value = document.createElement('p');
+ value.innerHTML = parseLabelValue(key).value;
+ value.setAttribute('style', 'margin-top: 0');
+
+ contentDiv.appendChild(header);
+ contentDiv.appendChild(value);
+ }
+
+ metadataDiv.appendChild(closeButton);
+ metadataDiv.appendChild(title);
+ metadataDiv.appendChild(contentDiv);
+ document.body.appendChild(metadataDiv);
+
+ this.firstClick = false;
+ }
+ else
+ {
+ metadataDiv = document.getElementById('metadataDiv');
+ }
+
+ if (this.isVisible)
+ {
+ metadataDiv.style.display = 'none';
+ this.isVisible = false;
+ }
+ else
+ {
+ metadataDiv.style.display = 'block';
+ this.isVisible = true;
+ }
+
+ // attach drag listeners
+ let pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
+ metadataDiv.onmousedown = (e) =>
+ {
+ pos3 = e.clientX;
+ pos4 = e.clientY;
+
+ document.onmousemove = (e) =>
+ {
+ pos1 = pos3 - e.clientX;
+ pos2 = pos4 - e.clientY;
+ pos3 = e.clientX;
+ pos4 = e.clientY;
+ metadataDiv.style.top = (metadataDiv.offsetTop - pos2) + 'px';
+ metadataDiv.style.left = (metadataDiv.offsetLeft - pos1) + 'px';
+ };
+
+ document.onmouseup = () =>
+ {
+ document.onmouseup = null;
+ document.onmousemove = null;
+ };
+ };
+ }
+
+ /**
+ * See img/metadata.svg for the standalone source code for this.
+ **/
+ createIcon ()
+ {
+ if (!this.core.viewerState.manifest.metadata)
+ return;
+
+ const toolbarIcon = document.createElement('div');
+ toolbarIcon.classList.add('diva-metadata-icon', 'diva-button');
+
+ let root = document.createElementNS("http://www.w3.org/2000/svg", "svg");
+ root.setAttribute("viewBox", "0 0 20 20");
+ root.setAttribute('style', 'display: block; padding: 7%');
+ root.id = `${this.core.settings.selector}metadata-icon`;
+
+ let g = document.createElementNS("http://www.w3.org/2000/svg", "g");
+ g.id = `${this.core.settings.selector}metadata-icon-glyph`;
+ g.setAttribute("class", "diva-toolbar-icon");
+
+ let path = document.createElementNS("http://www.w3.org/2000/svg", "path");
+ path.setAttribute("d", "M5.379,0.681 L5.289,0.771 L5.255,0.736 C4.401,-0.118 2.98,-0.082 2.082,0.816 L1.827,1.07 C0.931,1.967 0.894,3.388 1.749,4.243 L1.783,4.277 L1.619,4.442 C0.846,5.214 0.818,6.441 1.559,7.18 L9.884,15.508 C10.626,16.248 11.851,16.22 12.626,15.447 L16.384,11.689 C17.156,10.916 17.185,9.69 16.445,8.95 L8.117,0.622 C7.377,-0.118 6.15,-0.091 5.379,0.681 L5.379,0.681 Z M4.523,5.108 C3.645,5.108 2.931,4.393 2.931,3.508 C2.931,2.627 3.645,1.911 4.523,1.911 C5.404,1.911 6.115,2.627 6.119,3.508 C6.115,4.395 5.404,5.108 4.523,5.108 L4.523,5.108 Z");
+
+ g.appendChild(path);
+ root.appendChild(g);
+
+ toolbarIcon.appendChild(root);
+
+ return toolbarIcon;
+ }
+}
+
+MetadataPlugin.prototype.pluginName = "metadata";
+MetadataPlugin.prototype.isPageTool = false;
+
+/**
+ * Make this plugin available in the global context
+ * as part of the 'Diva' namespace.
+ **/
+(function (global)
+{
+ global.Diva.MetadataPlugin = MetadataPlugin;
+})(window);
diff --git a/source/js/register-builtin-plugins.js b/source/js/register-builtin-plugins.js
deleted file mode 100644
index 5d1b6c14..00000000
--- a/source/js/register-builtin-plugins.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var diva = require('./diva-global');
-
-diva.registerPlugin(require('./plugins/autoscroll'));
-diva.registerPlugin(require('./plugins/canvas'));
-diva.registerPlugin(require('./plugins/download'));
-diva.registerPlugin(require('./plugins/highlight'));
-diva.registerPlugin(require('./plugins/iiif-highlight'));
-diva.registerPlugin(require('./plugins/iiif-metadata'));
diff --git a/source/js/renderer.js b/source/js/renderer.js
index 1a74b209..ee570c5f 100644
--- a/source/js/renderer.js
+++ b/source/js/renderer.js
@@ -1,614 +1,579 @@
-'use strict';
+const debug = require('debug')('diva:Renderer');
+const debugPaints = require('debug')('diva:Renderer:paints');
-var debug = require('debug')('diva:Renderer');
-var debugPaints = require('debug')('diva:Renderer:paints');
+import { elt, setAttributes } from './utils/elt';
+import CompositeImage from './composite-image';
+import DocumentLayout from './document-layout';
+import ImageCache from './image-cache';
+import ImageRequestHandler from './image-request-handler';
+import InterpolateAnimation from './interpolate-animation';
-var elt = require('./utils/elt');
+const REQUEST_DEBOUNCE_INTERVAL = 250;
-var CompositeImage = require('./composite-image');
-var DocumentLayout = require('./document-layout');
-var ImageCache = require('./image-cache');
-var ImageRequestHandler = require('./image-request-handler');
-var InterpolateAnimation = require('./interpolate-animation');
-
-var REQUEST_DEBOUNCE_INTERVAL = 250;
-
-
-module.exports = Renderer;
-
-function Renderer(options, hooks)
+export default class Renderer
{
- this._viewport = options.viewport;
- this._outerElement = options.outerElement;
- this._documentElement = options.innerElement;
-
- this._hooks = hooks || {};
+ constructor (options, hooks)
+ {
+ this._viewport = options.viewport;
+ this._outerElement = options.outerElement;
+ this._documentElement = options.innerElement;
- this._canvas = elt('canvas', { class: 'diva-viewer-canvas', tabindex: '1' });
- this._ctx = this._canvas.getContext('2d');
+ this._hooks = hooks || {};
- this.layout = null;
+ this._canvas = elt('canvas', { class: 'diva-viewer-canvas' });
+ this._ctx = this._canvas.getContext('2d');
- this._sourceResolver = null;
- this._renderedPages = null;
- this._config = null;
- this._zoomLevel = null;
- this._compositeImages = null;
- this._renderedTiles = null;
- this._animation = null;
+ this.layout = null;
- // FIXME(wabain): What level should this be maintained at?
- // Diva global?
- this._cache = new ImageCache();
- this._pendingRequests = {};
-}
+ this._sourceResolver = null;
+ this._renderedPages = null;
+ this._config = null;
+ this._zoomLevel = null;
+ this._compositeImages = null;
+ this._renderedTiles = null;
+ this._animation = null;
-Renderer.getCompatibilityErrors = function ()
-{
- if (typeof HTMLCanvasElement !== 'undefined')
- return null;
-
- return [
- 'Your browser lacks support for the ', elt('pre', 'canvas'),
- ' element. Please upgrade your browser.'
- ];
-};
-
-/*
-* Method supplied by Joseph Jezerinac, https://github.com/jezerinac
-*
-* https://github.com/DDMAL/diva.js/pull/370
-*
-* Given a pair of x,y co-ordinates, translate that to a position on a rendered
-* page. Returns an object containing the page index, a percentage of the w/h of
-* the image, and the absolute value of the hit point on the image, e.g., a click in
-* the top left corner of the image would return 0,0.
-*
-**/
-Renderer.prototype.getPageHit = function (clientX, clientY)
-{
- var bounds = this._outerElement.getBoundingClientRect();
- if (clientX < bounds.left || clientY < bounds.top ||
- clientX > bounds.left + bounds.width || clientY > bounds.top + bounds.height)
- {
- return null;
+ // FIXME(wabain): What level should this be maintained at?
+ // Diva global?
+ this._cache = new ImageCache();
+ this._pendingRequests = {};
}
- clientX -= bounds.left;
- clientY -= bounds.top;
-
- var numRenderedPages = this._renderedPages.length;
-
- for (var i = 0; i < numRenderedPages; i++)
+ static getCompatibilityErrors ()
{
- var pageIndex = this._renderedPages[i];
- var pageInfo = this.layout.getPageInfo(pageIndex);
- var pageOffset = this._getImageOffset(pageIndex);
-
- var viewportPaddingX = Math.max(0, (this._viewport.width - this.layout.dimensions.width) / 2);
- var viewportPaddingY = Math.max(0, (this._viewport.height - this.layout.dimensions.height) / 2);
-
- var viewportOffsetX = pageOffset.left - this._viewport.left + viewportPaddingX;
- var viewportOffsetY = pageOffset.top - this._viewport.top + viewportPaddingY;
-
- var destXOffset = viewportOffsetX < 0 ? -viewportOffsetX : 0;
- var destYOffset = viewportOffsetY < 0 ? -viewportOffsetY : 0;
+ if (typeof HTMLCanvasElement !== 'undefined')
+ {
+ return null;
+ }
- var canvasX = Math.max(0, viewportOffsetX);
- var canvasY = Math.max(0, viewportOffsetY);
+ return [
+ 'Your browser lacks support for the ', elt('pre', 'canvas'),
+ ' element. Please upgrade your browser.'
+ ];
+ }
- var destWidth = pageInfo.dimensions.width - destXOffset;
- var destHeight = pageInfo.dimensions.height - destYOffset;
+ load (config, viewportPosition, sourceResolver)
+ {
+ this._clearAnimation();
- if (clientX >= canvasX && clientX <= canvasX + destWidth && clientY >= canvasY && clientY <= canvasY + destHeight)
+ if (this._hooks.onViewWillLoad)
{
- var xhp = ((clientX + destXOffset) - canvasX);
- var yhp = ((clientY + destYOffset) - canvasY);
- /* To get the percentage x and y you need to adjust the by the scroll offset and the canvas position
- Also returns the absolute x and y at a given zoom level; these can be adjusted by clients later
- using the translateFromMaxZoomLevel / translateToMaxZoomLevel methods.
- */
- return {
- pg: pageIndex,
- pctx: xhp / pageInfo.dimensions.width,
- pcty: yhp / pageInfo.dimensions.height,
- x: xhp,
- y: yhp
- };
+ this._hooks.onViewWillLoad();
}
- }
- return null;
-};
+ this._sourceResolver = sourceResolver;
+ this._config = config;
+ this._compositeImages = {};
+ this._setLayoutToZoomLevel(viewportPosition.zoomLevel);
-Renderer.prototype.load = function (config, viewportPosition, sourceResolver)
-{
- this._clearAnimation();
+ // FIXME(wabain): Remove this when there's more confidence the check shouldn't be needed
+ if (!this.layout.getPageInfo(viewportPosition.anchorPage))
+ {
+ throw new Error('invalid page: ' + viewportPosition.anchorPage);
+ }
- if (this._hooks.onViewWillLoad)
- this._hooks.onViewWillLoad();
+ if (this._canvas.width !== this._viewport.width || this._canvas.height !== this._viewport.height)
+ {
+ debug('Canvas dimension change: (%s, %s) -> (%s, %s)', this._canvas.width, this._canvas.height,
+ this._viewport.width, this._viewport.height);
- this._sourceResolver = sourceResolver;
- this._config = config;
- this._compositeImages = {};
- this._setLayoutToZoomLevel(viewportPosition.zoomLevel);
+ this._canvas.width = this._viewport.width;
+ this._canvas.height = this._viewport.height;
+ }
+ else
+ {
+ debug('Reload, no size change');
+ }
- // FIXME(wabain): Remove this when there's more confidence the check shouldn't be needed
- if (!this.layout.getPageInfo(viewportPosition.anchorPage))
- throw new Error('invalid page: ' + viewportPosition.anchorPage);
+ // FIXME: What hooks should be called here?
+ this.goto(viewportPosition.anchorPage, viewportPosition.verticalOffset, viewportPosition.horizontalOffset);
- if (this._canvas.width !== this._viewport.width || this._canvas.height !== this._viewport.height)
- {
- debug('Canvas dimension change: (%s, %s) -> (%s, %s)', this._canvas.width, this._canvas.height,
- this._viewport.width, this._viewport.height);
+ if (this._canvas.parentNode !== this._outerElement)
+ {
+ this._outerElement.insertBefore(this._canvas, this._outerElement.firstChild);
+ }
- this._canvas.width = this._viewport.width;
- this._canvas.height = this._viewport.height;
- } else {
- debug('Reload, no size change');
+ if (this._hooks.onViewDidLoad)
+ {
+ this._hooks.onViewDidLoad();
+ }
}
- // FIXME: What hooks should be called here?
- this.goto(viewportPosition.anchorPage, viewportPosition.verticalOffset, viewportPosition.horizontalOffset);
+ _setViewportPosition (viewportPosition)
+ {
+ if (viewportPosition.zoomLevel !== this._zoomLevel)
+ {
+ if (this._zoomLevel === null)
+ {
+ throw new TypeError('The current view is not zoomable');
+ }
+ else if (viewportPosition.zoomLevel === null)
+ {
+ throw new TypeError('The current view requires a zoom level');
+ }
- if (this._canvas.parentNode !== this._outerElement)
- this._outerElement.insertBefore(this._canvas, this._outerElement.firstChild);
+ this._setLayoutToZoomLevel(viewportPosition.zoomLevel);
+ }
- if (this._hooks.onViewDidLoad)
- this._hooks.onViewDidLoad();
-};
+ this._goto(viewportPosition.anchorPage, viewportPosition.verticalOffset, viewportPosition.horizontalOffset);
+ }
-Renderer.prototype._setViewportPosition = function (viewportPosition)
-{
- if (viewportPosition.zoomLevel !== this._zoomLevel)
+ _setLayoutToZoomLevel (zoomLevel)
{
- if (this._zoomLevel === null)
- throw new TypeError('The current view is not zoomable');
- else if (viewportPosition.zoomLevel === null)
- throw new TypeError('The current view requires a zoom level');
+ this.layout = new DocumentLayout(this._config, zoomLevel);
+ this._zoomLevel = zoomLevel;
- this._setLayoutToZoomLevel(viewportPosition.zoomLevel);
+ setAttributes(this._documentElement, {
+ style: {
+ height: this.layout.dimensions.height + 'px',
+ width: this.layout.dimensions.width + 'px'
+ }
+ });
+
+ this._viewport.setInnerDimensions(this.layout.dimensions);
}
- this._goto(viewportPosition.anchorPage, viewportPosition.verticalOffset, viewportPosition.horizontalOffset);
-};
+ adjust ()
+ {
+ this._clearAnimation();
-Renderer.prototype._setLayoutToZoomLevel = function (zoomLevel)
-{
- this.layout = new DocumentLayout(this._config, zoomLevel);
- this._zoomLevel = zoomLevel;
+ this._render();
- elt.setAttributes(this._documentElement, {
- style: {
- height: this.layout.dimensions.height + 'px',
- width: this.layout.dimensions.width + 'px'
+ if (this._hooks.onViewDidUpdate)
+ {
+ this._hooks.onViewDidUpdate(this._renderedPages.slice(), null);
}
- });
-
- this._viewport.setInnerDimensions(this.layout.dimensions);
-};
-
-Renderer.prototype.adjust = function (direction)
-{
- this._clearAnimation();
-
- this._render(direction);
+ }
- if (this._hooks.onViewDidUpdate)
+ _render ()
{
- this._hooks.onViewDidUpdate(this._renderedPages.slice(), null);
- }
-};
+ const newRenderedPages = [];
+ this.layout.pageGroups.forEach((group) =>
+ {
+ if (!this._viewport.intersectsRegion(group.region))
+ {
+ return;
+ }
+ const visiblePages = group.pages
+ .filter(function (page)
+ {
+ return this.isPageVisible(page.index);
+ }, this)
+ .map(page => page.index);
+ newRenderedPages.push.apply(newRenderedPages, visiblePages);
+ }, this);
-// FIXME(wabain): Remove the direction argument if it doesn't end up being needed.
-Renderer.prototype._render = function (direction) // jshint ignore:line
-{
- var newRenderedPages = [];
- this.layout.pageGroups.forEach(function (group)
- {
- if (!this._viewport.intersectsRegion(group.region))
- return;
+ this._ctx.clearRect(0, 0, this._canvas.width, this._canvas.height);
+ this._paintOutline(newRenderedPages);
- var visiblePages = group.pages
- .filter(function (page)
- {
- return this.isPageVisible(page.index);
- }, this)
- .map(function (page)
+ newRenderedPages.forEach((pageIndex) =>
+ {
+ if (!this._compositeImages[pageIndex])
{
- return page.index;
- });
+ const page = this.layout.getPageInfo(pageIndex);
+ const zoomLevels = this._sourceResolver.getAllZoomLevelsForPage(page);
+ const composite = new CompositeImage(zoomLevels);
+ composite.updateFromCache(this._cache);
+ this._compositeImages[pageIndex] = composite;
+ }
+ }, this);
- newRenderedPages.push.apply(newRenderedPages, visiblePages);
- }, this);
+ this._initiateTileRequests(newRenderedPages);
- this._ctx.clearRect(0, 0, this._canvas.width, this._canvas.height);
- this._paintOutline(newRenderedPages);
+ const changes = findChanges(this._renderedPages || [], newRenderedPages);
- newRenderedPages.forEach(function (pageIndex)
- {
- if (!this._compositeImages[pageIndex])
+ changes.removed.forEach((pageIndex) =>
{
- var page = this.layout.getPageInfo(pageIndex);
- var zoomLevels = this._sourceResolver.getAllZoomLevelsForPage(page);
- var composite = new CompositeImage(zoomLevels);
- composite.updateFromCache(this._cache);
- this._compositeImages[pageIndex] = composite;
- }
- }, this);
+ delete this._compositeImages[pageIndex];
+ }, this);
- this._initiateTileRequests(newRenderedPages);
+ this._renderedPages = newRenderedPages;
+ this._paint();
- var changes = findChanges(this._renderedPages || [], newRenderedPages);
+ if (this._hooks.onPageWillLoad)
+ {
+ changes.added.forEach((pageIndex) =>
+ {
+ this._hooks.onPageWillLoad(pageIndex);
+ }, this);
+ }
+ }
- changes.removed.forEach(function (pageIndex)
+ _paint ()
{
- delete this._compositeImages[pageIndex];
- }, this);
+ debug('Repainting');
- this._renderedPages = newRenderedPages;
- this._paint();
+ const renderedTiles = [];
- if (this._hooks.onPageWillLoad)
- {
- changes.added.forEach(function (pageIndex)
+ this._renderedPages.forEach(function (pageIndex)
{
- this._hooks.onPageWillLoad(pageIndex);
+ this._compositeImages[pageIndex].getTiles(this._zoomLevel).forEach((source) =>
+ {
+ const scaled = getScaledTileRecord(source, this._zoomLevel);
+
+ if (this._isTileVisible(pageIndex, scaled))
+ {
+ renderedTiles.push(source.url);
+ this._drawTile(pageIndex, scaled, this._cache.get(source.url));
+ }
+ }, this);
}, this);
- }
-};
-Renderer.prototype._paint = function ()
-{
- debug('Repainting');
+ const cache = this._cache;
- var renderedTiles = [];
+ const changes = findChanges(this._renderedTiles || [], renderedTiles);
- this._renderedPages.forEach(function (pageIndex)
- {
- this._compositeImages[pageIndex].getTiles(this._zoomLevel).forEach(function (source)
+ changes.added.forEach(url =>
{
- var scaled = getScaledTileRecord(source, this._zoomLevel);
+ cache.acquire(url);
+ });
- if (this._isTileVisible(pageIndex, scaled))
- {
- renderedTiles.push(source.url);
- this._drawTile(pageIndex, scaled, this._cache.get(source.url));
- }
- }, this);
- }, this);
+ changes.removed.forEach(url =>
+ {
+ cache.release(url);
+ });
- var cache = this._cache;
+ if (changes.removed)
+ {
+ // FIXME: Should only need to update the composite images
+ // for which tiles were removed
+ this._renderedPages.forEach((pageIndex) =>
+ {
+ this._compositeImages[pageIndex].updateFromCache(this._cache);
+ }, this);
+ }
- var changes = findChanges(this._renderedTiles || [], renderedTiles);
+ this._renderedTiles = renderedTiles;
+ }
- changes.added.forEach(function (url)
+ // Paint a page outline while the tiles are loading.
+ _paintOutline (pages)
{
- cache.acquire(url);
- });
+ pages.forEach(function (pageIndex)
+ {
+ const pageInfo = this.layout.getPageInfo(pageIndex);
+ const pageOffset = this._getImageOffset(pageIndex);
- changes.removed.forEach(function (url)
- {
- cache.release(url);
- });
+ // Ensure the document is drawn to the center of the viewport
+ const viewportPaddingX = Math.max(0, (this._viewport.width - this.layout.dimensions.width) / 2);
+ const viewportPaddingY = Math.max(0, (this._viewport.height - this.layout.dimensions.height) / 2);
- if (changes.removed)
- {
- // FIXME: Should only need to update the composite images
- // for which tiles were removed
- this._renderedPages.forEach(function (pageIndex)
- {
- this._compositeImages[pageIndex].updateFromCache(this._cache);
- }, this);
- }
+ const viewportOffsetX = pageOffset.left - this._viewport.left + viewportPaddingX;
+ const viewportOffsetY = pageOffset.top - this._viewport.top + viewportPaddingY;
- this._renderedTiles = renderedTiles;
-};
+ const destXOffset = viewportOffsetX < 0 ? -viewportOffsetX : 0;
+ const destYOffset = viewportOffsetY < 0 ? -viewportOffsetY : 0;
-// Paint a page outline while the tiles are loading.
-Renderer.prototype._paintOutline = function (pages)
-{
- pages.forEach(function (pageIndex)
- {
- var pageInfo = this.layout.getPageInfo(pageIndex);
- var pageOffset = this._getImageOffset(pageIndex);
+ const canvasX = Math.max(0, viewportOffsetX);
+ const canvasY = Math.max(0, viewportOffsetY);
- // Ensure the document is drawn to the center of the viewport
- var viewportPaddingX = Math.max(0, (this._viewport.width - this.layout.dimensions.width) / 2);
- var viewportPaddingY = Math.max(0, (this._viewport.height - this.layout.dimensions.height) / 2);
-
- var viewportOffsetX = pageOffset.left - this._viewport.left + viewportPaddingX;
- var viewportOffsetY = pageOffset.top - this._viewport.top + viewportPaddingY;
-
- var destXOffset = viewportOffsetX < 0 ? -viewportOffsetX : 0;
- var destYOffset = viewportOffsetY < 0 ? -viewportOffsetY : 0;
-
- var canvasX = Math.max(0, viewportOffsetX);
- var canvasY = Math.max(0, viewportOffsetY);
-
- var destWidth = pageInfo.dimensions.width - destXOffset;
- var destHeight = pageInfo.dimensions.height - destYOffset;
-
- this._ctx.strokeStyle = '#AAA';
- // In order to get a 1px wide line using strokes, we need to start at a 'half pixel'
- this._ctx.strokeRect(canvasX + 0.5, canvasY + 0.5, destWidth, destHeight);
- }, this);
-};
-
-// This method should be sent all visible pages at once because it will initiate
-// all image requests and cancel any remaining image requests. In the case that
-// a request is ongoing and the tile is still visible in the viewport, the old request
-// is kept active instead of restarting it. The image requests are given a timeout
-// before loading in order to debounce them and have a small reaction time
-// to cancel them and avoid useless requests.
-Renderer.prototype._initiateTileRequests = function(pages)
-{
- // Only requests in this object are kept alive, since all others are not visible in the viewport
- var newPendingRequests = {};
+ const destWidth = pageInfo.dimensions.width - destXOffset;
+ const destHeight = pageInfo.dimensions.height - destYOffset;
- // Used later as a closure to initiate the image requests with the right source and pageIndex
- var initiateRequest = function (source, pageIndex)
+ this._ctx.strokeStyle = '#AAA';
+ // In order to get a 1px wide line using strokes, we need to start at a 'half pixel'
+ this._ctx.strokeRect(canvasX + 0.5, canvasY + 0.5, destWidth, destHeight);
+ }, this);
+ }
+
+ // This method should be sent all visible pages at once because it will initiate
+ // all image requests and cancel any remaining image requests. In the case that
+ // a request is ongoing and the tile is still visible in the viewport, the old request
+ // is kept active instead of restarting it. The image requests are given a timeout
+ // before loading in order to debounce them and have a small reaction time
+ // to cancel them and avoid useless requests.
+ _initiateTileRequests (pages)
{
- var composite = this._compositeImages[pageIndex];
+ // Only requests in this object are kept alive, since all others are not visible in the viewport
+ const newPendingRequests = {};
- newPendingRequests[source.url] = new ImageRequestHandler({
- url: source.url,
- timeoutTime: REQUEST_DEBOUNCE_INTERVAL,
- load: function (img)
- {
- delete this._pendingRequests[source.url];
- this._cache.put(source.url, img);
+ // Used later as a closure to initiate the image requests with the right source and pageIndex
+ const initiateRequest = (source, pageIndex) =>
+ {
+ const composite = this._compositeImages[pageIndex];
- // Awkward way to check for updates
- if (composite === this._compositeImages[pageIndex])
+ newPendingRequests[source.url] = new ImageRequestHandler({
+ url: source.url,
+ timeoutTime: REQUEST_DEBOUNCE_INTERVAL,
+ load: img =>
{
- composite.updateWithLoadedUrls([source.url]);
-
- if (this._isTileForSourceVisible(pageIndex, source))
- this._paint();
+ delete this._pendingRequests[source.url];
+ this._cache.put(source.url, img);
+
+ // Awkward way to check for updates
+ if (composite === this._compositeImages[pageIndex])
+ {
+ composite.updateWithLoadedUrls([source.url]);
+
+ if (this._isTileForSourceVisible(pageIndex, source))
+ {
+ this._paint();
+ }
+ else
+ {
+ debugPaints('Page %s, tile %s no longer visible on image load', pageIndex, source.url);
+ }
+ }
else
- debugPaints('Page %s, tile %s no longer visible on image load', pageIndex, source.url);
+ {
+ if (this._isTileForSourceVisible(pageIndex, source))
+ this._paint();
+ else
+ debugPaints('Page %s, tile %s no longer visible on image load', pageIndex, source.url);
+ }
+ },
+ error: () =>
+ {
+ // TODO: Could make a limited number of retries, etc.
+ delete this._pendingRequests[source.url];
}
- }.bind(this),
- error: function ()
- {
- // TODO: Could make a limited number of retries, etc.
- delete this._pendingRequests[source.url];
- }.bind(this)
- });
- }.bind(this);
-
- for (var i = 0; i < pages.length; i++)
- {
- var pageIndex = pages[i];
- var tiles = this._sourceResolver.getBestZoomLevelForPage(this.layout.getPageInfo(pageIndex)).tiles;
+ });
+ };
- for (var j = 0; j < tiles.length; j++)
+ for (let i = 0; i < pages.length; i++)
{
- var source = tiles[j];
- if (this._cache.has(source.url) || !this._isTileForSourceVisible(pageIndex, source))
- continue;
+ const pageIndex = pages[i];
+ const tiles = this._sourceResolver.getBestZoomLevelForPage(this.layout.getPageInfo(pageIndex)).tiles;
- // Don't create a new request if the tile is already being loaded
- if (this._pendingRequests[source.url])
+ for (let j = 0; j < tiles.length; j++)
{
- newPendingRequests[source.url] = this._pendingRequests[source.url];
- delete this._pendingRequests[source.url];
- continue;
+ const source = tiles[j];
+ if (this._cache.has(source.url) || !this._isTileForSourceVisible(pageIndex, source))
+ {
+ continue;
+ }
+
+ // Don't create a new request if the tile is already being loaded
+ if (this._pendingRequests[source.url])
+ {
+ newPendingRequests[source.url] = this._pendingRequests[source.url];
+ delete this._pendingRequests[source.url];
+ continue;
+ }
+
+ // Use a closure since the load and error methods are going to be called later and
+ // we need to keep the right reference to the source and the page index
+ initiateRequest(source, pageIndex);
}
+ }
- // Use a closure since the load and error methods are going to be called later and
- // we need to keep the right reference to the source and the page index
- initiateRequest(source, pageIndex);
+ for (const url in this._pendingRequests)
+ {
+ this._pendingRequests[url].abort();
}
+ this._pendingRequests = newPendingRequests;
}
- for (var url in this._pendingRequests)
- this._pendingRequests[url].abort();
- this._pendingRequests = newPendingRequests;
-};
-
-Renderer.prototype._drawTile = function (pageIndex, scaledTile, img)
-{
- var tileOffset = this._getTileToDocumentOffset(pageIndex, scaledTile);
+ _drawTile (pageIndex, scaledTile, img)
+ {
+ const tileOffset = this._getTileToDocumentOffset(pageIndex, scaledTile);
- // Ensure the document is drawn to the center of the viewport
- var viewportPaddingX = Math.max(0, (this._viewport.width - this.layout.dimensions.width) / 2);
- var viewportPaddingY = Math.max(0, (this._viewport.height - this.layout.dimensions.height) / 2);
+ // Ensure the document is drawn to the center of the viewport
+ const viewportPaddingX = Math.max(0, (this._viewport.width - this.layout.dimensions.width) / 2);
+ const viewportPaddingY = Math.max(0, (this._viewport.height - this.layout.dimensions.height) / 2);
- var viewportOffsetX = tileOffset.left - this._viewport.left + viewportPaddingX;
- var viewportOffsetY = tileOffset.top - this._viewport.top + viewportPaddingY;
+ const viewportOffsetX = tileOffset.left - this._viewport.left + viewportPaddingX;
+ const viewportOffsetY = tileOffset.top - this._viewport.top + viewportPaddingY;
- var destXOffset = viewportOffsetX < 0 ? -viewportOffsetX : 0;
- var destYOffset = viewportOffsetY < 0 ? -viewportOffsetY : 0;
+ const destXOffset = viewportOffsetX < 0 ? -viewportOffsetX : 0;
+ const destYOffset = viewportOffsetY < 0 ? -viewportOffsetY : 0;
- var sourceXOffset = destXOffset / scaledTile.scaleRatio;
- var sourceYOffset = destYOffset / scaledTile.scaleRatio;
+ const sourceXOffset = destXOffset / scaledTile.scaleRatio;
+ const sourceYOffset = destYOffset / scaledTile.scaleRatio;
- var canvasX = Math.max(0, viewportOffsetX);
- var canvasY = Math.max(0, viewportOffsetY);
+ const canvasX = Math.max(0, viewportOffsetX);
+ const canvasY = Math.max(0, viewportOffsetY);
- // Ensure that the specified dimensions are no greater than the actual
- // size of the image. Safari won't display the tile if they are.
- var destWidth = Math.min(scaledTile.dimensions.width, img.width * scaledTile.scaleRatio) - destXOffset;
- var destHeight = Math.min(scaledTile.dimensions.height, img.height * scaledTile.scaleRatio) - destYOffset;
+ // Ensure that the specified dimensions are no greater than the actual
+ // size of the image. Safari won't display the tile if they are.
+ const destWidth = Math.min(scaledTile.dimensions.width, img.width * scaledTile.scaleRatio) - destXOffset;
+ const destHeight = Math.min(scaledTile.dimensions.height, img.height * scaledTile.scaleRatio) - destYOffset;
- destWidth = Math.max(1, destWidth);
- destHeight = Math.max(1, destHeight);
+ const sourceWidth = destWidth / scaledTile.scaleRatio;
+ const sourceHeight = destHeight / scaledTile.scaleRatio;
- var sourceWidth = Math.abs(destWidth / scaledTile.scaleRatio);
- var sourceHeight = Math.abs(destHeight / scaledTile.scaleRatio);
+ if (debugPaints.enabled)
+ {
+ debugPaints('Drawing page %s, tile %sx (%s, %s) from %s, %s to viewport at %s, %s, scale %s%%',
+ pageIndex,
+ scaledTile.sourceZoomLevel, scaledTile.row, scaledTile.col,
+ sourceXOffset, sourceYOffset,
+ canvasX, canvasY,
+ Math.round(scaledTile.scaleRatio * 100));
+ }
- if (debugPaints.enabled)
- {
- debugPaints('Drawing page %s, tile %sx (%s, %s) from %s, %s to viewport at %s, %s, scale %s%%',
- pageIndex,
- scaledTile.sourceZoomLevel, scaledTile.row, scaledTile.col,
+ this._ctx.drawImage(
+ img,
sourceXOffset, sourceYOffset,
+ sourceWidth, sourceHeight,
canvasX, canvasY,
- Math.round(scaledTile.scaleRatio * 100));
+ destWidth, destHeight);
}
- this._ctx.drawImage(
- img,
- sourceXOffset, sourceYOffset,
- sourceWidth, sourceHeight,
- canvasX, canvasY,
- destWidth, destHeight);
-};
-
-Renderer.prototype._isTileForSourceVisible = function (pageIndex, tileSource)
-{
- return this._isTileVisible(pageIndex, getScaledTileRecord(tileSource, this._zoomLevel));
-};
+ _isTileForSourceVisible (pageIndex, tileSource)
+ {
+ return this._isTileVisible(pageIndex, getScaledTileRecord(tileSource, this._zoomLevel));
+ }
-Renderer.prototype._isTileVisible = function (pageIndex, scaledTile)
-{
- var tileOffset = this._getTileToDocumentOffset(pageIndex, scaledTile);
-
- // FIXME(wabain): This check is insufficient during a zoom transition
- return this._viewport.intersectsRegion({
- top: tileOffset.top,
- bottom: tileOffset.top + scaledTile.dimensions.height,
- left: tileOffset.left,
- right: tileOffset.left + scaledTile.dimensions.width
- });
-};
-
-Renderer.prototype._getTileToDocumentOffset = function (pageIndex, scaledTile)
-{
- var imageOffset = this._getImageOffset(pageIndex);
+ _isTileVisible (pageIndex, scaledTile)
+ {
+ const tileOffset = this._getTileToDocumentOffset(pageIndex, scaledTile);
+
+ // FIXME(wabain): This check is insufficient during a zoom transition
+ return this._viewport.intersectsRegion({
+ top: tileOffset.top,
+ bottom: tileOffset.top + scaledTile.dimensions.height,
+ left: tileOffset.left,
+ right: tileOffset.left + scaledTile.dimensions.width
+ });
+ }
- return {
- top: imageOffset.top + scaledTile.offset.top,
- left: imageOffset.left + scaledTile.offset.left
- };
-};
+ _getTileToDocumentOffset (pageIndex, scaledTile)
+ {
+ const imageOffset = this._getImageOffset(pageIndex);
-Renderer.prototype._getImageOffset = function (pageIndex)
-{
- return this.layout.getPageOffset(pageIndex, {excludePadding: true});
-};
+ return {
+ top: imageOffset.top + scaledTile.offset.top,
+ left: imageOffset.left + scaledTile.offset.left
+ };
+ }
-// TODO: Update signature
-Renderer.prototype.goto = function (pageIndex, verticalOffset, horizontalOffset)
-{
- this._clearAnimation();
- this._goto(pageIndex, verticalOffset, horizontalOffset);
- if (this._hooks.onViewDidUpdate)
+ _getImageOffset (pageIndex)
{
- this._hooks.onViewDidUpdate(this._renderedPages.slice(), pageIndex);
+ return this.layout.getPageOffset(pageIndex, {includePadding: true});
}
-};
-Renderer.prototype._goto = function (pageIndex, verticalOffset, horizontalOffset)
-{
- // FIXME(wabain): Move this logic to the viewer
- var pageOffset = this.layout.getPageOffset(pageIndex);
-
- var desiredVerticalCenter = pageOffset.top + verticalOffset;
- var top = desiredVerticalCenter - parseInt(this._viewport.height / 2, 10);
+ // TODO: Update signature
+ goto (pageIndex, verticalOffset, horizontalOffset)
+ {
+ this._clearAnimation();
+ this._goto(pageIndex, verticalOffset, horizontalOffset);
+ if (this._hooks.onViewDidUpdate)
+ {
+ this._hooks.onViewDidUpdate(this._renderedPages.slice(), pageIndex);
+ }
+ }
- var desiredHorizontalCenter = pageOffset.left + horizontalOffset;
- var left = desiredHorizontalCenter - parseInt(this._viewport.width / 2, 10);
+ _goto (pageIndex, verticalOffset, horizontalOffset)
+ {
+ // FIXME(wabain): Move this logic to the viewer
+ const pageOffset = this.layout.getPageOffset(pageIndex);
- this._viewport.top = top;
- this._viewport.left = left;
+ const desiredVerticalCenter = pageOffset.top + verticalOffset;
+ const top = desiredVerticalCenter - parseInt(this._viewport.height / 2, 10);
- this._render(0);
-};
+ const desiredHorizontalCenter = pageOffset.left + horizontalOffset;
+ const left = desiredHorizontalCenter - parseInt(this._viewport.width / 2, 10);
-Renderer.prototype.transitionViewportPosition = function (options)
-{
- this._clearAnimation();
+ this._viewport.top = top;
+ this._viewport.left = left;
- var getPosition = options.getPosition;
- var self = this;
+ this._render();
+ }
- var onViewDidTransition = this._hooks.onViewDidTransition;
+ transitionViewportPosition (options)
+ {
+ this._clearAnimation();
- this._animation = InterpolateAnimation.animate({
- duration: options.duration,
- parameters: options.parameters,
- onUpdate: function (values)
- {
- // TODO: Do image preloading, work with that
- self._setViewportPosition(getPosition(values));
+ const getPosition = options.getPosition;
+ const onViewDidTransition = this._hooks.onViewDidTransition;
- if (onViewDidTransition)
- onViewDidTransition();
- },
- onEnd: function (info)
- {
- if (options.onEnd)
- options.onEnd(info);
+ this._animation = InterpolateAnimation.animate({
+ duration: options.duration,
+ parameters: options.parameters,
+ onUpdate: (values) =>
+ {
+ // TODO: Do image preloading, work with that
+ this._setViewportPosition(getPosition(values));
+ this._hooks.onZoomLevelWillChange(values.zoomLevel);
- if (self._hooks.onViewDidUpdate && !info.interrupted)
+ if (onViewDidTransition)
+ {
+ onViewDidTransition();
+ }
+ },
+ onEnd: (info) =>
{
- self._hooks.onViewDidUpdate(self._renderedPages.slice(), null);
+ if (options.onEnd)
+ {
+ options.onEnd(info);
+ }
+
+ if (this._hooks.onViewDidUpdate && !info.interrupted)
+ {
+ this._hooks.onViewDidUpdate(this._renderedPages.slice(), null);
+ }
}
- }
- });
-};
+ });
+ }
-Renderer.prototype._clearAnimation = function ()
-{
- if (this._animation)
+ _clearAnimation ()
{
- this._animation.cancel();
- this._animation = null;
+ if (this._animation)
+ {
+ this._animation.cancel();
+ this._animation = null;
+ }
}
-};
-Renderer.prototype.preload = function ()
-{
- // TODO
-};
-
-Renderer.prototype.isPageVisible = function (pageIndex)
-{
- if (!this.layout)
- return false;
+ preload ()
+ {
+ // TODO
+ }
- var page = this.layout.getPageInfo(pageIndex);
+ isPageVisible (pageIndex)
+ {
+ if (!this.layout)
+ {
+ return false;
+ }
- if (!page)
- return false;
+ const page = this.layout.getPageInfo(pageIndex);
- return this._viewport.intersectsRegion(this.layout.getPageRegion(pageIndex));
-};
+ if (!page)
+ {
+ return false;
+ }
-Renderer.prototype.getRenderedPages = function ()
-{
- return this._renderedPages.slice();
-};
+ return this._viewport.intersectsRegion(this.layout.getPageRegion(pageIndex));
+ }
-Renderer.prototype.destroy = function ()
-{
- this._clearAnimation();
+ getRenderedPages ()
+ {
+ return this._renderedPages.slice();
+ }
- // FIXME(wabain): I don't know if we should actually do this
- Object.keys(this._pendingRequests).forEach(function (req)
+ destroy ()
{
- var handler = this._pendingRequests[req];
- delete this._pendingRequests[req];
+ this._clearAnimation();
+
+ // FIXME(wabain): I don't know if we should actually do this
+ Object.keys(this._pendingRequests).forEach((req) =>
+ {
+ const handler = this._pendingRequests[req];
+ delete this._pendingRequests[req];
- handler.abort();
- }, this);
+ handler.abort();
+ }, this);
- this._canvas.parentNode.removeChild(this._canvas);
-};
+ this._canvas.parentNode.removeChild(this._canvas);
+ }
+}
-function getScaledTileRecord(source, scaleFactor)
+function getScaledTileRecord (source, scaleFactor)
{
- var scaleRatio;
+ let scaleRatio;
if (scaleFactor === null)
+ {
scaleRatio = 1;
+ }
else
+ {
scaleRatio = Math.pow(2, scaleFactor - source.zoomLevel);
+ }
return {
sourceZoomLevel: source.zoomLevel,
@@ -627,7 +592,7 @@ function getScaledTileRecord(source, scaleFactor)
};
}
-function findChanges(oldArray, newArray)
+function findChanges (oldArray, newArray)
{
if (oldArray === newArray)
{
@@ -637,15 +602,9 @@ function findChanges(oldArray, newArray)
};
}
- var removed = oldArray.filter(function (oldEntry)
- {
- return newArray.indexOf(oldEntry) === -1;
- });
+ const removed = oldArray.filter(oldEntry => newArray.indexOf(oldEntry) === -1);
- var added = newArray.filter(function (newEntry)
- {
- return oldArray.indexOf(newEntry) === -1;
- });
+ const added = newArray.filter(newEntry => oldArray.indexOf(newEntry) === -1);
return {
added: added,
diff --git a/source/js/settings-view.js b/source/js/settings-view.js
index 1b4c032b..5bef48f7 100644
--- a/source/js/settings-view.js
+++ b/source/js/settings-view.js
@@ -1,10 +1,9 @@
-module.exports = createSettingsView;
-function createSettingsView(sources)
+export default function createSettingsView(sources)
{
- var obj = {};
+ const obj = {};
- sources.forEach(function (source)
+ sources.forEach( (source) =>
{
registerMixin(obj, source);
});
@@ -14,14 +13,14 @@ function createSettingsView(sources)
function registerMixin(obj, mixin)
{
- Object.keys(mixin).forEach(function (key)
+ Object.keys(mixin).forEach( (key) =>
{
Object.defineProperty(obj, key, {
- get: function ()
+ get: () =>
{
return mixin[key];
},
- set: function ()
+ set: () =>
{
// TODO: Make everything strict mode so this isn't needed
throw new TypeError('Cannot set settings.' + key);
diff --git a/source/js/tile-coverage-map.js b/source/js/tile-coverage-map.js
new file mode 100644
index 00000000..c30b61fc
--- /dev/null
+++ b/source/js/tile-coverage-map.js
@@ -0,0 +1,25 @@
+export default class TileCoverageMap
+{
+ constructor (rows, cols)
+ {
+ this._rows = rows;
+ this._cols = cols;
+ this._map = new Array(rows).fill(null).map(() => new Array(cols).fill(false));
+ }
+
+ isLoaded (row, col)
+ {
+ // Return true for out of bounds tiles because they
+ // don't need to load. (Unfortunately this will also
+ // mask logical errors.)
+ if (row >= this._rows || col >= this._cols)
+ return true;
+
+ return this._map[row][col];
+ }
+
+ set(row, col, value)
+ {
+ this._map[row][col] = value;
+ }
+}
\ No newline at end of file
diff --git a/source/js/toolbar.js b/source/js/toolbar.js
index 5d498b9c..9ec342ab 100644
--- a/source/js/toolbar.js
+++ b/source/js/toolbar.js
@@ -1,373 +1,170 @@
-var $ = require('jquery');
+import diva from './diva-global';
+import { elt } from './utils/elt';
-var diva = require('./diva-global');
-var elt = require('./utils/elt');
-
-module.exports = createToolbar;
-
-function createToolbar(viewer)
+export default class Toolbar
{
- var settings = viewer.getSettings();
+ constructor (viewer)
+ {
+ this.viewer = viewer;
+ this.settings = viewer.settings;
+ }
- // FIXME(wabain): Temporarily copied from within Diva
- var elemAttrs = function (ident, base)
+ _elemAttrs (ident, base)
{
- var attrs = {
- id: settings.ID + ident,
+ const attrs = {
+ id: this.settings.ID + ident,
class: 'diva-' + ident
};
if (base)
- return $.extend(attrs, base);
+ return Object.assign(attrs, base);
else
return attrs;
- };
+ }
+
/** Convenience function to subscribe to a Diva event */
- var subscribe = function (event, callback)
+ _subscribe (event, callback)
{
- diva.Events.subscribe(event, callback, settings.ID);
- };
+ diva.Events.subscribe(event, callback, this.settings.ID);
+ }
- // Creates a toolbar button
- var createButtonElement = function(name, label, callback)
+
+ createButton (name, label, callback, icon)
{
- var button = elt('button', {
+ const button = elt('button', {
type: 'button',
- id: settings.ID + name,
+ id: this.settings.ID + name,
class: 'diva-' + name + ' diva-button',
title: label
});
+ if (icon)
+ button.appendChild(icon);
+
if (callback)
- button.addEventListener('click', callback, false);
+ button.addEventListener('click', callback);
return button;
- };
+ }
- // Higher-level function for creators of zoom and grid controls
- var getResolutionControlCreator = function (config)
+ createLabel (name, id, label, innerName, innerValue)
{
- return function ()
- {
- var controls;
-
- switch (settings[config.controllerSetting])
- {
- case 'slider':
- controls = config.createSlider();
- break;
-
- case 'buttons':
- controls = config.createButtons();
- break;
-
- default:
- // Don't display anything
- return null;
- }
-
- var wrapper = elt('span',
- controls,
- config.createLabel()
- );
-
- var updateWrapper = function ()
- {
- if (settings.inGrid === config.showInGrid)
- wrapper.style.display = 'inline';
- else
- wrapper.style.display = 'none';
- };
-
- subscribe('ViewDidSwitch', updateWrapper);
- subscribe('ObjectDidLoad', updateWrapper);
-
- // Set initial value
- updateWrapper();
-
- return wrapper;
- };
- };
-
- // Zoom controls
- var createZoomControls = getResolutionControlCreator({
- controllerSetting: 'enableZoomControls',
- showInGrid: false,
-
- createSlider: function ()
- {
- var elem = createSlider('zoom-slider', {
- step: 0.1,
- value: settings.zoomLevel,
- min: settings.minZoomLevel,
- max: settings.maxZoomLevel
- });
- var $elem = $(elem);
-
- $elem.on('input', function()
- {
- var floatValue = parseFloat(this.value);
- viewer.setZoomLevel(floatValue);
- });
-
- $elem.on('change', function ()
- {
- var floatValue = parseFloat(this.value);
- if (floatValue !== settings.zoomLevel)
- viewer.setZoomLevel(floatValue);
- });
+ return elt('div', { id: this.settings.ID + id, class: name + ' diva-label'},
+ [ label, elt('span', { id: this.settings.ID + innerName }, innerValue)
+ ]);
+ }
- var updateSlider = function ()
- {
- if (settings.zoomLevel !== $elem.val())
- $elem.val(settings.zoomLevel);
- };
-
- subscribe('ZoomLevelDidChange', updateSlider);
- subscribe('ViewerDidLoad', function ()
- {
- elt.setAttributes(elem, {
- min: settings.minZoomLevel,
- max: settings.maxZoomLevel
- });
-
- updateSlider();
- });
-
- return elem;
- },
-
- createButtons: function ()
- {
- return elt('span',
- createButtonElement('zoom-out-button', 'Zoom Out', function ()
- {
- viewer.setZoomLevel(settings.zoomLevel - 1);
- }),
- createButtonElement('zoom-in-button', 'Zoom In', function ()
- {
- viewer.setZoomLevel(settings.zoomLevel + 1);
- })
- );
- },
-
- createLabel: function ()
- {
- var elem = createLabel('diva-zoom-label', 'zoom-label', 'Zoom level: ', 'zoom-level', settings.zoomLevel);
- var textSpan = $(elem).find(settings.selector + 'zoom-level')[0];
-
- var updateText = function ()
- {
- textSpan.textContent = settings.zoomLevel.toFixed(2);
- };
-
- subscribe('ZoomLevelDidChange', updateText);
- subscribe('ViewerDidLoad', updateText);
-
- return elem;
- }
- });
-
- // Grid controls
- var createGridControls = getResolutionControlCreator({
- controllerSetting: 'enableGridControls',
- showInGrid: true,
-
- createSlider: function ()
+ createZoomButtons ()
+ {
+ let zoomOutIcon = this._createZoomOutIcon();
+ let zoomInIcon = this._createZoomInIcon();
+
+ let zoomButtons = [
+ this.createButton('zoom-out-button', 'Zoom Out', () => {
+ this.viewer.setZoomLevel(this.settings.zoomLevel - 1);
+ }, zoomOutIcon),
+ this.createButton('zoom-in-button', 'Zoom In', () => {
+ this.viewer.setZoomLevel(this.settings.zoomLevel + 1);
+ }, zoomInIcon),
+ this.createLabel('diva-zoom-label', 'zoom-label', 'Zoom level: ', 'zoom-level', this.settings.zoomLevel + 1)
+ ];
+
+ let zoomHandler = function ()
{
- var elem = createSlider('grid-slider', {
- value: settings.pagesPerRow,
- min: settings.minPagesPerRow,
- max: settings.maxPagesPerRow
- });
- var $elem = $(elem);
-
- $elem.on('input', function()
- {
- var intValue = parseInt(elem.value, 10);
- viewer.setGridPagesPerRow(intValue);
- });
-
- $elem.on('change', function ()
- {
- var intValue = parseInt(elem.value, 10);
- if (intValue !== settings.pagesPerRow)
- viewer.setGridPagesPerRow(intValue);
- });
-
- subscribe('GridRowNumberDidChange', function ()
- {
- // Update the position of the handle within the slider
- if (settings.pagesPerRow !== $elem.val())
- $elem.val(settings.pagesPerRow);
- });
+ let labelEl = document.getElementById(this.settings.ID + 'zoom-level');
+ labelEl.textContent = this.settings.zoomLevel + 1;
+ };
- return elem;
- },
+ this._subscribe('ZoomLevelDidChange', zoomHandler);
+ this._subscribe('ViewerDidLoad', zoomHandler);
- createButtons: function ()
- {
- return elt('span',
- createButtonElement('grid-out-button', 'Zoom Out', function ()
- {
- viewer.setGridPagesPerRow(settings.pagesPerRow - 1);
- }),
- createButtonElement('grid-in-button', 'Zoom In', function ()
- {
- viewer.setGridPagesPerRow(settings.pagesPerRow + 1);
- })
- );
- },
+ return elt('div', { id: this.settings.ID + "zoom-controls", style: "display: none"}, zoomButtons);
+ }
- createLabel: function ()
+ createGridControls ()
+ {
+ let gridMoreIcon = this._createGridMoreIcon();
+ let gridFewerIcon = this._createGridFewerIcon();
+
+ let gridButtons = [
+ this.createButton('grid-out-button', 'Fewer', () => {
+ this.viewer.setGridPagesPerRow(this.settings.pagesPerRow - 1);
+ }, gridFewerIcon),
+ this.createButton('grid-in-button', 'More', () => {
+ this.viewer.setGridPagesPerRow(this.settings.pagesPerRow + 1);
+ }, gridMoreIcon),
+ this.createLabel('diva-grid-label', 'grid-label', 'Pages per row: ', 'pages-per-row', this.settings.pagesPerRow)
+ ];
+
+ let gridChangeHandler = function ()
{
- var elem = createLabel('diva-grid-label', 'grid-label', 'Pages per row: ', 'pages-per-row', settings.pagesPerRow);
- var textSpan = $(elem).find(settings.selector + 'pages-per-row')[0];
+ let labelEl = document.getElementById(this.settings.ID + 'pages-per-row');
+ labelEl.textContent = this.settings.pagesPerRow;
+ };
- subscribe('GridRowNumberDidChange', function ()
- {
- textSpan.textContent = settings.pagesPerRow;
- });
+ this._subscribe('GridRowNumberDidChange', gridChangeHandler);
- return elem;
- }
- });
+ return elt('div', {id: this.settings.ID + "grid-controls", style: "display:none" }, gridButtons);
+ }
- var createViewMenu = function()
+ createPageLabel ()
{
- var viewOptionsList = elt('div', elemAttrs('view-options'));
-
- var changeViewButton = createButtonElement('view-icon', 'Change view', function ()
- {
- $(viewOptionsList).toggle();
- });
-
- $(document).mouseup(function (event)
- {
- var container = $(viewOptionsList);
-
- if (!container.is(event.target) && container.has(event.target).length === 0 && event.target.id !== settings.ID + 'view-icon')
- {
- container.hide();
- }
+ // Current page
+ const currentPage = elt('span', {
+ id: this.settings.ID + 'current-page'
});
- var selectView = function (view)
- {
- viewer.changeView(view);
-
- //hide view menu
- $(viewOptionsList).hide();
- };
-
- var updateViewMenu = function()
+ const updateCurrentPage = () =>
{
- var viewIconClasses = ' diva-view-icon diva-button';
-
- // display the icon of the mode we're currently in (?)
- if (settings.inGrid)
- {
- changeViewButton.className = 'diva-grid-icon' + viewIconClasses;
- }
- else if (settings.inBookLayout)
- {
- changeViewButton.className = 'diva-book-icon' + viewIconClasses;
- }
+ // get labels for index range
+ let indices = this.viewer.getCurrentPageIndices();
+ let startIndex = indices[0];
+ let endIndex = indices[indices.length - 1];
+ let startLabel = this.settings.manifest.pages[startIndex].l;
+ let endLabel = this.settings.manifest.pages[endIndex].l;
+
+ if (startIndex !== endIndex)
+ currentPage.textContent = startLabel + " - " + endLabel;
else
- {
- changeViewButton.className = 'diva-document-icon' + viewIconClasses;
- }
-
- var viewOptions = document.createDocumentFragment();
-
- // then display document, book, and grid buttons in that order, excluding the current view
- if (settings.inGrid || settings.inBookLayout)
- viewOptions.appendChild(createButtonElement('document-icon', 'Document View', selectView.bind(null, 'document')));
-
- if (settings.inGrid || !settings.inBookLayout)
- viewOptions.appendChild(createButtonElement('book-icon', 'Book View', selectView.bind(null, 'book')));
-
- if (!settings.inGrid)
- viewOptions.appendChild(createButtonElement('grid-icon', 'Grid View', selectView.bind(null, 'grid')));
-
- // remove old menu
- while (viewOptionsList.firstChild)
- {
- viewOptionsList.removeChild(viewOptionsList.firstChild);
- }
-
- // insert new menu
- viewOptionsList.appendChild(viewOptions);
+ currentPage.textContent = startLabel;
};
- subscribe('ViewDidSwitch', updateViewMenu);
- subscribe('ObjectDidLoad', updateViewMenu);
-
- return elt('div', elemAttrs('view-menu'),
- changeViewButton,
- viewOptionsList
- );
- };
-
- var createSlider = function(name, options)
- {
- return elt('input', options, {
- id: settings.ID + name,
- class: 'diva-' + name + ' diva-slider',
- type: 'range'
- });
- };
+ this._subscribe('VisiblePageDidChange', updateCurrentPage);
+ this._subscribe('ViewerDidLoad', updateCurrentPage);
+ this._subscribe('ViewDidSwitch', updateCurrentPage);
- var createLabel = function(name, id, label, innerName, innerValue)
- {
- return elt('div', {
- id: settings.ID + id,
- class: name + ' diva-label'
+ return elt('span', {
+ class: 'diva-page-label diva-label'
},
- [
- label,
- elt('span', {
- id: settings.ID + innerName
- }, innerValue)
- ]);
- };
-
- var createPageNavigationControls = function ()
- {
- // Go to page form
- var gotoForm = settings.enableGotoPage ? createGotoPageForm() : null;
-
- return elt('span', elemAttrs('page-nav'),
- createPageLabel(), // 'Page x of y' label
- gotoForm
+ currentPage
);
- };
+ }
- var createGotoPageForm = function ()
+ createGotoPageForm ()
{
- var gotoPageInput = elt('input', {
- id: settings.ID + 'goto-page-input',
+ const gotoPageInput = elt('input', {
+ id: this.settings.ID + 'goto-page-input',
class: 'diva-input diva-goto-page-input',
autocomplete: 'off',
type: 'text'
});
- var gotoPageSubmit = elt('input', {
- id: settings.ID + 'goto-page-submit',
+ const gotoPageSubmit = elt('input', {
+ id: this.settings.ID + 'goto-page-submit',
class: 'diva-button diva-button-text',
type: 'submit',
value: 'Go'
});
- var inputSuggestions = elt('div', {
- id: settings.ID + 'input-suggestions',
+ const inputSuggestions = elt('div', {
+ id: this.settings.ID + 'input-suggestions',
class: 'diva-input-suggestions'
}
);
- var gotoForm = elt('form', {
- id: settings.ID + 'goto-page',
+ const gotoForm = elt('form', {
+ id: this.settings.ID + 'goto-page',
class: 'diva-goto-form'
},
gotoPageInput,
@@ -375,21 +172,23 @@ function createToolbar(viewer)
inputSuggestions
);
- $(gotoForm).on('submit', function ()
+ gotoForm.addEventListener('submit', (e) =>
{
- var desiredPageLabel = gotoPageInput.value;
+ e.preventDefault();
+
+ const desiredPageLabel = gotoPageInput.value;
- if (settings.onGotoSubmit && typeof settings.onGotoSubmit === "function")
+ if (this.settings.onGotoSubmit && typeof this.settings.onGotoSubmit === "function")
{
- var pageIndex = settings.onGotoSubmit(desiredPageLabel);
- if (!viewer.gotoPageByIndex(pageIndex))
- alert("No page could be found with that label or page number");
+ const pageIndex = this.settings.onGotoSubmit(desiredPageLabel);
+ if (!this.viewer.gotoPageByIndex(pageIndex))
+ window.alert("No page could be found with that label or page number");
}
else // Default if no function is specified in the settings
{
- if (!viewer.gotoPageByLabel(desiredPageLabel))
- alert("No page could be found with that label or page number");
+ if (!this.viewer.gotoPageByLabel(desiredPageLabel))
+ window.alert("No page could be found with that label or page number");
}
// Hide the suggestions
@@ -399,306 +198,1009 @@ function createToolbar(viewer)
return false;
});
- $(gotoPageInput).on('input focus', function ()
+ ['input', 'focus'].forEach(event =>
{
- inputSuggestions.innerHTML = ''; // Remove all previous suggestions
+ gotoPageInput.addEventListener(event, () => {
+ inputSuggestions.innerHTML = ''; // Remove all previous suggestions
- var value = gotoPageInput.value;
- var numSuggestions = 0;
- if (settings.enableGotoSuggestions && value)
- {
- var pages = settings.manifest.pages;
- for (var i = 0, len = pages.length; i < len && numSuggestions < 10; i++)
+ const value = gotoPageInput.value;
+ let numSuggestions = 0;
+ if (this.settings.enableGotoSuggestions && value)
{
- if (pages[i].l.toLowerCase().indexOf(value.toLowerCase()) > -1)
+ const pages = this.settings.manifest.pages;
+ for (let i = 0, len = pages.length; i < len && numSuggestions < 10; i++)
{
- var newInputSuggestion = elt('div', {
- class: 'diva-input-suggestion'
- },
- pages[i].l
- );
-
- inputSuggestions.appendChild(newInputSuggestion);
-
- numSuggestions++;
+ if (pages[i].l.toLowerCase().indexOf(value.toLowerCase()) > -1)
+ {
+ const newInputSuggestion = elt('div', {
+ class: 'diva-input-suggestion'
+ },
+ pages[i].l
+ );
+
+ inputSuggestions.appendChild(newInputSuggestion);
+
+ numSuggestions++;
+ }
}
- }
- // Show label suggestions
- if (numSuggestions > 0)
- inputSuggestions.style.display = 'block';
- }
- else
- inputSuggestions.style.display = 'none';
+ // Show label suggestions
+ if (numSuggestions > 0)
+ inputSuggestions.style.display = 'block';
+ }
+ else
+ inputSuggestions.style.display = 'none';
+ });
});
- $(gotoPageInput).on('keydown', function (e)
- {
- var el;
+ gotoPageInput.addEventListener('keydown', e => {
+ let el;
if (e.keyCode === 13) // 'Enter' key
{
- var active = $('.active', inputSuggestions);
- if (active.length)
- gotoPageInput.value = active.text();
-
+ const active = document.getElementsByClassName('active')[0];
+ if (typeof active !== 'undefined')
+ gotoPageInput.value = active.innerText;
}
if (e.keyCode === 38) // Up arrow key
{
- el = $('.active', inputSuggestions);
- var prevEl = el.prev();
- if (prevEl.length)
+ el = document.getElementsByClassName('active')[0];
+ const prevEl = el ? el.previousSibling : undefined;
+ if (typeof prevEl !== 'undefined')
{
- el.removeClass('active');
- prevEl.addClass('active');
+ el.classList.remove('active');
+ if (prevEl !== null)
+ prevEl.classList.add('active');
}
else
{
- el.removeClass('active');
- $('.diva-input-suggestion:last', inputSuggestions).addClass('active');
+ let last = document.getElementsByClassName('diva-input-suggestion').length - 1;
+ document.getElementsByClassName('diva-input-suggestion')[last].classList.add('active');
}
}
else if (e.keyCode === 40) // Down arrow key
{
- el = $('.active', inputSuggestions);
- var nextEl = el.next();
- if (nextEl.length)
+ el = document.getElementsByClassName('active')[0];
+ const nextEl = el ? el.nextSibling : undefined;
+ if (typeof nextEl !== 'undefined')
{
- el.removeClass('active');
- nextEl.addClass('active');
+ el.classList.remove('active');
+ if (nextEl !== null)
+ nextEl.classList.add('active');
}
else
{
- el.removeClass('active');
- $('.diva-input-suggestion:first', inputSuggestions).addClass('active');
+ document.getElementsByClassName('diva-input-suggestion')[0].classList.add('active');
}
}
});
- $(inputSuggestions).on('mousedown', '.diva-input-suggestion', function()
+ onEvent(inputSuggestions, 'mousedown', '.diva-input-suggestion', function ()
{
gotoPageInput.value = this.textContent;
inputSuggestions.style.display = 'none';
- $(gotoPageInput).trigger('submit');
+
+ let submitEvent = new Event('submit');
+ gotoForm.dispatchEvent(submitEvent);
});
- $(gotoPageInput).on('blur', function ()
+ // javascript equivalent to jquery .on(event, selector, function)
+ function onEvent (elem, evt, sel, handler)
{
+ elem.addEventListener(evt, function (event)
+ {
+ var t = event.target;
+ while (t && t !== this)
+ {
+ if (t.matches(sel))
+ handler.call(t, event);
+ t = t.parentNode;
+ }
+ });
+ }
+
+ gotoPageInput.addEventListener('blur', () => {
// Hide label suggestions
inputSuggestions.style.display = 'none';
});
return gotoForm;
- };
+ }
- var createPageLabel = function()
+ createViewMenu ()
{
- // Current page
- var currentPage = elt('span', {
- id: settings.ID + 'current-page'
- });
+ const viewOptionsList = elt('div', this._elemAttrs('view-options'));
+ const gridViewIcon = this._createGridViewIcon();
+ const bookViewIcon = this._createBookViewIcon();
+ const pageViewIcon = this._createPageViewIcon();
- var updateCurrentPage = function ()
+ const viewOptionsToggle = () =>
{
- currentPage.textContent = viewer.getCurrentAliasedPageIndex();
+ viewOptionsList.style.display = viewOptionsList.style.display === "none" ? "block" : "none";
};
- subscribe('VisiblePageDidChange', updateCurrentPage);
- subscribe('ViewerDidLoad', updateCurrentPage);
+ const changeViewButton = this.createButton('view-icon', 'Change view', viewOptionsToggle);
- // Number of pages
- var numPages = elt('span', {
- id: settings.ID + 'num-pages'
- });
-
- var updateNumPages = function ()
+ const selectView = (view) =>
{
- numPages.textContent = settings.numPages;
- };
+ this.viewer.changeView(view);
- subscribe('NumberOfPagesDidChange', updateNumPages);
- subscribe('ObjectDidLoad', updateNumPages);
+ //hide view menu
+ viewOptionsList.style.display = "none";
+ };
- return elt('span', {
- class: 'diva-page-label diva-label'
- },
- 'Page ', currentPage, ' of ', numPages
- );
- };
+ const updateViewMenu = () =>
+ {
+ const viewIconClasses = ' diva-view-icon diva-button';
- var createToolbarButtonGroup = function ()
- {
- var buttons = [createViewMenu()];
- if (settings.enableLinkIcon)
- buttons.push(createLinkIcon());
+ // display the icon of the mode we're currently in (?)
+ if (this.settings.inGrid)
+ {
+ changeViewButton.appendChild(gridViewIcon);
+ changeViewButton.className = 'diva-grid-icon' + viewIconClasses;
+ }
+ else if (this.settings.inBookLayout)
+ {
+ changeViewButton.appendChild(bookViewIcon);
+ changeViewButton.className = 'diva-book-icon' + viewIconClasses;
+ }
+ else
+ {
+ changeViewButton.appendChild(pageViewIcon);
+ changeViewButton.className = 'diva-document-icon' + viewIconClasses;
+ }
- if (settings.enableNonPagedVisibilityIcon)
- buttons.push(createToggleNonPagedButton());
+ const viewOptions = document.createDocumentFragment();
- if (settings.enableFullscreen)
- buttons.push(createFullscreenButton());
+ // then display document, book, and grid buttons in that order, excluding the current view
+ if (this.settings.inGrid || this.settings.inBookLayout)
+ viewOptions.appendChild(this.createButton('document-icon', 'Document View', selectView.bind(null, 'document'), pageViewIcon));
- return elt('span', elemAttrs('toolbar-button-group'), buttons);
- };
+ if (this.settings.inGrid || !this.settings.inBookLayout)
+ viewOptions.appendChild(this.createButton('book-icon', 'Book View', selectView.bind(null, 'book'), bookViewIcon));
- var createLinkIcon = function ()
- {
- var elem = createButtonElement('link-icon', 'Link to this page');
- var linkIcon = $(elem);
+ if (!this.settings.inGrid)
+ viewOptions.appendChild(this.createButton('grid-icon', 'Grid View', selectView.bind(null, 'grid'), gridViewIcon));
- linkIcon.on('click', function ()
- {
- $('body').prepend(
- elt('div', {
- id: settings.ID + 'link-popup',
- class: 'diva-popup diva-link-popup'
- }, [
- elt('input', {
- id: settings.ID + 'link-popup-input',
- class: 'diva-input',
- type: 'text',
- value: viewer.getCurrentURL()
- })
- ])
- );
-
- if (settings.inFullscreen)
- {
- $(settings.selector + 'link-popup').addClass('in-fullscreen');
- }
- else
+ // remove old menu
+ while (viewOptionsList.firstChild)
{
- // Calculate the left and top offsets
- var leftOffset = linkIcon.offset().left - 222 + linkIcon.outerWidth();
- var topOffset = linkIcon.offset().top + linkIcon.outerHeight() - 1;
-
- $(settings.selector + 'link-popup').css({
- 'top': topOffset + 'px',
- 'left': leftOffset + 'px'
- });
+ viewOptionsList.removeChild(viewOptionsList.firstChild);
}
- // Catch onmouseup events outside of this div
- $('body').mouseup(function (event)
+ // insert new menu
+ viewOptionsList.appendChild(viewOptions);
+ };
+
+ document.addEventListener('mouseup', event =>
+ {
+ if (viewOptionsList !== event.target)
{
- var targetID = event.target.id;
+ viewOptionsList.style.display = 'none';
+ }
+ });
- if (targetID !== settings.ID + 'link-popup' && targetID !== settings.ID + 'link-popup-input')
- $(settings.selector + 'link-popup').remove();
- });
+ this._subscribe('ViewDidSwitch', updateViewMenu);
+ this._subscribe('ObjectDidLoad', updateViewMenu);
- // Also delete it upon scroll and page up/down key events
- // FIXME(wabain): This is aggressive
- settings.viewportObject.scroll(function ()
- {
- $(settings.selector + 'link-popup').remove();
- });
- $(settings.selector + 'link-popup input').click(function ()
- {
- $(this).focus().select();
- });
+ return elt('div', this._elemAttrs('view-menu'),
+ changeViewButton,
+ viewOptionsList
+ );
+ }
- return false;
- });
+ createFullscreenButton ()
+ {
+ let fullscreenIcon = this._createFullscreenIcon();
- return elem;
- };
+ return this.createButton('fullscreen-icon', 'Toggle fullscreen mode', () => {
+ this.viewer.toggleFullscreenMode();
+ }, fullscreenIcon);
+ }
- var createFullscreenButton = function ()
+ toggleZoomGridControls ()
{
- return createButtonElement('fullscreen-icon', 'Toggle fullscreen mode', function ()
+ if (!this.settings.inGrid)
{
- viewer.toggleFullscreenMode();
- });
- };
+ document.getElementById(this.settings.ID + "zoom-controls").style.display = "block";
+ document.getElementById(this.settings.ID + "grid-controls").style.display = "none";
+ }
+ else
+ {
+ document.getElementById(this.settings.ID + "zoom-controls").style.display = "none";
+ document.getElementById(this.settings.ID + "grid-controls").style.display = "block";
+ }
- var createToggleNonPagedButton = function ()
+ }
+
+ render ()
{
- var getClassName = function()
+ this._subscribe("ViewDidSwitch", this.toggleZoomGridControls);
+ this._subscribe("ObjectDidLoad", this.toggleZoomGridControls);
+
+ let leftTools = [
+ this.createZoomButtons(),
+ this.createGridControls()
+ ];
+ let rightTools = [
+ this.createPageLabel(),
+ this.createViewMenu()
+ ];
+ if (this.settings.enableFullscreen)
+ rightTools.push(this.createFullscreenButton());
+ if (this.settings.enableGotoPage)
+ rightTools.splice(1, 0, this.createGotoPageForm());
+
+ // assign toolbar plugins to proper side
+ let plugins = this.viewer.viewerState.pluginInstances;
+ for (var i = 0, len = plugins.length; i < len; i++)
{
- return 'toggle-nonpaged-icon' + (viewer.getSettings().showNonPagedPages ? '-active' : '');
- };
+ let plugin = plugins[i];
- var toggleNonPagedButton = createButtonElement(getClassName(), 'Toggle visibility of non-paged pages', function()
+ if (!plugin.toolbarSide) // not a toolbar tool
+ continue;
+
+ plugin.toolbarIcon = plugin.createIcon();
+ if (!plugin.toolbarIcon) // icon couldn't be created
+ continue;
+
+ // add plugin tools after the go-to-page and page-label tools
+ if (plugin.toolbarSide === 'right')
+ rightTools.splice(2, 0, plugin.toolbarIcon);
+ else if (plugin.toolbarSide === 'left')
+ leftTools.splice(2, 0, plugin.toolbarIcon);
+
+ plugin.toolbarIcon.addEventListener('click', handlePluginClick.bind(this, plugin));
+ }
+
+ function handlePluginClick (plugin)
{
- viewer.toggleNonPagedPagesVisibility();
- var newClassName = 'diva-' + getClassName();
- this.className = this.className.replace(/diva-toggle-nonpaged-icon(-active)?/, newClassName);
- });
+ plugin.handleClick(this.viewer);
+ }
+
+ const tools = elt('div', this._elemAttrs('tools'),
+ elt('div', this._elemAttrs('tools-left'), leftTools),
+ elt('div', this._elemAttrs('tools-right'), rightTools)
+ );
- var updateNonPagedButtonVisibility = function ()
+ this.settings.toolbarParentObject.insertBefore(
+ tools,
+ this.settings.toolbarParentObject.firstChild
+ );
+ }
+
+ _createToolbarIcon (paths)
+ {
+ let icon = document.createElementNS("http://www.w3.org/2000/svg", "svg");
+ icon.setAttributeNS(null, 'viewBox', "0 0 25 25");
+ icon.setAttributeNS(null, 'x', '0px');
+ icon.setAttributeNS(null, 'y', '0px');
+ icon.setAttributeNS(null, 'style', "enable-background:new 0 0 48 48;");
+
+ let glyph = document.createElementNS("http://www.w3.org/2000/svg", "g");
+ glyph.setAttributeNS(null, "transform", "matrix(1, 0, 0, 1, -12, -12)");
+
+ paths.forEach( (path) =>
{
- var pages = settings.manifest.pages;
- for (var i = 0; i < pages.length; i++)
- {
- if (settings.manifest.paged && !pages[i].paged)
- {
- // Show the button, there is at least one non-paged page
- toggleNonPagedButton.style.display = 'inline-block';
- return;
- }
- }
+ let pEl = document.createElementNS("http://www.w3.org/2000/svg", "path");
+ pEl.setAttributeNS(null, "d", path);
+ glyph.appendChild(pEl);
+ });
- // No non-paged pages were found, hide the button
- toggleNonPagedButton.style.display = 'none';
- };
- subscribe('ObjectDidLoad', updateNonPagedButtonVisibility);
+ icon.appendChild(glyph);
+ return icon;
+ }
- return toggleNonPagedButton;
- };
+ _createZoomOutIcon ()
+ {
+ let paths = [
+ "M19.5,23c-0.275,0-0.5-0.225-0.5-0.5v-1c0-0.275,0.225-0.5,0.5-0.5h7c0.275,0,0.5,0.225,0.5,0.5v1c0,0.275-0.225,0.5-0.5,0.5H19.5z",
+ "M37.219,34.257l-2.213,2.212c-0.202,0.202-0.534,0.202-0.736,0l-6.098-6.099c-1.537,0.993-3.362,1.577-5.323,1.577c-5.431,0-9.849-4.418-9.849-9.849c0-5.431,4.418-9.849,9.849-9.849c5.431,0,9.849,4.418,9.849,9.849c0,1.961-0.584,3.786-1.576,5.323l6.098,6.098C37.422,33.722,37.422,34.054,37.219,34.257z M29.568,22.099c0-3.706-3.014-6.72-6.72-6.72c-3.706,0-6.72,3.014-6.72,6.72c0,3.706,3.014,6.72,6.72,6.72C26.555,28.818,29.568,25.805,29.568,22.099z"
+ ];
+
+ return this._createToolbarIcon(paths);
+ }
- // Handles all status updating etc (both fullscreen and not)
- var init = function ()
+ _createZoomInIcon ()
{
- var leftTools = [createZoomControls(), createGridControls()];
- var rightTools = [createPageNavigationControls(), createToolbarButtonGroup()];
+ let paths = [
+ "M37.469,34.257l-2.213,2.212c-0.202,0.202-0.534,0.202-0.736,0l-6.098-6.099c-1.537,0.993-3.362,1.577-5.323,1.577c-5.431,0-9.849-4.418-9.849-9.849c0-5.431,4.418-9.849,9.849-9.849c5.431,0,9.849,4.418,9.849,9.849c0,1.961-0.584,3.786-1.576,5.323l6.098,6.098C37.672,33.722,37.672,34.054,37.469,34.257z M29.818,22.099c0-3.706-3.014-6.72-6.72-6.72c-3.706,0-6.72,3.014-6.72,6.72c0,3.706,3.014,6.72,6.72,6.72C26.805,28.818,29.818,25.805,29.818,22.099z M26.5,21H24v-2.5c0-0.275-0.225-0.5-0.5-0.5h-1c-0.275,0-0.5,0.225-0.5,0.5V21h-2.5c-0.275,0-0.5,0.225-0.5,0.5v1c0,0.275,0.225,0.5,0.5,0.5H22v2.5c0,0.275,0.225,0.5,0.5,0.5h1c0.275,0,0.5-0.225,0.5-0.5V23h2.5c0.275,0,0.5-0.225,0.5-0.5v-1C27,21.225,26.775,21,26.5,21z"
+ ];
+ return this._createToolbarIcon(paths);
+ }
- var tools = elt('div', elemAttrs('tools'),
- elt('div', elemAttrs('tools-left'), leftTools),
- elt('div', elemAttrs('tools-right'), rightTools)
- );
+ _createGridMoreIcon ()
+ {
+ let paths = [
+ "M29.5,35c-0.275,0-0.5-0.225-0.5-0.5v-5c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5v5c0,0.275-0.225,0.5-0.5,0.5H29.5z M21.5,35c-0.275,0-0.5-0.225-0.5-0.5v-5c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5v5c0,0.275-0.225,0.5-0.5,0.5H21.5z M13.5,35c-0.275,0-0.5-0.225-0.5-0.5v-5c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5v5c0,0.275-0.225,0.5-0.5,0.5H13.5z M29.5,27c-0.275,0-0.5-0.225-0.5-0.5v-5c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5v5c0,0.275-0.225,0.5-0.5,0.5H29.5z M21.5,27c-0.275,0-0.5-0.225-0.5-0.5v-5c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5v5c0,0.275-0.225,0.5-0.5,0.5H21.5z M13.5,27c-0.275,0-0.5-0.225-0.5-0.5v-5c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5v5c0,0.275-0.225,0.5-0.5,0.5H13.5z M29.5,19c-0.275,0-0.5-0.225-0.5-0.5v-5c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5v5c0,0.275-0.225,0.5-0.5,0.5H29.5z M21.5,19c-0.275,0-0.5-0.225-0.5-0.5v-5c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5v5c0,0.275-0.225,0.5-0.5,0.5H21.5z M13.5,19c-0.275,0-0.5-0.225-0.5-0.5v-5c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5v5c0,0.275-0.225,0.5-0.5,0.5H13.5z"
+ ];
+ return this._createToolbarIcon(paths);
+ }
- settings.toolbarParentObject.prepend(tools);
+ _createGridFewerIcon ()
+ {
+ let paths = [
+ "M25.5,35c-0.275,0-0.5-0.225-0.5-0.5v-9c0-0.275,0.225-0.5,0.5-0.5h9c0.275,0,0.5,0.225,0.5,0.5v9c0,0.275-0.225,0.5-0.5,0.5H25.5z M22.5,35c0.275,0,0.5-0.225,0.5-0.5v-9c0-0.275-0.225-0.5-0.5-0.5h-9c-0.275,0-0.5,0.225-0.5,0.5v9c0,0.275,0.225,0.5,0.5,0.5H22.5z M34.5,23c0.275,0,0.5-0.225,0.5-0.5v-9c0-0.275-0.225-0.5-0.5-0.5h-9c-0.275,0-0.5,0.225-0.5,0.5v9c0,0.275,0.225,0.5,0.5,0.5H34.5z M22.5,23c0.275,0,0.5-0.225,0.5-0.5v-9c0-0.275-0.225-0.5-0.5-0.5h-9c-0.275,0-0.5,0.225-0.5,0.5v9c0,0.275,0.225,0.5,0.5,0.5H22.5z"
+ ];
+ return this._createToolbarIcon(paths);
+ }
- // Handle entry to and exit from fullscreen mode
- var switchMode = function ()
- {
- var toolsRightElement = document.getElementById(settings.ID + 'tools-right');
- var pageNavElement = document.getElementById(settings.ID + 'page-nav');
+ _createGridViewIcon ()
+ {
+ let paths = [
+ "M29.5,35c-0.275,0-0.5-0.225-0.5-0.5v-5c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5v5c0,0.275-0.225,0.5-0.5,0.5H29.5z M21.5,35c-0.275,0-0.5-0.225-0.5-0.5v-5c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5v5c0,0.275-0.225,0.5-0.5,0.5H21.5z M13.5,35c-0.275,0-0.5-0.225-0.5-0.5v-5c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5v5c0,0.275-0.225,0.5-0.5,0.5H13.5z M29.5,27c-0.275,0-0.5-0.225-0.5-0.5v-5c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5v5c0,0.275-0.225,0.5-0.5,0.5H29.5z M21.5,27c-0.275,0-0.5-0.225-0.5-0.5v-5c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5v5c0,0.275-0.225,0.5-0.5,0.5H21.5z M13.5,27c-0.275,0-0.5-0.225-0.5-0.5v-5c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5v5c0,0.275-0.225,0.5-0.5,0.5H13.5z M29.5,19c-0.275,0-0.5-0.225-0.5-0.5v-5c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5v5c0,0.275-0.225,0.5-0.5,0.5H29.5z M21.5,19c-0.275,0-0.5-0.225-0.5-0.5v-5c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5v5c0,0.275-0.225,0.5-0.5,0.5H21.5z M13.5,19c-0.275,0-0.5-0.225-0.5-0.5v-5c0-0.275,0.225-0.5,0.5-0.5h5c0.275,0,0.5,0.225,0.5,0.5v5c0,0.275-0.225,0.5-0.5,0.5H13.5z"
+ ];
+ return this._createToolbarIcon(paths);
+ }
- if (!settings.inFullscreen)
- {
- // Leaving fullscreen
- $(tools).removeClass('diva-fullscreen-tools');
+ _createBookViewIcon ()
+ {
+ let paths = [
+ "M35,16.8v-1.323c0,0-2.292-1.328-5.74-1.328c-3.448,0-5.26,1.25-5.26,1.25s-1.813-1.25-5.26-1.25c-3.448,0-5.74,1.328-5.74,1.328V16.8l-1,0.531v0.021v15.687c0,0,4.531-1.578,6.999-1.578c2.468,0,5.001,0.885,5.001,0.885s2.532-0.885,5-0.885c0.306,0,0.643,0.024,1,0.066v4.325l1.531-2.016L33,35.852v-3.72c2,0.43,3,0.906,3,0.906V17.352v-0.021L35,16.8z M23,29.03c-1-0.292-2.584-0.679-3.981-0.679c-2.246,0-3.019,0.404-4.019,0.699V16.634c0,0,1.125-0.699,4.019-0.699c1.694,0,2.981,0.417,3.981,1.126V29.03z M33,29.051c-1-0.295-1.773-0.699-4.02-0.699c-1.396,0-2.981,0.387-3.98,0.679V17.06c1-0.709,2.286-1.126,3.98-1.126c2.895,0,4.02,0.699,4.02,0.699V29.051z"
+ ];
+ return this._createToolbarIcon(paths);
+ }
- //move ID-page-nav to beginning of tools right
- toolsRightElement.removeChild(pageNavElement);
- toolsRightElement.insertBefore(pageNavElement, toolsRightElement.firstChild);
- }
- else
- {
- // Entering fullscreen
- $(tools).addClass('diva-fullscreen-tools');
+ _createPageViewIcon ()
+ {
+ let paths = [
+ "M29.425,29h4.47L29,33.934v-4.47C29,29.19,29.151,29,29.425,29z M34,14.563V28h-5.569C28.157,28,28,28.196,28,28.47V34H14.497C14.223,34,14,33.71,14,33.437V14.563C14,14.29,14.223,14,14.497,14h18.9C33.672,14,34,14.29,34,14.563z M25.497,26.497C25.497,26.223,25.275,26,25,26h-7c-0.275,0-0.497,0.223-0.497,0.497v1.006C17.503,27.777,17.725,28,18,28h7c0.275,0,0.497-0.223,0.497-0.497V26.497z M30.497,22.497C30.497,22.223,30.275,22,30,22H18c-0.275,0-0.497,0.223-0.497,0.497v1.006C17.503,23.777,17.725,24,18,24h12c0.275,0,0.497-0.223,0.497-0.497V22.497z M30.497,18.497C30.497,18.223,30.275,18,30,18H18c-0.275,0-0.497,0.223-0.497,0.497v1.006C17.503,19.777,17.725,20,18,20h12c0.275,0,0.497-0.223,0.497-0.497V18.497z"
+ ];
- //move ID-page-nav to end of tools right
- toolsRightElement.removeChild(pageNavElement);
- toolsRightElement.appendChild(pageNavElement);
- }
- };
+ return this._createToolbarIcon(paths);
+ }
- subscribe('ModeDidSwitch', switchMode);
- subscribe('ViewerDidLoad', switchMode);
+ _createFullscreenIcon ()
+ {
+ let paths = [
+ "M35,12H13c-0.55,0-1,0.45-1,1v22c0,0.55,0.45,1,1,1h22c0.55,0,1-0.45,1-1V13C36,12.45,35.55,12,35,12z M34,34H14V14h20V34z",
+ "M17,21.75v-4.5c0-0.138,0.112-0.25,0.25-0.25h4.5c0.138,0,0.17,0.08,0.073,0.177l-1.616,1.616l1.823,1.823c0.097,0.097,0.097,0.256,0,0.354l-1.061,1.06c-0.097,0.097-0.256,0.097-0.354,0l-1.823-1.823l-1.616,1.616C17.08,21.92,17,21.888,17,21.75z M20.97,25.97c-0.097-0.097-0.256-0.097-0.354,0l-1.823,1.823l-1.616-1.616C17.08,26.08,17,26.112,17,26.25v4.5c0,0.138,0.112,0.25,0.25,0.25h4.5c0.138,0,0.17-0.08,0.073-0.177l-1.616-1.616l1.823-1.823c0.097-0.097,0.097-0.256,0-0.354L20.97,25.97z M30.75,17h-4.5c-0.138,0-0.17,0.08-0.073,0.177l1.616,1.616l-1.823,1.823c-0.097,0.097-0.097,0.256,0,0.354l1.061,1.06c0.097,0.097,0.256,0.097,0.354,0l1.823-1.823l1.616,1.616C30.92,21.92,31,21.888,31,21.75v-4.5C31,17.112,30.888,17,30.75,17z M30.823,26.177l-1.616,1.616l-1.823-1.823c-0.097-0.097-0.256-0.097-0.354,0l-1.061,1.06c-0.097,0.097-0.097,0.256,0,0.354l1.823,1.823l-1.616,1.616C26.08,30.92,26.112,31,26.25,31h4.5c0.138,0,0.25-0.112,0.25-0.25v-4.5C31,26.112,30.92,26.08,30.823,26.177z M26,22.5c0-0.275-0.225-0.5-0.5-0.5h-3c-0.275,0-0.5,0.225-0.5,0.5v3c0,0.275,0.225,0.5,0.5,0.5h3c0.275,0,0.5-0.225,0.5-0.5V22.5z"
+ ];
- var toolbar = {
- element: tools,
- closePopups: function ()
- {
- $('.diva-popup').css('display', 'none');
- }
- };
+ return this._createToolbarIcon(paths);
+ }
- return toolbar;
- };
- return init();
}
+
+
+// export default function createToolbar (viewer)
+// {
+// const settings = viewer.getSettings();
+//
+// // FIXME(wabain): Temporarily copied from within Diva
+// const elemAttrs = (ident, base) => {
+// const attrs = {
+// id: settings.ID + ident,
+// class: 'diva-' + ident
+// };
+//
+// if (base)
+// return Object.assign(attrs, base);
+// else
+// return attrs;
+// };
+//
+// /** Convenience function to subscribe to a Diva event */
+// const subscribe = (event, callback) => {
+// diva.Events.subscribe(event, callback, settings.ID);
+// };
+//
+// // Creates a toolbar button
+// const createButtonElement = (name, label, callback) => {
+// const button = elt('button', {
+// type: 'button',
+// id: settings.ID + name,
+// class: 'diva-' + name + ' diva-button',
+// title: label
+// });
+//
+// if (callback)
+// button.addEventListener('click', callback, false);
+//
+// return button;
+// };
+//
+// // Higher-level function for creators of zoom and grid controls
+// const getResolutionControlCreator = config => () => {
+// let controls;
+//
+// switch (settings[config.controllerSetting])
+// {
+// case 'slider':
+// controls = config.createSlider();
+// break;
+//
+// case 'buttons':
+// controls = config.createButtons();
+// break;
+//
+// default:
+// // Don't display anything
+// return null;
+// }
+//
+// const wrapper = elt('span',
+// controls,
+// config.createLabel()
+// );
+//
+// const updateWrapper = () => {
+// if (settings.inGrid === config.showInGrid)
+// wrapper.style.display = 'inline';
+// else
+// wrapper.style.display = 'none';
+// };
+//
+// subscribe('ViewDidSwitch', updateWrapper);
+// subscribe('ObjectDidLoad', updateWrapper);
+//
+// // Set initial value
+// updateWrapper();
+//
+// return wrapper;
+// };
+//
+// // Zoom controls
+// const createZoomControls = getResolutionControlCreator({
+// controllerSetting: 'enableZoomControls',
+// showInGrid: false,
+//
+// createSlider: function ()
+// {
+// const elem = createSlider('zoom-slider', {
+// step: 0.1,
+// value: settings.zoomLevel,
+// min: settings.minZoomLevel,
+// max: settings.maxZoomLevel
+// });
+//
+// elem.addEventListener('input', () =>
+// {
+// const floatValue = parseFloat(this.value);
+// viewer.setZoomLevel(floatValue);
+// });
+//
+// elem.addEventListener('change', () =>
+// {
+// const floatValue = parseFloat(this.value);
+// if (floatValue !== settings.zoomLevel)
+// viewer.setZoomLevel(floatValue);
+// });
+//
+// const updateSlider = () => {
+// if (settings.zoomLevel !== $elem.val())
+// $elem.val(settings.zoomLevel);
+// };
+//
+// subscribe('ZoomLevelDidChange', updateSlider);
+// subscribe('ViewerDidLoad', () => {
+// elt.setAttributes(elem, {
+// min: settings.minZoomLevel,
+// max: settings.maxZoomLevel
+// });
+//
+// updateSlider();
+// });
+//
+// return elem;
+// },
+//
+// createButtons: function ()
+// {
+// return elt('span',
+// createButtonElement('zoom-out-button', 'Zoom Out', () => {
+// viewer.setZoomLevel(settings.zoomLevel - 1);
+// }),
+// createButtonElement('zoom-in-button', 'Zoom In', () => {
+// viewer.setZoomLevel(settings.zoomLevel + 1);
+// })
+// );
+// },
+//
+// createLabel: function ()
+// {
+// const elem = createLabel('diva-zoom-label', 'zoom-label', 'Zoom level: ', 'zoom-level', settings.zoomLevel);
+// const textSpan = $(elem).find(settings.selector + 'zoom-level')[0];
+//
+// const updateText = () => {
+// textSpan.textContent = settings.zoomLevel.toFixed(2);
+// };
+//
+// subscribe('ZoomLevelDidChange', updateText);
+// subscribe('ViewerDidLoad', updateText);
+//
+// return elem;
+// }
+// });
+//
+// // Grid controls
+// const createGridControls = getResolutionControlCreator({
+// controllerSetting: 'enableGridControls',
+// showInGrid: true,
+//
+// createSlider: function ()
+// {
+// const elem = createSlider('grid-slider', {
+// value: settings.pagesPerRow,
+// min: settings.minPagesPerRow,
+// max: settings.maxPagesPerRow
+// });
+//
+// elem.addEventListener('input', () => {
+// const intValue = parseInt(elem.value, 10);
+// viewer.setGridPagesPerRow(intValue);
+// });
+//
+// elem.addEventListener('change', () => {
+// const intValue = parseInt(elem.value, 10);
+// if (intValue !== settings.pagesPerRow)
+// viewer.setGridPagesPerRow(intValue);
+// });
+//
+// subscribe('GridRowNumberDidChange', () => {
+// // Update the position of the handle within the slider
+// if (settings.pagesPerRow !== $elem.val())
+// $elem.val(settings.pagesPerRow);
+// });
+//
+// return elem;
+// },
+//
+// createButtons: function ()
+// {
+// return elt('span',
+// createButtonElement('grid-out-button', 'Zoom Out', () => {
+// viewer.setGridPagesPerRow(settings.pagesPerRow - 1);
+// }),
+// createButtonElement('grid-in-button', 'Zoom In', () => {
+// viewer.setGridPagesPerRow(settings.pagesPerRow + 1);
+// })
+// );
+// },
+//
+// createLabel: function ()
+// {
+// const elem = createLabel('diva-grid-label', 'grid-label', 'Pages per row: ', 'pages-per-row', settings.pagesPerRow);
+// const textSpan = $(elem).find(settings.selector + 'pages-per-row')[0];
+//
+// subscribe('GridRowNumberDidChange', () => {
+// textSpan.textContent = settings.pagesPerRow;
+// });
+//
+// return elem;
+// }
+// });
+//
+// const createViewMenu = () => {
+// const viewOptionsList = elt('div', elemAttrs('view-options'));
+//
+// const changeViewButton = createButtonElement('view-icon', 'Change view', () => {
+// $(viewOptionsList).toggle();
+// });
+//
+// document.addEventListener('mouseup', event => {
+// const container = $(viewOptionsList);
+//
+// if (!container.is(event.target) && container.has(event.target).length === 0 && event.target.id !== settings.ID + 'view-icon')
+// {
+// container.hide();
+// }
+// });
+//
+// const selectView = view => {
+// viewer.changeView(view);
+//
+// //hide view menu
+// $(viewOptionsList).hide();
+// };
+//
+// const updateViewMenu = () => {
+// const viewIconClasses = ' diva-view-icon diva-button';
+//
+// // display the icon of the mode we're currently in (?)
+// if (settings.inGrid)
+// {
+// changeViewButton.className = 'diva-grid-icon' + viewIconClasses;
+// }
+// else if (settings.inBookLayout)
+// {
+// changeViewButton.className = 'diva-book-icon' + viewIconClasses;
+// }
+// else
+// {
+// changeViewButton.className = 'diva-document-icon' + viewIconClasses;
+// }
+//
+// const viewOptions = document.createDocumentFragment();
+//
+// // then display document, book, and grid buttons in that order, excluding the current view
+// if (settings.inGrid || settings.inBookLayout)
+// viewOptions.appendChild(createButtonElement('document-icon', 'Document View', selectView.bind(null, 'document')));
+//
+// if (settings.inGrid || !settings.inBookLayout)
+// viewOptions.appendChild(createButtonElement('book-icon', 'Book View', selectView.bind(null, 'book')));
+//
+// if (!settings.inGrid)
+// viewOptions.appendChild(createButtonElement('grid-icon', 'Grid View', selectView.bind(null, 'grid')));
+//
+// // remove old menu
+// while (viewOptionsList.firstChild)
+// {
+// viewOptionsList.removeChild(viewOptionsList.firstChild);
+// }
+//
+// // insert new menu
+// viewOptionsList.appendChild(viewOptions);
+// };
+//
+// subscribe('ViewDidSwitch', updateViewMenu);
+// subscribe('ObjectDidLoad', updateViewMenu);
+//
+// return elt('div', elemAttrs('view-menu'),
+// changeViewButton,
+// viewOptionsList
+// );
+// };
+//
+// const createSlider = (name, options) => elt('input', options, {
+// id: settings.ID + name,
+// class: 'diva-' + name + ' diva-slider',
+// type: 'range'
+// });
+//
+// const createLabel = (name, id, label, innerName, innerValue) => elt('div', {
+// id: settings.ID + id,
+// class: name + ' diva-label'
+// },
+// [
+// label,
+// elt('span', {
+// id: settings.ID + innerName
+// }, innerValue)
+// ]);
+//
+// const createPageNavigationControls = () => {
+// // Go to page form
+// const gotoForm = settings.enableGotoPage ? createGotoPageForm() : null;
+//
+// return elt('span', elemAttrs('page-nav'),
+// createPageLabel(), // 'Page x of y' label
+// gotoForm
+// );
+// };
+//
+// const createGotoPageForm = () => {
+// const gotoPageInput = elt('input', {
+// id: settings.ID + 'goto-page-input',
+// class: 'diva-input diva-goto-page-input',
+// autocomplete: 'off',
+// type: 'text'
+// });
+//
+// const gotoPageSubmit = elt('input', {
+// id: settings.ID + 'goto-page-submit',
+// class: 'diva-button diva-button-text',
+// type: 'submit',
+// value: 'Go'
+// });
+//
+// const inputSuggestions = elt('div', {
+// id: settings.ID + 'input-suggestions',
+// class: 'diva-input-suggestions'
+// }
+// );
+//
+// const gotoForm = elt('form', {
+// id: settings.ID + 'goto-page',
+// class: 'diva-goto-form'
+// },
+// gotoPageInput,
+// gotoPageSubmit,
+// inputSuggestions
+// );
+//
+// $(gotoForm).on('submit', () => {
+// const desiredPageLabel = gotoPageInput.value;
+//
+// if (settings.onGotoSubmit && typeof settings.onGotoSubmit === "function")
+// {
+// const pageIndex = settings.onGotoSubmit(desiredPageLabel);
+// if (!viewer.gotoPageByIndex(pageIndex))
+// alert("No page could be found with that label or page number");
+//
+// }
+// else // Default if no function is specified in the settings
+// {
+// if (!viewer.gotoPageByLabel(desiredPageLabel))
+// alert("No page could be found with that label or page number");
+// }
+//
+// // Hide the suggestions
+// inputSuggestions.style.display = 'none';
+//
+// // Prevent the default action of reloading the page
+// return false;
+// });
+//
+// $(gotoPageInput).on('input focus', () => {
+// inputSuggestions.innerHTML = ''; // Remove all previous suggestions
+//
+// const value = gotoPageInput.value;
+// let numSuggestions = 0;
+// if (settings.enableGotoSuggestions && value)
+// {
+// const pages = settings.manifest.pages;
+// for (let i = 0, len = pages.length; i < len && numSuggestions < 10; i++)
+// {
+// if (pages[i].l.toLowerCase().indexOf(value.toLowerCase()) > -1)
+// {
+// const newInputSuggestion = elt('div', {
+// class: 'diva-input-suggestion'
+// },
+// pages[i].l
+// );
+//
+// inputSuggestions.appendChild(newInputSuggestion);
+//
+// numSuggestions++;
+// }
+// }
+//
+// // Show label suggestions
+// if (numSuggestions > 0)
+// inputSuggestions.style.display = 'block';
+// }
+// else
+// inputSuggestions.style.display = 'none';
+// });
+//
+// $(gotoPageInput).on('keydown', e => {
+// let el;
+// if (e.keyCode === 13) // 'Enter' key
+// {
+// const active = $('.active', inputSuggestions);
+// if (active.length)
+// gotoPageInput.value = active.text();
+//
+// }
+// if (e.keyCode === 38) // Up arrow key
+// {
+// el = $('.active', inputSuggestions);
+// const prevEl = el.prev();
+// if (prevEl.length)
+// {
+// el.removeClass('active');
+// prevEl.addClass('active');
+// }
+// else
+// {
+// el.removeClass('active');
+// $('.diva-input-suggestion:last', inputSuggestions).addClass('active');
+// }
+// }
+// else if (e.keyCode === 40) // Down arrow key
+// {
+// el = $('.active', inputSuggestions);
+// const nextEl = el.next();
+// if (nextEl.length)
+// {
+// el.removeClass('active');
+// nextEl.addClass('active');
+// }
+// else
+// {
+// el.removeClass('active');
+// $('.diva-input-suggestion:first', inputSuggestions).addClass('active');
+// }
+// }
+// });
+//
+// $(inputSuggestions).on('mousedown', '.diva-input-suggestion', function()
+// {
+// gotoPageInput.value = this.textContent;
+// inputSuggestions.style.display = 'none';
+// $(gotoPageInput).trigger('submit');
+// });
+//
+// $(gotoPageInput).on('blur', () => {
+// // Hide label suggestions
+// inputSuggestions.style.display = 'none';
+// });
+//
+// return gotoForm;
+// };
+//
+// const createPageLabel = () => {
+// // Current page
+// const currentPage = elt('span', {
+// id: settings.ID + 'current-page'
+// });
+//
+// const updateCurrentPage = () => {
+// currentPage.textContent = viewer.getCurrentAliasedPageIndex();
+// };
+//
+// subscribe('VisiblePageDidChange', updateCurrentPage);
+// subscribe('ViewerDidLoad', updateCurrentPage);
+//
+// // Number of pages
+// const numPages = elt('span', {
+// id: settings.ID + 'num-pages'
+// });
+//
+// const updateNumPages = () => {
+// numPages.textContent = settings.numPages;
+// };
+//
+// subscribe('NumberOfPagesDidChange', updateNumPages);
+// subscribe('ObjectDidLoad', updateNumPages);
+//
+// return elt('span', {
+// class: 'diva-page-label diva-label'
+// },
+// 'Page ', currentPage, ' of ', numPages
+// );
+// };
+//
+// const createToolbarButtonGroup = () => {
+// const buttons = [createViewMenu()];
+//
+// if (settings.enableLinkIcon)
+// buttons.push(createLinkIcon());
+//
+// if (settings.enableNonPagedVisibilityIcon)
+// buttons.push(createToggleNonPagedButton());
+//
+// if (settings.enableFullscreen)
+// buttons.push(createFullscreenButton());
+//
+// return elt('span', elemAttrs('toolbar-button-group'), buttons);
+// };
+//
+// const createLinkIcon = () => {
+// const elem = createButtonElement('link-icon', 'Link to this page');
+// const linkIcon = $(elem);
+//
+// linkIcon.on('click', () => {
+// $('body').prepend(
+// elt('div', {
+// id: settings.ID + 'link-popup',
+// class: 'diva-popup diva-link-popup'
+// }, [
+// elt('input', {
+// id: settings.ID + 'link-popup-input',
+// class: 'diva-input',
+// type: 'text',
+// value: viewer.getCurrentURL()
+// })
+// ])
+// );
+//
+// if (settings.inFullscreen)
+// {
+// $(settings.selector + 'link-popup').addClass('in-fullscreen');
+// }
+// else
+// {
+// // Calculate the left and top offsets
+// const leftOffset = linkIcon.offset().left - 222 + linkIcon.outerWidth();
+// const topOffset = linkIcon.offset().top + linkIcon.outerHeight() - 1;
+//
+// $(settings.selector + 'link-popup').css({
+// 'top': topOffset + 'px',
+// 'left': leftOffset + 'px'
+// });
+// }
+//
+// // Catch onmouseup events outside of this div
+// $('body').mouseup(event => {
+// const targetID = event.target.id;
+//
+// if (targetID !== settings.ID + 'link-popup' && targetID !== settings.ID + 'link-popup-input')
+// $(settings.selector + 'link-popup').remove();
+// });
+//
+// // Also delete it upon scroll and page up/down key events
+// // FIXME(wabain): This is aggressive
+// settings.viewportObject.scroll(() => {
+// $(settings.selector + 'link-popup').remove();
+// });
+// $(settings.selector + 'link-popup input').click(function ()
+// {
+// $(this).focus().select();
+// });
+//
+// return false;
+// });
+//
+// return elem;
+// };
+//
+// var createFullscreenButton = () => createButtonElement('fullscreen-icon', 'Toggle fullscreen mode', () => {
+// viewer.toggleFullscreenMode();
+// });
+//
+// var createToggleNonPagedButton = () => {
+// const getClassName = () => 'toggle-nonpaged-icon' + (viewer.getSettings().showNonPagedPages ? '-active' : '');
+//
+// const toggleNonPagedButton = createButtonElement(getClassName(), 'Toggle visibility of non-paged pages', function()
+// {
+// viewer.toggleNonPagedPagesVisibility();
+// const newClassName = 'diva-' + getClassName();
+// this.className = this.className.replace(/diva-toggle-nonpaged-icon(-active)?/, newClassName);
+// });
+//
+// const updateNonPagedButtonVisibility = () => {
+// const pages = settings.manifest.pages;
+// for (let i = 0; i < pages.length; i++)
+// {
+// if (settings.manifest.paged && !pages[i].paged)
+// {
+// // Show the button, there is at least one non-paged page
+// toggleNonPagedButton.style.display = 'inline-block';
+// return;
+// }
+// }
+//
+// // No non-paged pages were found, hide the button
+// toggleNonPagedButton.style.display = 'none';
+// };
+// subscribe('ObjectDidLoad', updateNonPagedButtonVisibility);
+//
+// return toggleNonPagedButton;
+// };
+//
+// // Handles all status updating etc (both fullscreen and not)
+// const init = () => {
+// const leftTools = [createZoomControls(), createGridControls()];
+// const rightTools = [createPageNavigationControls(), createToolbarButtonGroup()];
+//
+// const tools = elt('div', elemAttrs('tools'),
+// elt('div', elemAttrs('tools-left'), leftTools),
+// elt('div', elemAttrs('tools-right'), rightTools)
+// );
+//
+// settings.toolbarParentObject.prepend(tools);
+//
+// // Handle entry to and exit from fullscreen mode
+// const switchMode = () => {
+// const toolsRightElement = document.getElementById(settings.ID + 'tools-right');
+// const pageNavElement = document.getElementById(settings.ID + 'page-nav');
+//
+// if (!settings.inFullscreen)
+// {
+// // Leaving fullscreen
+// $(tools).removeClass('diva-fullscreen-tools');
+//
+// //move ID-page-nav to beginning of tools right
+// toolsRightElement.removeChild(pageNavElement);
+// toolsRightElement.insertBefore(pageNavElement, toolsRightElement.firstChild);
+// }
+// else
+// {
+// // Entering fullscreen
+// $(tools).addClass('diva-fullscreen-tools');
+//
+// //move ID-page-nav to end of tools right
+// toolsRightElement.removeChild(pageNavElement);
+// toolsRightElement.appendChild(pageNavElement);
+// }
+// };
+//
+// subscribe('ModeDidSwitch', switchMode);
+// subscribe('ViewerDidLoad', switchMode);
+//
+// const toolbar = {
+// element: tools,
+// closePopups: function ()
+// {
+// $('.diva-popup').css('display', 'none');
+// }
+// };
+//
+// return toolbar;
+// };
+//
+// return init();
+// }
diff --git a/source/js/utils/dragscroll.js b/source/js/utils/dragscroll.js
new file mode 100644
index 00000000..bb795248
--- /dev/null
+++ b/source/js/utils/dragscroll.js
@@ -0,0 +1,106 @@
+/**
+ * @fileoverview dragscroll - scroll area by dragging
+ * @version 0.0.8
+ *
+ * @license MIT, see http://github.com/asvd/dragscroll
+ * @copyright 2015 asvd
+ */
+(function (root, factory)
+{
+ if (typeof define === 'function' && define.amd)
+ {
+ define(['exports'], factory);
+ }
+ else if (typeof exports !== 'undefined')
+ {
+ factory(exports);
+ }
+ else
+ {
+ factory((root.dragscroll = {}));
+ }
+}(this, function (exports)
+{
+ var _window = window;
+ var _document = document;
+ var mousemove = 'mousemove';
+ var mouseup = 'mouseup';
+ var mousedown = 'mousedown';
+ var EventListener = 'EventListener';
+ var addEventListener = 'add' + EventListener;
+ var removeEventListener = 'remove' + EventListener;
+ var newScrollX, newScrollY; // jshint ignore:line
+
+ var dragged = [];
+
+ var reset = function (i, el)
+ {
+ for (i = 0; i < dragged.length;)
+ {
+ el = dragged[i++];
+ el = el.container || el;
+ el[removeEventListener](mousedown, el.md, 0);
+ _window[removeEventListener](mouseup, el.mu, 0);
+ _window[removeEventListener](mousemove, el.mm, 0);
+ }
+
+ // suppress warning about functions in loops.
+ /* jshint ignore:start */
+ // cloning into array since HTMLCollection is updated dynamically
+ dragged = [].slice.call(_document.getElementsByClassName('dragscroll'));
+ for (i = 0; i < dragged.length;)
+ {
+ (function (el, lastClientX, lastClientY, pushed, scroller, cont)
+ {
+ (cont = el.container || el)[addEventListener](
+ mousedown,
+ cont.md = function (e)
+ {
+ if (!el.hasAttribute('nochilddrag') || _document.elementFromPoint(e.pageX, e.pageY) === cont)
+ {
+ pushed = 1;
+ lastClientX = e.clientX;
+ lastClientY = e.clientY;
+
+ e.preventDefault();
+ }
+ }, 0
+ );
+
+ _window[addEventListener](mouseup, cont.mu = function ()
+ {
+ pushed = 0;
+ }, 0);
+
+ _window[addEventListener](mousemove, cont.mm = function (e)
+ {
+ if (pushed)
+ {
+ (scroller = el.scroller || el).scrollLeft -=
+ newScrollX = (-lastClientX + (lastClientX = e.clientX));
+ scroller.scrollTop -=
+ newScrollY = (-lastClientY + (lastClientY = e.clientY));
+ if (el === _document.body)
+ {
+ (scroller = _document.documentElement).scrollLeft -= newScrollX;
+ scroller.scrollTop -= newScrollY;
+ }
+ }
+ }, 0);
+ })(dragged[i++]);
+ }
+ /* jshint ignore:end */
+ };
+
+ if (_document.readyState === 'complete')
+ {
+ reset();
+ }
+ else
+ {
+ _window[addEventListener]('load', reset, 0);
+ }
+
+ exports.reset = reset;
+ window.resetDragscroll = reset;
+}));
diff --git a/source/js/utils/elt.js b/source/js/utils/elt.js
index de6137c4..f30f1af8 100644
--- a/source/js/utils/elt.js
+++ b/source/js/utils/elt.js
@@ -1,5 +1,4 @@
-module.exports = elt;
-module.exports.setAttributes = setDOMAttributes;
+export { setDOMAttributes as setAttributes };
/**
* Convenience function to create a DOM element, set attributes on it, and
@@ -11,23 +10,23 @@ module.exports.setAttributes = setDOMAttributes;
*
* Inspired by the ProseMirror helper of the same name.
*/
-function elt(tag)
+export function elt (tag)
{
- var el = document.createElement(tag);
- var args = Array.prototype.slice.call(arguments, 1);
+ const el = document.createElement(tag);
+ const args = Array.prototype.slice.call(arguments, 1);
while (args.length)
{
- var arg = args.shift();
+ const arg = args.shift();
handleEltConstructorArg(el, arg);
}
return el;
}
-function handleEltConstructorArg(el, arg)
+function handleEltConstructorArg (el, arg)
{
- if (arg == null)
+ if (arg == null) // NB: == is correct;
return;
if (typeof arg !== 'object' && typeof arg !== 'function')
@@ -41,8 +40,8 @@ function handleEltConstructorArg(el, arg)
}
else if (arg instanceof Array)
{
- var childCount = arg.length;
- for (var i = 0; i < childCount; i++)
+ const childCount = arg.length;
+ for (let i = 0; i < childCount; i++)
handleEltConstructorArg(el, arg[i]);
}
else
@@ -56,9 +55,9 @@ function handleEltConstructorArg(el, arg)
* accept either a string or an object whose own attributes are assigned to
* el.style.
*/
-function setDOMAttributes(el, attributes)
+function setDOMAttributes (el, attributes)
{
- for (var prop in attributes)
+ for (const prop in attributes)
{
if (!attributes.hasOwnProperty(prop))
continue;
@@ -74,7 +73,7 @@ function setDOMAttributes(el, attributes)
}
}
-function setStyle(el, style)
+function setStyle (el, style)
{
if (!style)
return;
@@ -85,7 +84,7 @@ function setStyle(el, style)
return;
}
- for (var cssProp in style)
+ for (const cssProp in style)
{
if (!style.hasOwnProperty(cssProp))
continue;
diff --git a/source/js/utils/events.js b/source/js/utils/events.js
index 782dad0e..2020a9c7 100644
--- a/source/js/utils/events.js
+++ b/source/js/utils/events.js
@@ -1,187 +1,190 @@
-module.exports = Events;
-
/**
- * Events. Pub/Sub system for Loosely Coupled logic.
- * Based on Peter Higgins' port from Dojo to jQuery
- * https://github.com/phiggins42/bloody-jquery-plugins/blob/master/pubsub.js
+ * Events. Pub/Sub system for Loosely Coupled logic.
+ * Based on Peter Higgins' port from Dojo to jQuery
+ * https://github.com/phiggins42/bloody-jquery-plugins/blob/master/pubsub.js
*
- * Re-adapted to vanilla Javascript
+ * Re-adapted to vanilla Javascript
*
- * @class Events
+ * @class Events
*/
-function Events()
-{
- this._cache = {};
-}
-/**
- * diva.Events.publish
- * e.g.: diva.Events.publish("PageDidLoad", [pageIndex, filename, pageSelector], this);
- *
- * @class Events
- * @method publish
- * @param topic {String}
- * @param args {Array}
- * @param scope {Object=} Optional - Subscribed functions will be executed with the supplied object as `this`.
- * It is necessary to supply this argument with the self variable when within a Diva instance.
- * The scope argument is matched with the instance ID of subscribers to determine whether they
- * should be executed. (See instanceID argument of subscribe.)
- */
-Events.prototype.publish = function (topic, args, scope)
+class DivaEvents
{
- if (this._cache[topic])
+ constructor()
{
- var thisTopic = this._cache[topic];
+ this._cache = {};
+ }
- if (typeof thisTopic.global !== 'undefined')
+ /**
+ * diva.Events.publish
+ * e.g.: diva.Events.publish("PageDidLoad", [pageIndex, filename, pageSelector], this);
+ *
+ * @class Events
+ * @method publish
+ * @param topic {String}
+ * @param args {Array}
+ * @param scope {Object=} Optional - Subscribed functions will be executed with the supplied object as `this`.
+ * It is necessary to supply this argument with the self variable when within a Diva instance.
+ * The scope argument is matched with the instance ID of subscribers to determine whether they
+ * should be executed. (See instanceID argument of subscribe.)
+ */
+ publish(topic, args, scope)
+ {
+ if (this._cache[topic])
{
- var thisTopicGlobal = thisTopic.global;
- var globalCount = thisTopicGlobal.length;
+ const thisTopic = this._cache[topic];
- for (var i=0; i < globalCount; i++)
+ if (typeof thisTopic.global !== 'undefined')
{
- thisTopicGlobal[i].apply(scope || null, args || []);
- }
- }
+ const thisTopicGlobal = thisTopic.global;
+ const globalCount = thisTopicGlobal.length;
- if (scope && typeof scope.getInstanceId !== 'undefined')
- {
- // get publisher instance ID from scope arg, compare, and execute if match
- var instanceID = scope.getInstanceId();
+ for (let i=0; i < globalCount; i++)
+ {
+ thisTopicGlobal[i].apply(scope || null, args || []);
+ }
+ }
- if (this._cache[topic][instanceID])
+ if (scope && typeof scope.getInstanceId !== 'undefined')
{
- var thisTopicInstance = this._cache[topic][instanceID];
- var scopedCount = thisTopicInstance.length;
+ // get publisher instance ID from scope arg, compare, and execute if match
+ const instanceID = scope.getInstanceId();
- for (var j=0; j < scopedCount; j++)
+ if (this._cache[topic][instanceID])
{
- thisTopicInstance[j].apply(scope, args || []);
+ const thisTopicInstance = this._cache[topic][instanceID];
+ const scopedCount = thisTopicInstance.length;
+
+ for (let j=0; j < scopedCount; j++)
+ {
+ thisTopicInstance[j].apply(scope, args || []);
+ }
}
}
}
}
-};
-/**
- * diva.Events.subscribe
- * e.g.: diva.Events.subscribe("PageDidLoad", highlight, settings.ID)
- *
- * @class Events
- * @method subscribe
- * @param topic {String}
- * @param callback {Function}
- * @param instanceID {String=} Optional - String representing the ID of a Diva instance; if provided,
- * callback only fires for events published from that instance.
- * @return Event handler {Array}
- */
-Events.prototype.subscribe = function (topic, callback, instanceID)
-{
- if (!this._cache[topic])
- {
- this._cache[topic] = {};
- }
-
- if (typeof instanceID === 'string')
+ /**
+ * diva.Events.subscribe
+ * e.g.: diva.Events.subscribe("PageDidLoad", highlight, settings.ID)
+ *
+ * @class Events
+ * @method subscribe
+ * @param {string} topic
+ * @param {function} callback
+ * @param {string=} instanceID Optional - String representing the ID of a Diva instance; if provided,
+ * callback only fires for events published from that instance.
+ * @return Event handler {Array}
+ */
+ subscribe(topic, callback, instanceID)
{
- if (!this._cache[topic][instanceID])
+ if (!this._cache[topic])
{
- this._cache[topic][instanceID] = [];
+ this._cache[topic] = {};
}
- this._cache[topic][instanceID].push(callback);
- }
- else
- {
- if (!this._cache[topic].global)
+ if (typeof instanceID === 'string')
{
- this._cache[topic].global = [];
+ if (!this._cache[topic][instanceID])
+ {
+ this._cache[topic][instanceID] = [];
+ }
+
+ this._cache[topic][instanceID].push(callback);
+ }
+ else
+ {
+ if (!this._cache[topic].global)
+ {
+ this._cache[topic].global = [];
+ }
+
+ this._cache[topic].global.push(callback);
}
- this._cache[topic].global.push(callback);
+ return instanceID ? [topic, callback, instanceID] : [topic, callback];
}
- var handle = instanceID ? [topic, callback, instanceID] : [topic, callback];
-
- return handle;
-};
+ /**
+ * diva.Events.unsubscribe
+ * e.g.: var handle = Events.subscribe("PageDidLoad", highlight);
+ * Events.unsubscribe(handle);
+ *
+ * @class Events
+ * @method unsubscribe
+ * @param {array} handle
+ * @param {boolean=} completely - Unsubscribe all events for a given topic.
+ * @return {boolean} success
+ */
+ unsubscribe(handle, completely)
+ {
+ const t = handle[0];
-/**
- * diva.Events.unsubscribe
- * e.g.: var handle = Events.subscribe("PageDidLoad", highlight);
- * Events.unsubscribe(handle);
- *
- * @class Events
- * @method unsubscribe
- * @param handle {Array}
- * @param completely {Boolean=} - Unsubscribe all events for a given topic.
- * @return success {Boolean}
- */
-Events.prototype.unsubscribe = function (handle, completely)
-{
- var t = handle[0];
+ if (this._cache[t])
+ {
+ let topicArray;
+ const instanceID = handle.length === 3 ? handle[2] : 'global';
- if (this._cache[t])
- {
- var topicArray;
- var instanceID = handle.length === 3 ? handle[2] : 'global';
+ topicArray = this._cache[t][instanceID];
- topicArray = this._cache[t][instanceID];
+ if (!topicArray)
+ {
+ return false;
+ }
- if (!topicArray)
- {
- return false;
- }
+ if (completely)
+ {
+ delete this._cache[t][instanceID];
+ return topicArray.length > 0;
+ }
- if (completely)
- {
- delete this._cache[t][instanceID];
- return topicArray.length > 0;
- }
+ let i = topicArray.length;
- var i = topicArray.length;
- while (i--)
- {
- if (topicArray[i] === handle[1])
+ while (i--)
{
- this._cache[t][instanceID].splice(i, 1);
- return true;
+ if (topicArray[i] === handle[1])
+ {
+ this._cache[t][instanceID].splice(i, 1);
+ return true;
+ }
}
}
- }
- return false;
-};
+ return false;
+ }
-/**
- * diva.Events.unsubscribeAll
- * e.g.: diva.Events.unsubscribeAll('global');
- *
- * @class Events
- * @param instanceID {String=} Optional - instance ID to remove subscribers from or 'global' (if omitted,
- * subscribers in all scopes removed)
- * @method unsubscribeAll
- */
-Events.prototype.unsubscribeAll = function (instanceID)
-{
- if (instanceID)
+ /**
+ * diva.Events.unsubscribeAll
+ * e.g.: diva.Events.unsubscribeAll('global');
+ *
+ * @class Events
+ * @param {string=} instanceID Optional - instance ID to remove subscribers from or 'global' (if omitted,
+ * subscribers in all scopes removed)
+ * @method unsubscribeAll
+ */
+ unsubscribeAll(instanceID)
{
- var topics = Object.keys(this._cache);
- var i = topics.length;
- var topic;
-
- while (i--)
+ if (instanceID)
{
- topic = topics[i];
+ const topics = Object.keys(this._cache);
+ let i = topics.length;
+ let topic;
- if (typeof this._cache[topic][instanceID] !== 'undefined')
+ while (i--)
{
- delete this._cache[topic][instanceID];
+ topic = topics[i];
+
+ if (typeof this._cache[topic][instanceID] !== 'undefined')
+ {
+ delete this._cache[topic][instanceID];
+ }
}
}
+ else
+ {
+ this._cache = {};
+ }
}
- else
- {
- this._cache = {};
- }
-};
+}
+
+export let Events = new DivaEvents();
diff --git a/source/js/utils/get-scrollbar-width.js b/source/js/utils/get-scrollbar-width.js
index 55e5b113..76df513d 100644
--- a/source/js/utils/get-scrollbar-width.js
+++ b/source/js/utils/get-scrollbar-width.js
@@ -1,10 +1,11 @@
// From http://www.alexandre-gomes.com/?p=115, modified slightly
-module.exports = function getScrollbarWidth() {
- var inner = document.createElement('p');
+export default function getScrollbarWidth()
+{
+ let inner = document.createElement('p');
inner.style.width = '100%';
inner.style.height = '200px';
- var outer = document.createElement('div');
+ let outer = document.createElement('div');
outer.style.position = 'absolute';
outer.style.top = '0px';
outer.style.left = '0px';
@@ -16,13 +17,13 @@ module.exports = function getScrollbarWidth() {
document.body.appendChild(outer);
- var w1 = inner.offsetWidth;
+ let w1 = inner.offsetWidth;
outer.style.overflow = 'scroll';
- var w2 = inner.offsetWidth;
- if (w1 == w2) {
+ let w2 = inner.offsetWidth;
+ if (w1 === w2) {
w2 = outer.clientWidth; // for IE i think
}
document.body.removeChild(outer);
return w1 - w2;
-};
+}
diff --git a/source/js/utils/hash-params.js b/source/js/utils/hash-params.js
index 6e3fff43..092cd139 100644
--- a/source/js/utils/hash-params.js
+++ b/source/js/utils/hash-params.js
@@ -1,58 +1,83 @@
-module.exports.get = getHashParam;
-module.exports.update = updateHashParam;
+let HashParams = {
+ get: getHashParam,
+ update: updateHashParam
+};
+
+export default HashParams;
+
// For getting the #key values from the URL. For specifying a page and zoom level
// Look into caching, because we only need to get this during the initial load
// Although for the tests I guess we would need to override caching somehow
-function getHashParam(key) {
- var hash = window.location.hash;
- if (hash !== '') {
+function getHashParam (key)
+{
+ const hash = window.location.hash;
+
+ if (hash !== '')
+ {
// Check if there is something that looks like either &key= or #key=
- var startIndex = (hash.indexOf('&' + key + '=') > 0) ? hash.indexOf('&' + key + '=') : hash.indexOf('#' + key + '=');
+ let startIndex = (hash.indexOf('&' + key + '=') > 0) ? hash.indexOf('&' + key + '=') : hash.indexOf('#' + key + '=');
// If startIndex is still -1, it means it can't find either
- if (startIndex >= 0) {
+ if (startIndex >= 0)
+ {
// Add the length of the key plus the & and =
startIndex += key.length + 2;
// Either to the next ampersand or to the end of the string
- var endIndex = hash.indexOf('&', startIndex);
- if (endIndex > startIndex) {
+ const endIndex = hash.indexOf('&', startIndex);
+ if (endIndex > startIndex)
+ {
return decodeURIComponent(hash.substring(startIndex, endIndex));
- } else if (endIndex < 0) {
+ }
+ else if (endIndex < 0)
+ {
// This means this hash param is the last one
return decodeURIComponent(hash.substring(startIndex));
}
// If the key doesn't have a value I think
return '';
- } else {
+ }
+ else
+ {
// If it can't find the key
return false;
}
- } else {
+ }
+ else
+ {
// If there are no hash params just return false
return false;
}
}
-function updateHashParam(key, value) {
+function updateHashParam (key, value)
+{
// First make sure that we have to do any work at all
- var originalValue = getHashParam(key);
- var hash = window.location.hash;
- if (originalValue !== value) {
+ const originalValue = getHashParam(key);
+ const hash = window.location.hash;
+
+ if (originalValue !== value)
+ {
// Is the key already in the URL?
- if (typeof originalValue == 'string') {
+ if (typeof originalValue === 'string')
+ {
// Already in the URL. Just get rid of the original value
- var startIndex = (hash.indexOf('&' + key + '=') > 0) ? hash.indexOf('&' + key + '=') : hash.indexOf('#' + key + '=');
- var endIndex = startIndex + key.length + 2 + originalValue.length;
+ const startIndex = (hash.indexOf('&' + key + '=') > 0) ? hash.indexOf('&' + key + '=') : hash.indexOf('#' + key + '=');
+ const endIndex = startIndex + key.length + 2 + originalValue.length;
// # if it's the first, & otherwise
- var startThing = (startIndex === 0) ? '#' : '&';
+ const startThing = (startIndex === 0) ? '#' : '&';
window.location.replace(hash.substring(0, startIndex) + startThing + key + '=' + value + hash.substring(endIndex));
- } else {
+ }
+ else
+ {
// It's not present - add it
- if (hash.length === 0) {
+ if (hash.length === 0)
+ {
window.location.replace('#' + key + '=' + value);
- } else {
+ }
+ else
+ {
// Append it
window.location.replace(hash + '&' + key + '=' + value);
}
diff --git a/source/js/utils/jquery-extensions.js b/source/js/utils/jquery-extensions.js
deleted file mode 100644
index 95aaabdd..00000000
--- a/source/js/utils/jquery-extensions.js
+++ /dev/null
@@ -1,722 +0,0 @@
-/* jshint unused: false */
-
-var jQuery = require('jquery');
-
-/* istanbul ignore next This is a vendored dependency */
-/*
- * jQuery dragscrollable Plugin
- * version: 1.0 (25-Jun-2009)
- * Copyright (c) 2009 Miquel Herrera
- * http://plugins.jquery.com/project/Dragscrollable
- *
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
- *
- */
-(function ($) { // secure $ jQuery alias
-
- /**
- * Adds the ability to manage elements scroll by dragging
- * one or more of its descendant elements. Options parameter
- * allow to specifically select which inner elements will
- * respond to the drag events.
- *
- * options properties:
- * ------------------------------------------------------------------------
- * dragSelector | jquery selector to apply to each wrapped element
- * | to find which will be the dragging elements.
- * | Defaults to '>:first' which is the first child of
- * | scrollable element
- * ------------------------------------------------------------------------
- * acceptPropagatedEvent| Will the dragging element accept propagated
- * | events? default is yes, a propagated mouse event
- * | on a inner element will be accepted and processed.
- * | If set to false, only events originated on the
- * | draggable elements will be processed.
- * ------------------------------------------------------------------------
- * preventDefault | Prevents the event to propagate further effectivey
- * | dissabling other default actions. Defaults to true
- * ------------------------------------------------------------------------
- *
- * usage examples:
- *
- * To add the scroll by drag to the element id=viewport when dragging its
- * first child accepting any propagated events
- * $('#viewport').dragscrollable();
- *
- * To add the scroll by drag ability to any element div of class viewport
- * when dragging its first descendant of class dragMe responding only to
- * evcents originated on the '.dragMe' elements.
- * $('div.viewport').dragscrollable({dragSelector:'.dragMe:first',
- * acceptPropagatedEvent: false});
- *
- * Notice that some 'viewports' could be nested within others but events
- * would not interfere as acceptPropagatedEvent is set to false.
- *
- */
- $.fn.dragscrollable = function( options ){
-
- var settings = $.extend(
- {
- dragSelector:'>:first',
- acceptPropagatedEvent: true,
- preventDefault: true
- },options || {});
-
-
- var dragscroll= {
- mouseDownHandler : function(event) {
- // mousedown, left click, check propagation
- if (event.which!=1 ||
- (!event.data.acceptPropagatedEvent && event.target != this)){
- return false;
- }
-
- // Initial coordinates will be the last when dragging
- event.data.lastCoord = {left: event.clientX, top: event.clientY};
-
- $.event.add( document, "mouseup",
- dragscroll.mouseUpHandler, event.data );
- $.event.add( document, "mousemove",
- dragscroll.mouseMoveHandler, event.data );
- if (event.data.preventDefault) {
- event.preventDefault();
- return false;
- }
- },
- mouseMoveHandler : function(event) { // User is dragging
- // How much did the mouse move?
- var delta = {left: (event.clientX - event.data.lastCoord.left),
- top: (event.clientY - event.data.lastCoord.top)};
-
- // Set the scroll position relative to what ever the scroll is now
- event.data.scrollable.scrollLeft(
- event.data.scrollable.scrollLeft() - delta.left);
- event.data.scrollable.scrollTop(
- event.data.scrollable.scrollTop() - delta.top);
-
- // Save where the cursor is
- event.data.lastCoord={left: event.clientX, top: event.clientY};
- if (event.data.preventDefault) {
- event.preventDefault();
- return false;
- }
-
- },
- mouseUpHandler : function(event) { // Stop scrolling
- $.event.remove( document, "mousemove", dragscroll.mouseMoveHandler);
- $.event.remove( document, "mouseup", dragscroll.mouseUpHandler);
- if (event.data.preventDefault) {
- event.preventDefault();
- return false;
- }
- }
- };
-
- // set up the initial events
- this.each(function() {
- // closure object data for each scrollable element
- var data = {scrollable : $(this),
- acceptPropagatedEvent : settings.acceptPropagatedEvent,
- preventDefault : settings.preventDefault };
- // Set mouse initiating event on the desired descendant
- $(this).find(settings.dragSelector).
- bind('mousedown', data, dragscroll.mouseDownHandler);
- });
- }; //end plugin dragscrollable
-
-})( jQuery ); // confine scope
-
-/* istanbul ignore next This is a vendored dependency */
-/**
- jQuery.kinetic v2.2.1
- Dave Taylor http://davetayls.me
-
- @license The MIT License (MIT)
- @preserve Copyright (c) 2012 Dave Taylor http://davetayls.me
- */
-(function ($){
- 'use strict';
-
- var ACTIVE_CLASS = 'kinetic-active';
-
- /**
- * Provides requestAnimationFrame in a cross browser way.
- * http://paulirish.com/2011/requestanimationframe-for-smart-animating/
- */
- if (!window.requestAnimationFrame){
-
- window.requestAnimationFrame = ( function (){
-
- return window.webkitRequestAnimationFrame ||
- window.mozRequestAnimationFrame ||
- window.oRequestAnimationFrame ||
- window.msRequestAnimationFrame ||
- function (/* function FrameRequestCallback */ callback, /* DOMElement Element */ element){
- window.setTimeout(callback, 1000 / 60);
- };
-
- }());
-
- }
-
- // add touch checker to jQuery.support
- $.support = $.support || {};
- $.extend($.support, {
- touch: 'ontouchend' in document
- });
-
-
- // KINETIC CLASS DEFINITION
- // ======================
-
- var Kinetic = function (element, settings) {
- this.settings = settings;
- this.el = element;
- this.$el = $(element);
-
- this._initElements();
-
- return this;
- };
-
- Kinetic.DATA_KEY = 'kinetic';
- Kinetic.DEFAULTS = {
- cursor: 'move',
- decelerate: true,
- triggerHardware: false,
- threshold: 0,
- y: true,
- x: true,
- slowdown: 0.9,
- maxvelocity: 40,
- throttleFPS: 60,
- invert: false,
- movingClass: {
- up: 'kinetic-moving-up',
- down: 'kinetic-moving-down',
- left: 'kinetic-moving-left',
- right: 'kinetic-moving-right'
- },
- deceleratingClass: {
- up: 'kinetic-decelerating-up',
- down: 'kinetic-decelerating-down',
- left: 'kinetic-decelerating-left',
- right: 'kinetic-decelerating-right'
- }
- };
-
-
- // Public functions
-
- Kinetic.prototype.start = function (options){
- this.settings = $.extend(this.settings, options);
- this.velocity = options.velocity || this.velocity;
- this.velocityY = options.velocityY || this.velocityY;
- this.settings.decelerate = false;
- this._move();
- };
-
- Kinetic.prototype.end = function (){
- this.settings.decelerate = true;
- };
-
- Kinetic.prototype.stop = function (){
- this.velocity = 0;
- this.velocityY = 0;
- this.settings.decelerate = true;
- if ($.isFunction(this.settings.stopped)){
- this.settings.stopped.call(this);
- }
- };
-
- Kinetic.prototype.detach = function (){
- this._detachListeners();
- this.$el
- .removeClass(ACTIVE_CLASS)
- .css('cursor', '');
- };
-
- Kinetic.prototype.attach = function (){
- if (this.$el.hasClass(ACTIVE_CLASS)) {
- return;
- }
- this._attachListeners(this.$el);
- this.$el
- .addClass(ACTIVE_CLASS)
- .css('cursor', this.settings.cursor);
- };
-
-
- // Internal functions
-
- Kinetic.prototype._initElements = function (){
- this.$el.addClass(ACTIVE_CLASS);
-
- $.extend(this, {
- xpos: null,
- prevXPos: false,
- ypos: null,
- prevYPos: false,
- mouseDown: false,
- throttleTimeout: 1000 / this.settings.throttleFPS,
- lastMove: null,
- elementFocused: null
- });
-
- this.velocity = 0;
- this.velocityY = 0;
-
- // make sure we reset everything when mouse up
- $(document)
- .mouseup($.proxy(this._resetMouse, this))
- .click($.proxy(this._resetMouse, this));
-
- this._initEvents();
-
- this.$el.css('cursor', this.settings.cursor);
-
- if (this.settings.triggerHardware){
- this.$el.css({
- '-webkit-transform': 'translate3d(0,0,0)',
- '-webkit-perspective': '1000',
- '-webkit-backface-visibility': 'hidden'
- });
- }
- };
-
- Kinetic.prototype._initEvents = function(){
- var self = this;
- this.settings.events = {
- touchStart: function (e){
- var touch;
- if (self._useTarget(e.target, e)){
- touch = e.originalEvent.touches[0];
- self.threshold = self._threshold(e.target, e);
- self._start(touch.clientX, touch.clientY);
- e.stopPropagation();
- }
- },
- touchMove: function (e){
- var touch;
- if (self.mouseDown){
- touch = e.originalEvent.touches[0];
- self._inputmove(touch.clientX, touch.clientY);
- if (e.preventDefault){
- e.preventDefault();
- }
- }
- },
- inputDown: function (e){
- if (self._useTarget(e.target, e)){
- self.threshold = self._threshold(e.target, e);
- self._start(e.clientX, e.clientY);
- self.elementFocused = e.target;
- if (e.target.nodeName === 'IMG'){
- e.preventDefault();
- }
- e.stopPropagation();
- }
- },
- inputEnd: function (e){
- if (self._useTarget(e.target, e)){
- self._end();
- self.elementFocused = null;
- if (e.preventDefault){
- e.preventDefault();
- }
- }
- },
- inputMove: function (e){
- if (self.mouseDown){
- self._inputmove(e.clientX, e.clientY);
- if (e.preventDefault){
- e.preventDefault();
- }
- }
- },
- scroll: function (e){
- if ($.isFunction(self.settings.moved)){
- self.settings.moved.call(self, self.settings);
- }
- if (e.preventDefault){
- e.preventDefault();
- }
- },
- inputClick: function (e){
- if (Math.abs(self.velocity) > 0){
- e.preventDefault();
- return false;
- }
- },
- // prevent drag and drop images in ie
- dragStart: function (e){
- if (self._useTarget(e.target, e) && self.elementFocused){
- return false;
- }
- },
- // prevent selection when dragging
- selectStart: function (e){
- if ($.isFunction(self.settings.selectStart)){
- return self.settings.selectStart.apply(self, arguments);
- } else if (self._useTarget(e.target, e)) {
- return false;
- }
- }
- };
-
- this._attachListeners(this.$el, this.settings);
-
- };
-
- Kinetic.prototype._inputmove = function (clientX, clientY){
- var $this = this.$el;
- var el = this.el;
-
- if (!this.lastMove || new Date() > new Date(this.lastMove.getTime() + this.throttleTimeout)){
- this.lastMove = new Date();
-
- if (this.mouseDown && (this.xpos || this.ypos)){
- var movedX = (clientX - this.xpos);
- var movedY = (clientY - this.ypos);
- if (this.settings.invert) {
- movedX *= -1;
- movedY *= -1;
- }
- if(this.threshold > 0){
- var moved = Math.sqrt(movedX * movedX + movedY * movedY);
- if(this.threshold > moved){
- return;
- } else {
- this.threshold = 0;
- }
- }
- if (this.elementFocused){
- $(this.elementFocused).blur();
- this.elementFocused = null;
- $this.focus();
- }
-
- this.settings.decelerate = false;
- this.velocity = this.velocityY = 0;
-
- var scrollLeft = this.scrollLeft();
- var scrollTop = this.scrollTop();
-
- this.scrollLeft(this.settings.x ? scrollLeft - movedX : scrollLeft);
- this.scrollTop(this.settings.y ? scrollTop - movedY : scrollTop);
-
- this.prevXPos = this.xpos;
- this.prevYPos = this.ypos;
- this.xpos = clientX;
- this.ypos = clientY;
-
- this._calculateVelocities();
- this._setMoveClasses(this.settings.movingClass);
-
- if ($.isFunction(this.settings.moved)){
- this.settings.moved.call(this, this.settings);
- }
- }
- }
- };
-
- Kinetic.prototype._calculateVelocities = function (){
- this.velocity = this._capVelocity(this.prevXPos - this.xpos, this.settings.maxvelocity);
- this.velocityY = this._capVelocity(this.prevYPos - this.ypos, this.settings.maxvelocity);
- if (this.settings.invert) {
- this.velocity *= -1;
- this.velocityY *= -1;
- }
- };
-
- Kinetic.prototype._end = function (){
- if (this.xpos && this.prevXPos && this.settings.decelerate === false){
- this.settings.decelerate = true;
- this._calculateVelocities();
- this.xpos = this.prevXPos = this.mouseDown = false;
- this._move();
- }
- };
-
- Kinetic.prototype._useTarget = function (target, event){
- if ($.isFunction(this.settings.filterTarget)){
- return this.settings.filterTarget.call(this, target, event) !== false;
- }
- return true;
- };
-
- Kinetic.prototype._threshold = function (target, event){
- if ($.isFunction(this.settings.threshold)){
- return this.settings.threshold.call(this, target, event);
- }
- return this.settings.threshold;
- };
-
- Kinetic.prototype._start = function (clientX, clientY){
- this.mouseDown = true;
- this.velocity = this.prevXPos = 0;
- this.velocityY = this.prevYPos = 0;
- this.xpos = clientX;
- this.ypos = clientY;
- };
-
- Kinetic.prototype._resetMouse = function (){
- this.xpos = false;
- this.ypos = false;
- this.mouseDown = false;
- };
-
- Kinetic.prototype._decelerateVelocity = function (velocity, slowdown){
- return Math.floor(Math.abs(velocity)) === 0 ? 0 // is velocity less than 1?
- : velocity * slowdown; // reduce slowdown
- };
-
- Kinetic.prototype._capVelocity = function (velocity, max){
- var newVelocity = velocity;
- if (velocity > 0){
- if (velocity > max){
- newVelocity = max;
- }
- } else {
- if (velocity < (0 - max)){
- newVelocity = (0 - max);
- }
- }
- return newVelocity;
- };
-
- Kinetic.prototype._setMoveClasses = function (classes){
- // FIXME: consider if we want to apply PL #44, this should not remove
- // classes we have not defined on the element!
- var settings = this.settings;
- var $this = this.$el;
-
- $this.removeClass(settings.movingClass.up)
- .removeClass(settings.movingClass.down)
- .removeClass(settings.movingClass.left)
- .removeClass(settings.movingClass.right)
- .removeClass(settings.deceleratingClass.up)
- .removeClass(settings.deceleratingClass.down)
- .removeClass(settings.deceleratingClass.left)
- .removeClass(settings.deceleratingClass.right);
-
- if (this.velocity > 0){
- $this.addClass(classes.right);
- }
- if (this.velocity < 0){
- $this.addClass(classes.left);
- }
- if (this.velocityY > 0){
- $this.addClass(classes.down);
- }
- if (this.velocityY < 0){
- $this.addClass(classes.up);
- }
-
- };
-
-
- // do the actual kinetic movement
- Kinetic.prototype._move = function (){
- var $scroller = this._getScroller();
- var scroller = $scroller[0];
- var self = this;
- var settings = self.settings;
-
- // set scrollLeft
- if (settings.x && scroller.scrollWidth > 0){
- this.scrollLeft(this.scrollLeft() + this.velocity);
- if (Math.abs(this.velocity) > 0){
- this.velocity = settings.decelerate ?
- self._decelerateVelocity(this.velocity, settings.slowdown) : this.velocity;
- }
- } else {
- this.velocity = 0;
- }
-
- // set scrollTop
- if (settings.y && scroller.scrollHeight > 0){
- this.scrollTop(this.scrollTop() + this.velocityY);
- if (Math.abs(this.velocityY) > 0){
- this.velocityY = settings.decelerate ?
- self._decelerateVelocity(this.velocityY, settings.slowdown) : this.velocityY;
- }
- } else {
- this.velocityY = 0;
- }
-
- self._setMoveClasses(settings.deceleratingClass);
-
- if ($.isFunction(settings.moved)){
- settings.moved.call(this, settings);
- }
-
- if (Math.abs(this.velocity) > 0 || Math.abs(this.velocityY) > 0){
- if (!this.moving) {
- this.moving = true;
- // tick for next movement
- window.requestAnimationFrame(function (){
- self.moving = false;
- self._move();
- });
- }
- } else {
- self.stop();
- }
- };
-
- // get current scroller to apply positioning to
- Kinetic.prototype._getScroller = function(){
- var $scroller = this.$el;
- if (this.$el.is('body') || this.$el.is('html')){
- $scroller = $(window);
- }
- return $scroller;
- };
-
- // set the scroll position
- Kinetic.prototype.scrollLeft = function(left){
- var $scroller = this._getScroller();
- if (typeof left === 'number'){
- $scroller.scrollLeft(left);
- this.settings.scrollLeft = left;
- } else {
- return $scroller.scrollLeft();
- }
- };
- Kinetic.prototype.scrollTop = function(top){
- var $scroller = this._getScroller();
- if (typeof top === 'number'){
- $scroller.scrollTop(top);
- this.settings.scrollTop = top;
- } else {
- return $scroller.scrollTop();
- }
- };
-
- Kinetic.prototype._attachListeners = function (){
- var $this = this.$el;
- var settings = this.settings;
-
- if ($.support.touch){
- $this
- .bind('touchstart', settings.events.touchStart)
- .bind('touchend', settings.events.inputEnd)
- .bind('touchmove', settings.events.touchMove);
- }
-
- $this
- .mousedown(settings.events.inputDown)
- .mouseup(settings.events.inputEnd)
- .mousemove(settings.events.inputMove);
-
- $this
- .click(settings.events.inputClick)
- .scroll(settings.events.scroll)
- .bind('selectstart', settings.events.selectStart)
- .bind('dragstart', settings.events.dragStart);
- };
-
- Kinetic.prototype._detachListeners = function (){
- var $this = this.$el;
- var settings = this.settings;
- if ($.support.touch){
- $this
- .unbind('touchstart', settings.events.touchStart)
- .unbind('touchend', settings.events.inputEnd)
- .unbind('touchmove', settings.events.touchMove);
- }
-
- $this
- .unbind('mousedown', settings.events.inputDown)
- .unbind('mouseup', settings.events.inputEnd)
- .unbind('mousemove', settings.events.inputMove);
-
- $this
- .unbind('click', settings.events.inputClick)
- .unbind('scroll', settings.events.scroll)
- .unbind('selectstart', settings.events.selectStart)
- .unbind('dragstart', settings.events.dragStart);
- };
-
-
- // EXPOSE KINETIC CONSTRUCTOR
- // ==========================
- $.Kinetic = Kinetic;
-
- // KINETIC PLUGIN DEFINITION
- // =======================
-
- $.fn.kinetic = function (option, callOptions) {
- return this.each(function () {
- var $this = $(this);
- var instance = $this.data(Kinetic.DATA_KEY);
- var options = $.extend({}, Kinetic.DEFAULTS, $this.data(), typeof option === 'object' && option);
-
- if (!instance) {
- $this.data(Kinetic.DATA_KEY, (instance = new Kinetic(this, options)));
- }
-
- if (typeof option === 'string') {
- instance[option](callOptions);
- }
-
- });
- };
-
-}(jQuery));
-
-/* istanbul ignore next
- We should maybe be testing this, but realistically that would mean maintaining a real fork */
-
-// jQuery.kinetic core modifications for diva.js (compatible with jQuery.kinetic 2.2.1)
-// use jQuery.kinetic for touch handlers only since we are using dragscrollable for mouse handlers
-// - (kinetic provides inertial scrolling [ease into stopped state on release] for touch events and dragscrollable
-// allows non-inertial scrolling which we like for mice)
-
-(function($)
-{
- $.Kinetic.prototype._attachListeners = function()
- {
- // attach only touch listeners
- var $this = this.$el;
- var settings = this.settings;
-
- if ($.support.touch)
- {
- $this
- .bind('touchstart', settings.events.touchStart)
- .bind('touchend', settings.events.inputEnd)
- .bind('touchmove', settings.events.touchMove);
- }
-
- $this
- .click(settings.events.inputClick)
- .scroll(settings.events.scroll)
- .bind('selectstart', settings.events.selectStart)
- .bind('dragstart', settings.events.dragStart);
- };
-
- $.Kinetic.prototype._detachListeners = function()
- {
- // detach only touch listeners
- var $this = this.$el;
- var settings = this.settings;
-
- if ($.support.touch)
- {
- $this
- .unbind('touchstart', settings.events.touchStart)
- .unbind('touchend', settings.events.inputEnd)
- .unbind('touchmove', settings.events.touchMove);
- }
-
- $this
- .unbind('click', settings.events.inputClick)
- .unbind('scroll', settings.events.scroll)
- .unbind('selectstart', settings.events.selectStart)
- .unbind('dragstart', settings.events.dragStart);
- };
-})(jQuery);
diff --git a/source/js/utils/parse-label-value.js b/source/js/utils/parse-label-value.js
new file mode 100644
index 00000000..0860cb57
--- /dev/null
+++ b/source/js/utils/parse-label-value.js
@@ -0,0 +1,34 @@
+/**
+ * Parses a v3 manifest's label/value pair from an object & array to a string
+ *
+ * @public
+ * @params {string} key - The key from which a label/value pair should be extracted.
+ * @returns {object} - The label/value pair as strings.
+ * */
+
+export default function parseLabelValue (key)
+{
+ let l = key.label;
+ let label = (typeof l === 'object') ? l[Object.keys(l)[0]][0] : l;
+
+ let v = key.value;
+ let value;
+ if (Array.isArray(v))
+ { // is array of objects
+ value = v.map(e => e[Object.keys(e)[0]]);
+ }
+ else
+ { // is object where value is possibly an array
+ value = (typeof v === 'object') ? v[Object.keys(v)[0]] : v;
+ }
+
+ if (Array.isArray(value))
+ {
+ value = value.join(', ');
+ }
+
+ return {
+ label: label,
+ value: value
+ };
+}
\ No newline at end of file
diff --git a/source/js/utils/vanilla.kinetic.js b/source/js/utils/vanilla.kinetic.js
new file mode 100644
index 00000000..38798779
--- /dev/null
+++ b/source/js/utils/vanilla.kinetic.js
@@ -0,0 +1,527 @@
+/*
+ The MIT License (MIT)
+ Copyright (c) <2011>
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is furnished
+ to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ Port to vanilla Javascript by Jacek Nowacki http://jacek-nowacki.net/
+**/
+
+(function() {
+ var _raf = window.requestAnimationFrame;
+
+ var _isTouch = 'ontouchend' in document;
+
+ // this is simple, no "deep" support
+ var _extend = function() {
+ for (var i=1; i 0 || Math.abs(self.velocityY) > 0) {
+ e.preventDefault();
+ if (e.stopPropagation) {
+ e.stopPropagation();
+ }
+ return false;
+ }
+ },
+ dragStart: function(e) {
+ if (self._useTarget(e.target, e) && self.elementFocused) {
+ if (e.preventDefault) {
+ e.preventDefault();
+ }
+ if (e.stopPropagation) {
+ e.stopPropagation();
+ }
+ return false;
+ }
+ },
+ selectStart: function(e) {
+ if (typeof self.settings.selectStart === 'function') {
+ return self.settings.selectStart.apply(self, arguments);
+ }
+ else if (self._useTarget(e.target, e)) {
+ if (e.preventDefault) {
+ e.preventDefault();
+ }
+ if (e.stopPropagation) {
+ e.stopPropagation();
+ }
+ return false;
+ }
+ }
+ };
+
+ this._attachListeners();
+ };
+
+ VanillaKinetic.prototype._inputmove = function(clientX, clientY) {
+ if (!this.lastMove || new Date() > new Date(this.lastMove.getTime() + this.throttleTimeout)) {
+ this.lastMove = new Date();
+
+ if (this.mouseDown && (this.xpos || this.ypos)) {
+ var movedX = (clientX - this.xpos);
+ var movedY = (clientY - this.ypos);
+ if (this.settings.invert) {
+ movedX *= -1;
+ movedY *= -1;
+ }
+ if (this.threshold>0) {
+ var moved = Math.sqrt(movedX*movedX + movedY*movedY);
+ if (this.threshold>moved) {
+ return;
+ }
+ else {
+ this.threshold = 0;
+ }
+ }
+ if (this.elementFocused) {
+ this.elementFocused.blur();
+ this.elementFocused = null;
+ this.el.focus();
+ }
+
+ this.settings.decelerate = false;
+ this.velocity = this.velocityY = 0;
+
+ var scrollLeft = this.scrollLeft();
+ var scrollTop = this.scrollTop();
+
+ this.scrollLeft(this.settings.x ? scrollLeft - movedX : scrollLeft);
+ this.scrollTop(this.settings.y ? scrollTop - movedY : scrollTop);
+
+ this.prevXPos = this.xpos;
+ this.prevYPos = this.ypos;
+ this.xpos = clientX;
+ this.ypos = clientY;
+
+ this._calculateVelocities();
+ this._setMoveClasses(this.settings.movingClass);
+
+ if (typeof this.settings.moved === 'function') {
+ this.settings.moved.call(this, this.settings);
+ }
+ }
+ }
+ };
+
+ VanillaKinetic.prototype._calculateVelocities = function() {
+ this.velocity = this._capVelocity(this.prevXPos - this.xpos, this.settings.maxvelocity);
+ this.velocityY = this._capVelocity(this.prevYPos - this.ypos, this.settings.maxvelocity);
+ if (this.settings.invert) {
+ this.velocity *= -1;
+ this.velocityY *= -1;
+ }
+ };
+
+ VanillaKinetic.prototype._end = function() {
+ if (this.xpos && this.prevXPos && this.settings.decelerate === false) {
+ this.settings.decelerate = true;
+ this._calculateVelocities();
+ this.xpos = this.prevXPos = this.mouseDown = false;
+ this._move();
+ }
+ };
+
+ VanillaKinetic.prototype._useTarget = function(target, event) {
+ if (typeof this.settings.filterTarget === 'function') {
+ return this.settings.filterTarget.call(this, target, event) !== false;
+ }
+ return true;
+
+ };
+
+ VanillaKinetic.prototype._threshold = function(target, event) {
+ if (typeof this.settings.threshold === 'function') {
+ return this.settings.threshold.call(this, target, event);
+ }
+ return this.settings.threshold;
+ };
+
+ VanillaKinetic.prototype._start = function(clientX, clientY) {
+ this.mouseDown = true;
+ this.velocity = this.prevXPos = 0;
+ this.velocityY = this.prevYPos = 0;
+ this.xpos = clientX;
+ this.ypos = clientY;
+ };
+
+ VanillaKinetic.prototype._resetMouse = function() {
+ this.xpos = false;
+ this.ypos = false;
+ this.mouseDown = false;
+ };
+
+ VanillaKinetic.prototype._decelerateVelocity = function(velocity, slowdown) {
+ return Math.floor(Math.abs(velocity)) === 0 ? 0 // is velocity less than 1?
+ : velocity * slowdown; // reduce slowdown
+ };
+
+ VanillaKinetic.prototype._capVelocity = function(velocity, max) {
+ var newVelocity = velocity;
+ if (velocity > 0){
+ if (velocity > max){
+ newVelocity = max;
+ }
+ } else {
+ if (velocity < (0 - max)){
+ newVelocity = (0 - max);
+ }
+ }
+ return newVelocity;
+ };
+
+ VanillaKinetic.prototype._setMoveClasses = function(classes) {
+ // The fix-me comment below is from original jQuery.kinetic project
+ // FIXME: consider if we want to apply PL #44, this should not remove
+ // classes we have not defined on the element!
+ var settings = this.settings;
+ var el = this.el;
+
+ el.classList.remove(settings.movingClass.up);
+ el.classList.remove(settings.movingClass.down);
+ el.classList.remove(settings.movingClass.left);
+ el.classList.remove(settings.movingClass.right);
+ el.classList.remove(settings.deceleratingClass.up);
+ el.classList.remove(settings.deceleratingClass.down);
+ el.classList.remove(settings.deceleratingClass.left);
+ el.classList.remove(settings.deceleratingClass.right);
+
+ if (this.velocity > 0){
+ el.classList.add(classes.right);
+ }
+ if (this.velocity < 0){
+ el.classList.add(classes.left);
+ }
+ if (this.velocityY > 0){
+ el.classList.add(classes.down);
+ }
+ if (this.velocityY < 0){
+ el.classList.add(classes.up);
+ }
+ };
+
+ VanillaKinetic.prototype._move = function() {
+ var scroller = this._getScroller();
+ var self = this;
+ var settings = this.settings;
+
+ if (settings.x && scroller.scrollWidth > 0) {
+ this.scrollLeft(this.scrollLeft() + this.velocity);
+ if (Math.abs(this.velocity) > 0) {
+ this.velocity = settings.decelerate ?
+ self._decelerateVelocity(this.velocity, settings.slowdown) : this.velocity;
+ }
+ }
+ else {
+ this.velocity = 0;
+ }
+
+ if (settings.y && scroller.scrollHeight > 0){
+ this.scrollTop(this.scrollTop() + this.velocityY);
+ if (Math.abs(this.velocityY) > 0){
+ this.velocityY = settings.decelerate ?
+ self._decelerateVelocity(this.velocityY, settings.slowdown) : this.velocityY;
+ }
+ }
+ else {
+ this.velocityY = 0;
+ }
+
+ self._setMoveClasses(settings.deceleratingClass);
+
+ if (typeof settings.moved === 'function'){
+ settings.moved.call(this, settings);
+ }
+
+ if (Math.abs(this.velocity) > 0 || Math.abs(this.velocityY) > 0){
+ if (!this.moving) {
+ this.moving = true;
+ // tick for next movement
+ _raf(function() {
+ self.moving = false;
+ self._move();
+ });
+ }
+ }
+ else {
+ self.stop();
+ }
+ };
+
+ VanillaKinetic.prototype._getScroller = function() {
+ // FIXME we may want to normalize behaviour across browsers as in original jQuery.kinetic
+ // currently this won't work correctly on all brwosers when attached to html or body element
+ return this.el;
+ };
+
+ VanillaKinetic.prototype.scrollLeft = function(left) {
+ var scroller = this._getScroller();
+ if (typeof left === 'number') {
+ scroller.scrollLeft = left;
+ this.settings.scrollLeft = left;
+ }
+ else {
+ return scroller.scrollLeft;
+ }
+ };
+
+ VanillaKinetic.prototype.scrollTop = function(top) {
+ var scroller = this._getScroller();
+ if (typeof top === 'number') {
+ scroller.scrollTop = top;
+ this.settings.scrollTop = top;
+ }
+ else {
+ return scroller.scrollTop;
+ }
+ };
+
+ VanillaKinetic.prototype._attachListeners = function() {
+ var el = this.el;
+ var settings = this.settings;
+
+ if (_isTouch) {
+ el.addEventListener('touchstart', settings.events.touchStart, false);
+ el.addEventListener('touchend', settings.events.inputEnd, false);
+ el.addEventListener('touchmove', settings.events.touchMove, false);
+ }
+
+ el.addEventListener('mousedown', settings.events.inputDown, false);
+ el.addEventListener('mouseup', settings.events.inputEnd, false);
+ el.addEventListener('mousemove', settings.events.inputMove, false);
+
+ el.addEventListener('click', settings.events.inputClick, false);
+ el.addEventListener('scroll', settings.events.scroll, false);
+ el.addEventListener('selectstart', settings.events.selectStart, false);
+ el.addEventListener('dragstart', settings.events.dragStart, false);
+ };
+
+ VanillaKinetic.prototype._detachListeners = function() {
+ var el = this.el;
+ var settings = this.settings;
+
+ if (_isTouch) {
+ el.removeEventListener('touchstart', settings.events.touchStart, false);
+ el.removeEventListener('touchend', settings.events.inputEnd, false);
+ el.removeEventListener('touchmove', settings.events.touchMove, false);
+ }
+
+ el.removeEventListener('mousedown', settings.events.inputDown, false);
+ el.removeEventListener('mouseup', settings.events.inputEnd, false);
+ el.removeEventListener('mousemove', settings.events.inputMove, false);
+
+ el.removeEventListener('click', settings.events.inputClick, false);
+ el.removeEventListener('scroll', settings.events.scroll, false);
+ el.removeEventListener('selectstart', settings.events.selectStart, false);
+ el.removeEventListener('dragstart', settings.events.dragStart, false);
+ };
+
+
+ window.VanillaKinetic = VanillaKinetic;
+})();
diff --git a/source/js/validation-runner.js b/source/js/validation-runner.js
index adac0e86..2946d20b 100644
--- a/source/js/validation-runner.js
+++ b/source/js/validation-runner.js
@@ -1,101 +1,110 @@
-var extend = require('jquery').extend;
-
-module.exports = ValidationRunner;
-
-function ValidationRunner(options)
-{
- this.whitelistedKeys = options.whitelistedKeys || [];
- this.additionalProperties = options.additionalProperties || [];
- this.validations = options.validations;
-}
-
-ValidationRunner.prototype.isValid = function (key, value, settings)
+export default class ValidationRunner
{
- // Get the validation index
- var validationIndex = null;
-
- this.validations.some(function (validation, index)
+ constructor (options)
{
- if (validation.key !== key)
- return false;
+ this.whitelistedKeys = options.whitelistedKeys || [];
+ this.additionalProperties = options.additionalProperties || [];
+ this.validations = options.validations;
+ }
- validationIndex = index;
- return true;
- });
+ isValid (key, value, settings)
+ {
+ // Get the validation index
+ let validationIndex = null;
- if (validationIndex === null)
- return true;
+ this.validations.some((validation, index) =>
+ {
+ if (validation.key !== key)
+ {
+ return false;
+ }
- // Run the validation
- var dummyChanges = {};
- dummyChanges[key] = value;
- var proxier = createSettingsProxier(settings, dummyChanges, this);
+ validationIndex = index;
+ return true;
+ });
- return !this._runValidation(validationIndex, value, proxier);
-};
+ if (validationIndex === null)
+ {
+ return true;
+ }
-ValidationRunner.prototype.validate = function (settings)
-{
- this._validateOptions({}, settings);
-};
+ // Run the validation
+ const dummyChanges = {};
+ dummyChanges[key] = value;
+ const proxier = createSettingsProxier(settings, dummyChanges, this);
-ValidationRunner.prototype.getValidatedOptions = function (settings, options)
-{
- var cloned = extend({}, options);
- this._validateOptions(settings, cloned);
- return cloned;
-};
+ return !this._runValidation(validationIndex, value, proxier);
+ }
-ValidationRunner.prototype._validateOptions = function (settings, options)
-{
- var settingsProxier = createSettingsProxier(settings, options, this);
- this._applyValidations(options, settingsProxier);
-};
+ validate (settings)
+ {
+ this._validateOptions({}, settings);
+ }
-ValidationRunner.prototype._applyValidations = function (options, proxier)
-{
- this.validations.forEach(function (validation, index)
+ getValidatedOptions (settings, options)
{
- if (!options.hasOwnProperty(validation.key))
- return;
+ const cloned = Object.assign({}, options);
+ this._validateOptions(settings, cloned);
+ return cloned;
+ }
- var input = options[validation.key];
- var corrected = this._runValidation(index, input, proxier);
+ _validateOptions (settings, options)
+ {
+ const settingsProxier = createSettingsProxier(settings, options, this);
+ this._applyValidations(options, settingsProxier);
+ }
- if (corrected)
+ _applyValidations (options, proxier)
+ {
+ this.validations.forEach((validation, index) =>
{
- if (!corrected.warningSuppressed)
- emitWarning(validation.key, input, corrected.value);
+ if (!options.hasOwnProperty(validation.key))
+ {
+ return;
+ }
- options[validation.key] = corrected.value;
- }
- }, this);
-};
+ const input = options[validation.key];
+ const corrected = this._runValidation(index, input, proxier);
-ValidationRunner.prototype._runValidation = function (index, input, proxier)
-{
- var validation = this.validations[index];
+ if (corrected)
+ {
+ if (!corrected.warningSuppressed)
+ {
+ emitWarning(validation.key, input, corrected.value);
+ }
+
+ options[validation.key] = corrected.value;
+ }
+ }, this);
+ }
- proxier.index = index;
+ _runValidation (index, input, proxier)
+ {
+ const validation = this.validations[index];
- var warningSuppressed = false;
- var config = {
- suppressWarning: function ()
- {
- warningSuppressed = true;
- }
- };
+ proxier.index = index;
- var outputValue = validation.validate(input, proxier.proxy, config);
+ let warningSuppressed = false;
+ const config = {
+ suppressWarning: () =>
+ {
+ warningSuppressed = true;
+ }
+ };
- if (outputValue === undefined || outputValue === input)
- return null;
+ const outputValue = validation.validate(input, proxier.proxy, config);
- return {
- value: outputValue,
- warningSuppressed: warningSuppressed
- };
-};
+ if (outputValue === undefined || outputValue === input)
+ {
+ return null;
+ }
+
+ return {
+ value: outputValue,
+ warningSuppressed: warningSuppressed
+ };
+ }
+}
/**
* The settings proxy wraps the settings object and ensures that
@@ -106,40 +115,42 @@ ValidationRunner.prototype._runValidation = function (index, input, proxier)
* multiple validation stages and it was a lot harder to keep track
* of everything, so this was more valuable.
*/
-function createSettingsProxier(settings, options, runner)
+function createSettingsProxier (settings, options, runner)
{
- var proxier = {
+ const proxier = {
proxy: {},
index: null
};
- var lookup = lookupValue.bind(null, settings, options);
+ const lookup = lookupValue.bind(null, settings, options);
- var properties = {};
+ const properties = {};
- runner.whitelistedKeys.forEach(function (whitelisted)
+ runner.whitelistedKeys.forEach((whitelisted) =>
{
properties[whitelisted] = {
get: lookup.bind(null, whitelisted)
};
});
- runner.additionalProperties.forEach(function (additional)
+ runner.additionalProperties.forEach((additional) =>
{
properties[additional.key] = {
get: additional.get
};
});
- runner.validations.forEach(function (validation, validationIndex)
+ runner.validations.forEach( (validation, validationIndex) =>
{
properties[validation.key] = {
- get: function ()
+ get: () =>
{
if (validationIndex < proxier.index)
+ {
return lookup(validation.key);
+ }
- var currentKey = runner.validations[proxier.index].key;
+ const currentKey = runner.validations[proxier.index].key;
throw new TypeError('Cannot access setting ' + validation.key + ' while validating ' + currentKey);
}
};
@@ -150,15 +161,17 @@ function createSettingsProxier(settings, options, runner)
return proxier;
}
-function emitWarning(key, original, corrected)
+function emitWarning (key, original, corrected)
{
console.warn('Invalid value for ' + key + ': ' + original + '. Using ' + corrected + ' instead.');
}
-function lookupValue(base, extension, key)
+function lookupValue (base, extension, key)
{
if (key in extension)
+ {
return extension[key];
+ }
return base[key];
}
diff --git a/source/js/viewer-core.js b/source/js/viewer-core.js
index 0ffddf2d..0a805af3 100644
--- a/source/js/viewer-core.js
+++ b/source/js/viewer-core.js
@@ -1,31 +1,29 @@
-var $ = require('jquery');
+import { elt } from './utils/elt';
+import getScrollbarWidth from './utils/get-scrollbar-width';
+import gestureEvents from './gesture-events';
+import diva from './diva-global';
+import DocumentHandler from './document-handler';
+import GridHandler from './grid-handler';
+import PageOverlayManager from './page-overlay-manager';
+import Renderer from './renderer';
+import getPageLayouts from './page-layouts';
+import createSettingsView from './settings-view';
+import ValidationRunner from './validation-runner';
+import Viewport from './viewport';
+
+const debug = require('debug')('diva:ViewerCore');
-require('./utils/jquery-extensions');
-
-var elt = require('./utils/elt');
-var getScrollbarWidth = require('./utils/get-scrollbar-width');
-
-var gestureEvents = require('./gesture-events');
-var diva = require('./diva-global');
-var DocumentHandler = require('./document-handler');
-var GridHandler = require('./grid-handler');
-var PageOverlayManager = require('./page-overlay-manager');
-var PluginRegistry = require('./plugin-registry');
-var Renderer = require('./renderer');
-var getPageLayouts = require('./page-layouts');
-var createSettingsView = require('./settings-view');
-var ValidationRunner = require('./validation-runner');
-var Viewport = require('./viewport');
-
-var debug = require('debug')('diva:ViewerCore');
+function generateId() {
+ return generateId.counter++;
+}
+generateId.counter = 1;
-module.exports = ViewerCore;
// Define validations
-var optionsValidations = [
+const optionsValidations = [
{
key: 'goDirectlyTo',
- validate: function (value, settings)
+ validate: (value, settings) =>
{
if (value < 0 || value >= settings.manifest.pages.length)
return 0;
@@ -33,21 +31,21 @@ var optionsValidations = [
},
{
key: 'minPagesPerRow',
- validate: function (value)
+ validate: (value) =>
{
return Math.max(2, value);
}
},
{
key: 'maxPagesPerRow',
- validate: function (value, settings)
+ validate: (value, settings) =>
{
return Math.max(value, settings.minPagesPerRow);
}
},
{
key: 'pagesPerRow',
- validate: function (value, settings)
+ validate: (value, settings) =>
{
// Default to the maximum
if (value < settings.minPagesPerRow || value > settings.maxPagesPerRow)
@@ -56,7 +54,7 @@ var optionsValidations = [
},
{
key: 'maxZoomLevel',
- validate: function (value, settings, config)
+ validate: (value, settings, config) =>
{
// Changing this value isn't really an error, it just depends on the
// source manifest
@@ -68,7 +66,7 @@ var optionsValidations = [
},
{
key: 'minZoomLevel',
- validate: function (value, settings, config)
+ validate: (value, settings, config) =>
{
// Changes based on the manifest value shouldn't trigger a
// warning
@@ -84,7 +82,7 @@ var optionsValidations = [
},
{
key: 'zoomLevel',
- validate: function (value, settings, config)
+ validate: (value, settings, config) =>
{
if (value > settings.manifest.maxZoom)
{
@@ -98,215 +96,296 @@ var optionsValidations = [
}
];
-function ViewerCore(element, options, publicInstance)
+export default class ViewerCore
{
- var self = this;
- var parentObject = $(element);
-
- // Things that cannot be changed because of the way they are used by the script
- // Many of these are declared with arbitrary values that are changed later on
- var viewerState = {
- currentPageIndex: 0, // The current page in the viewport (center-most page)
- horizontalOffset: 0, // Distance from the center of the diva element to the top of the current page
- horizontalPadding: 0, // Either the fixed padding or adaptive padding
- ID: null, // The prefix of the IDs of the elements (usually 1-diva-)
- initialKeyScroll: false, // Holds the initial state of enableKeyScroll
- initialSpaceScroll: false, // Holds the initial state of enableSpaceScroll
- innerElement: null, // The native .diva-outer DOM object
- innerObject: {}, // $(settings.ID + 'inner'), for selecting the .diva-inner element
- isActiveDiva: true, // In the case that multiple diva panes exist on the same page, this should have events funneled to it.
- isScrollable: true, // Used in enable/disableScrollable public methods
- isZooming: false, // Flag to keep track of whether zooming is still in progress, for handleZoom
- loaded: false, // A flag for when everything is loaded and ready to go.
- manifest: null,
- mobileWebkit: false, // Checks if the user is on a touch device (iPad/iPod/iPhone/Android)
- numPages: 0, // Number of pages in the array
- oldZoomLevel: -1, // Holds the previous zoom level after zooming in or out
- options: options,
- outerElement: null, // The native .diva-outer DOM object
- outerObject: {}, // $(settings.ID + 'outer'), for selecting the .diva-outer element
- pageOverlays: new PageOverlayManager(),
- pageTools: [], // The plugins which are enabled as page tools
- parentObject: parentObject, // JQuery object referencing the parent element
- pendingManifestRequest: null, // Reference to the xhr request retrieving the manifest. Used to cancel the request on destroy()
- plugins: [], // Filled with the enabled plugins from the registry
- renderer: null,
- resizeTimer: -1, // Holds the ID of the timeout used when resizing the window (for clearing)
- scrollbarWidth: 0, // Set to the actual scrollbar width in init()
- selector: '', // Uses the generated ID prefix to easily select elements
- throbberTimeoutID: -1, // Holds the ID of the throbber loading timeout
- toolbar: null, // Holds an object with some toolbar-related functions
- verticalOffset: 0, // Distance from the center of the diva element to the left side of the current page
- verticalPadding: 0, // Either the fixed padding or adaptive padding
- viewHandler: null,
- viewport: null, // Object caching the viewport dimensions
- viewportElement: null,
- viewportObject: null
- };
-
- var settings = createSettingsView([options, viewerState]);
-
- // Aliases for compatibilty
- Object.defineProperties(settings, {
- // Height of the document viewer pane
- panelHeight: {
- get: function ()
- {
- return viewerState.viewport.height;
- }
- },
- // Width of the document viewer pane
- panelWidth: {
- get: function ()
- {
- return viewerState.viewport.width;
- }
- }
- });
+ constructor (element, options, publicInstance)
+ {
+ this.parentObject = element;
+ this.publicInstance = publicInstance;
+
+ // Things that cannot be changed because of the way they are used by the script
+ // Many of these are declared with arbitrary values that are changed later on
+ this.viewerState = {
+ currentPageIndices: [0], // The visible pages in the viewport
+ activePageIndex: 0, // The current 'active' page in the viewport
+ horizontalOffset: 0, // Distance from the center of the diva element to the top of the current page
+ horizontalPadding: 0, // Either the fixed padding or adaptive padding
+ ID: null, // The prefix of the IDs of the elements (usually 1-diva-)
+ initialKeyScroll: false, // Holds the initial state of enableKeyScroll
+ initialSpaceScroll: false, // Holds the initial state of enableSpaceScroll
+ innerElement: null, // The native .diva-outer DOM object
+ innerObject: {}, // document.getElementById(settings.ID + 'inner'), for selecting the .diva-inner element
+ isActiveDiva: true, // In the case that multiple diva panes exist on the same page, this should have events funneled to it.
+ isScrollable: true, // Used in enable/disableScrollable public methods
+ isZooming: false, // Flag to keep track of whether zooming is still in progress, for handleZoom
+ loaded: false, // A flag for when everything is loaded and ready to go.
+ manifest: null,
+ mobileWebkit: false, // Checks if the user is on a touch device (iPad/iPod/iPhone/Android)
+ numPages: 0, // Number of pages in the array
+ oldZoomLevel: -1, // Holds the previous zoom level after zooming in or out
+ options: options,
+ outerElement: null, // The native .diva-outer DOM object
+ outerObject: {}, // document.getElementById(settings.ID + 'outer'), for selecting the .diva-outer element
+ pageOverlays: new PageOverlayManager(),
+ pageTools: [], // The plugins which are enabled as page tools
+ parentObject: this.parentObject, // JQuery object referencing the parent element
+ pendingManifestRequest: null, // Reference to the xhr request retrieving the manifest. Used to cancel the request on destroy()
+ pluginInstances: [], // Filled with the enabled plugins from the registry
+ renderer: null,
+ resizeTimer: -1, // Holds the ID of the timeout used when resizing the window (for clearing)
+ scrollbarWidth: 0, // Set to the actual scrollbar width in init()
+ selector: '', // Uses the generated ID prefix to easily select elements
+ throbberTimeoutID: -1, // Holds the ID of the throbber loading timeout
+ toolbar: null, // Holds an object with some toolbar-related functions
+ verticalOffset: 0, // Distance from the center of the diva element to the left side of the current page
+ verticalPadding: 0, // Either the fixed padding or adaptive padding
+ viewHandler: null,
+ viewport: null, // Object caching the viewport dimensions
+ viewportElement: null,
+ viewportObject: null,
+ zoomDuration: 400
+ };
- var optionsValidator = new ValidationRunner({
- additionalProperties: [
- {
- key: 'manifest',
- get: function ()
+ this.settings = createSettingsView([options, this.viewerState]);
+
+ // Generate an ID that can be used as a prefix for all the other IDs
+ const idNumber = generateId();
+ this.viewerState.ID = 'diva-' + idNumber + '-';
+ this.viewerState.selector = this.settings.ID;
+
+ // Aliases for compatibility
+ Object.defineProperties(this.settings, {
+ // Height of the document viewer pane
+ panelHeight: {
+ get: () =>
+ {
+ return this.viewerState.viewport.height;
+ }
+ },
+ // Width of the document viewer pane
+ panelWidth: {
+ get: () =>
{
- return viewerState.manifest;
+ return this.viewerState.viewport.width;
}
}
- ],
+ });
+
+ this.optionsValidator = new ValidationRunner({
+ additionalProperties: [
+ {
+ key: 'manifest',
+ get: () =>
+ {
+ return this.viewerState.manifest;
+ }
+ }
+ ],
+
+ validations: optionsValidations
+ });
- validations: optionsValidations
- });
+ this.viewerState.scrollbarWidth = getScrollbarWidth();
- var isValidOption = function (key, value)
+ // If window.orientation is defined, then it's probably mobileWebkit
+ this.viewerState.mobileWebkit = window.orientation !== undefined;
+
+ if (options.hashParamSuffix === null)
+ {
+ // Omit the suffix from the first instance
+ if (idNumber === 1)
+ options.hashParamSuffix = '';
+ else
+ options.hashParamSuffix = idNumber + '';
+ }
+
+ // Create the inner and outer panels
+ const innerElem = elt('div', this.elemAttrs('inner', { class: 'diva-inner' }));
+ const viewportElem = elt('div', this.elemAttrs('viewport'), innerElem);
+ const outerElem = elt('div', this.elemAttrs('outer'),
+ viewportElem,
+ elt('div', this.elemAttrs('throbber'),
+ [
+ elt('div', { class: 'cube cube1' }),
+ elt('div', { class: 'cube cube2' }),
+ elt('div', { class: 'cube cube3' }),
+ elt('div', { class: 'cube cube4' }),
+ elt('div', { class: 'cube cube5' }),
+ elt('div', { class: 'cube cube6' }),
+ elt('div', { class: 'cube cube7' }),
+ elt('div', { class: 'cube cube8' }),
+ elt('div', { class: 'cube cube9' }),
+ ]
+ ));
+
+ this.viewerState.innerElement = innerElem;
+ this.viewerState.viewportElement = viewportElem;
+ this.viewerState.outerElement = outerElem;
+
+ this.viewerState.innerObject = innerElem;
+ this.viewerState.viewportObject = viewportElem;
+ this.viewerState.outerObject = outerElem;
+
+ this.settings.parentObject.append(outerElem);
+
+ this.viewerState.viewport = new Viewport(this.viewerState.viewportElement, {
+ intersectionTolerance: this.settings.viewportMargin
+ });
+
+ this.boundScrollFunction = this.scrollFunction.bind(this);
+ this.boundEscapeListener = this.escapeListener.bind(this);
+
+ // Do all the plugin initialisation
+ this.initPlugins();
+ this.handleEvents();
+
+ // Show the throbber while waiting for the manifest to load
+ this.showThrobber();
+ }
+
+ isValidOption (key, value)
{
- return optionsValidator.isValid(key, value, viewerState.options);
- };
+ return this.optionsValidator.isValid(key, value, this.viewerState.options);
+ }
- var elemAttrs = function (ident, base)
+ elemAttrs (ident, base)
{
- var attrs = {
- id: settings.ID + ident,
+ const attrs = {
+ id: this.settings.ID + ident,
class: 'diva-' + ident
};
if (base)
- return $.extend(attrs, base);
+ return Object.assign(attrs, base);
else
return attrs;
- };
+ }
- var getPageData = function (pageIndex, attribute)
+ getPageData (pageIndex, attribute)
{
- return settings.manifest.pages[pageIndex].d[settings.zoomLevel][attribute];
- };
+ return this.settings.manifest.pages[pageIndex].d[this.settings.zoomLevel][attribute];
+ }
// Reset some settings and empty the viewport
- var clearViewer = function ()
+ clearViewer ()
{
- viewerState.viewport.top = 0;
+ this.viewerState.viewport.top = 0;
// Clear all the timeouts to prevent undesired pages from loading
- clearTimeout(viewerState.resizeTimer);
- };
+ clearTimeout(this.viewerState.resizeTimer);
+ }
+
+ hasChangedOption (options, key)
+ {
+ return key in options && options[key] !== this.settings[key];
+ }
+
+ //Shortcut for closing fullscreen with the escape key
+ escapeListener (e)
+ {
+ if (e.keyCode === 27)
+ {
+ this.publicInstance.leaveFullscreenMode();
+ }
+ }
/**
* Update settings to match the specified options. Load the viewer,
* fire appropriate events for changed options.
*/
- var reloadViewer = function (newOptions)
+ reloadViewer (newOptions)
{
- var queuedEvents = [];
+ const queuedEvents = [];
- newOptions = optionsValidator.getValidatedOptions(settings, newOptions);
+ newOptions = this.optionsValidator.getValidatedOptions(this.settings, newOptions);
// Set the zoom level if valid and fire a ZoomLevelDidChange event
- if (hasChangedOption(newOptions, 'zoomLevel'))
+ if (this.hasChangedOption(newOptions, 'zoomLevel'))
{
- viewerState.oldZoomLevel = settings.zoomLevel;
- viewerState.options.zoomLevel = newOptions.zoomLevel;
+ this.viewerState.oldZoomLevel = this.settings.zoomLevel;
+ this.viewerState.options.zoomLevel = newOptions.zoomLevel;
queuedEvents.push(["ZoomLevelDidChange", newOptions.zoomLevel]);
}
// Set the pages per row if valid and fire an event
- if (hasChangedOption(newOptions, 'pagesPerRow'))
+ if (this.hasChangedOption(newOptions, 'pagesPerRow'))
{
- viewerState.options.pagesPerRow = newOptions.pagesPerRow;
+ this.viewerState.options.pagesPerRow = newOptions.pagesPerRow;
queuedEvents.push(["GridRowNumberDidChange", newOptions.pagesPerRow]);
}
// Update verticallyOriented (no event fired)
- if (hasChangedOption(newOptions, 'verticallyOriented'))
- viewerState.options.verticallyOriented = newOptions.verticallyOriented;
+ if (this.hasChangedOption(newOptions, 'verticallyOriented'))
+ this.viewerState.options.verticallyOriented = newOptions.verticallyOriented;
// Show/Hide non-paged pages
- if (hasChangedOption(newOptions, 'showNonPagedPages'))
+ if (this.hasChangedOption(newOptions, 'showNonPagedPages'))
{
- viewerState.options.showNonPagedPages = newOptions.showNonPagedPages;
+ this.viewerState.options.showNonPagedPages = newOptions.showNonPagedPages;
}
// Update page position (no event fired here)
if ('goDirectlyTo' in newOptions)
{
- viewerState.options.goDirectlyTo = newOptions.goDirectlyTo;
+ this.viewerState.options.goDirectlyTo = newOptions.goDirectlyTo;
if ('verticalOffset' in newOptions)
- viewerState.verticalOffset = newOptions.verticalOffset;
+ this.viewerState.verticalOffset = newOptions.verticalOffset;
if ('horizontalOffset' in newOptions)
- viewerState.horizontalOffset = newOptions.horizontalOffset;
+ this.viewerState.horizontalOffset = newOptions.horizontalOffset;
}
else
{
// Otherwise the default is to remain on the current page
- viewerState.options.goDirectlyTo = settings.currentPageIndex;
+ this.viewerState.options.goDirectlyTo = this.settings.activePageIndex;
}
- if (hasChangedOption(newOptions, 'inGrid') || hasChangedOption(newOptions, 'inBookLayout'))
+ if (this.hasChangedOption(newOptions, 'inGrid') || this.hasChangedOption(newOptions, 'inBookLayout'))
{
if ('inGrid' in newOptions)
- viewerState.options.inGrid = newOptions.inGrid;
+ this.viewerState.options.inGrid = newOptions.inGrid;
if ('inBookLayout' in newOptions)
- viewerState.options.inBookLayout = newOptions.inBookLayout;
+ this.viewerState.options.inBookLayout = newOptions.inBookLayout;
- queuedEvents.push(["ViewDidSwitch", settings.inGrid]);
+ queuedEvents.push(["ViewDidSwitch", this.settings.inGrid]);
}
// Note: prepareModeChange() depends on inGrid and the vertical/horizontalOffset (for now)
- if (hasChangedOption(newOptions, 'inFullscreen'))
+ if (this.hasChangedOption(newOptions, 'inFullscreen'))
{
- viewerState.options.inFullscreen = newOptions.inFullscreen;
- prepareModeChange(newOptions);
- queuedEvents.push(["ModeDidSwitch", settings.inFullscreen]);
+ this.viewerState.options.inFullscreen = newOptions.inFullscreen;
+ this.prepareModeChange(newOptions);
+ queuedEvents.push(["ModeDidSwitch", this.settings.inFullscreen]);
}
- clearViewer();
- updateViewHandlerAndRendering();
+ this.clearViewer();
+ this.updateViewHandlerAndRendering();
- if (viewerState.renderer)
+ if (this.viewerState.renderer)
{
// TODO: The usage of padding variables is still really
// messy and inconsistent
- var rendererConfig = {
- pageLayouts: getPageLayouts(settings),
- padding: getPadding(),
- maxZoomLevel: settings.inGrid ? null : viewerState.manifest.maxZoom,
- verticallyOriented: settings.verticallyOriented || settings.inGrid,
+ const rendererConfig = {
+ pageLayouts: getPageLayouts(this.settings),
+ padding: this.getPadding(),
+ maxZoomLevel: this.settings.inGrid ? null : this.viewerState.manifest.maxZoom,
+ verticallyOriented: this.settings.verticallyOriented || this.settings.inGrid,
};
- var viewportPosition = {
- zoomLevel: settings.inGrid ? null : settings.zoomLevel,
- anchorPage: settings.goDirectlyTo,
- verticalOffset: viewerState.verticalOffset,
- horizontalOffset: viewerState.horizontalOffset
+ const viewportPosition = {
+ zoomLevel: this.settings.inGrid ? null : this.settings.zoomLevel,
+ anchorPage: this.settings.goDirectlyTo,
+ verticalOffset: this.viewerState.verticalOffset,
+ horizontalOffset: this.viewerState.horizontalOffset
};
- var sourceProvider = getCurrentSourceProvider();
+ const sourceProvider = this.getCurrentSourceProvider();
if (debug.enabled)
{
- var serialized = Object.keys(rendererConfig)
+ const serialized = Object.keys(rendererConfig)
.filter(function (key)
{
// Too long
@@ -314,7 +393,7 @@ function ViewerCore(element, options, publicInstance)
})
.map(function (key)
{
- var value = rendererConfig[key];
+ const value = rendererConfig[key];
return key + ': ' + JSON.stringify(value);
})
.join(', ');
@@ -322,131 +401,130 @@ function ViewerCore(element, options, publicInstance)
debug('reload with %s', serialized);
}
- viewerState.renderer.load(rendererConfig, viewportPosition, sourceProvider);
+ this.viewerState.renderer.load(rendererConfig, viewportPosition, sourceProvider);
}
- queuedEvents.forEach(function (params)
+ queuedEvents.forEach( (params) =>
{
- publish.apply(null, params);
+ this.publish.apply(this, params);
});
return true;
- };
-
- var hasChangedOption = function (options, key)
- {
- return key in options && options[key] !== settings[key];
- };
+ }
// Handles switching in and out of fullscreen mode
- var prepareModeChange = function (options)
+ prepareModeChange (options)
{
// Toggle the classes
- var changeClass = options.inFullscreen ? 'addClass' : 'removeClass';
- viewerState.outerObject[changeClass]('diva-fullscreen');
- $('body')[changeClass]('diva-hide-scrollbar');
- settings.parentObject[changeClass]('diva-full-width');
+ const changeClass = options.inFullscreen ? 'add' : 'remove';
+ this.viewerState.outerObject.classList[changeClass]('diva-fullscreen');
+ document.body.classList[changeClass]('diva-hide-scrollbar');
+ this.settings.parentObject.classList[changeClass]('diva-full-width');
// Adjust Diva's internal panel size, keeping the old values
- var storedHeight = settings.panelHeight;
- var storedWidth = settings.panelWidth;
- viewerState.viewport.invalidate();
+ const storedHeight = this.settings.panelHeight;
+ const storedWidth = this.settings.panelWidth;
+ this.viewerState.viewport.invalidate();
// If this isn't the original load, the offsets matter, and the position isn't being changed...
- if (!viewerState.loaded && !settings.inGrid && !('verticalOffset' in options))
+ if (!this.viewerState.loaded && !this.settings.inGrid && !('verticalOffset' in options))
{
//get the updated panel size
- var newHeight = settings.panelHeight;
- var newWidth = settings.panelWidth;
+ const newHeight = this.settings.panelHeight;
+ const newWidth = this.settings.panelWidth;
//and re-center the new panel on the same point
- viewerState.verticalOffset += ((storedHeight - newHeight) / 2);
- viewerState.horizontalOffset += ((storedWidth - newWidth) / 2);
+ this.viewerState.verticalOffset += ((storedHeight - newHeight) / 2);
+ this.viewerState.horizontalOffset += ((storedWidth - newWidth) / 2);
}
//turn on/off escape key listener
if (options.inFullscreen)
- $(document).on('keyup', escapeListener);
+ document.addEventListener('keyup', this.boundEscapeListener);
else
- $(document).off('keyup', escapeListener);
- };
+ document.removeEventListener('keyup', this.boundEscapeListener);
+ }
// Update the view handler and the view rendering for the current view
- var updateViewHandlerAndRendering = function ()
+ updateViewHandlerAndRendering ()
{
- var Handler = settings.inGrid ? GridHandler : DocumentHandler;
+ const Handler = this.settings.inGrid ? GridHandler : DocumentHandler;
- if (viewerState.viewHandler && !(viewerState.viewHandler instanceof Handler))
+ if (this.viewerState.viewHandler && !(this.viewerState.viewHandler instanceof Handler))
{
- viewerState.viewHandler.destroy();
- viewerState.viewHandler = null;
+ this.viewerState.viewHandler.destroy();
+ this.viewerState.viewHandler = null;
}
- if (!viewerState.viewHandler)
- viewerState.viewHandler = new Handler(self);
+ if (!this.viewerState.viewHandler)
+ this.viewerState.viewHandler = new Handler(this);
- if (!viewerState.renderer)
- initializeRenderer();
- };
+ if (!this.viewerState.renderer)
+ this.initializeRenderer();
+ }
// TODO: This could probably be done upon ViewerCore initialization
- var initializeRenderer = function ()
+ initializeRenderer ()
{
- var compatErrors = Renderer.getCompatibilityErrors();
+ const compatErrors = Renderer.getCompatibilityErrors();
if (compatErrors)
{
- showError(compatErrors);
+ this.showError(compatErrors);
}
else
{
- var options = {
- viewport: viewerState.viewport,
- outerElement: viewerState.outerElement,
- innerElement: viewerState.innerElement
+ const options = {
+ viewport: this.viewerState.viewport,
+ outerElement: this.viewerState.outerElement,
+ innerElement: this.viewerState.innerElement
};
- var hooks = {
- onViewWillLoad: function ()
+ const hooks = {
+ onViewWillLoad: () =>
+ {
+ this.viewerState.viewHandler.onViewWillLoad();
+ },
+ onViewDidLoad: () =>
{
- viewerState.viewHandler.onViewWillLoad();
+ this.updatePageOverlays();
+ this.viewerState.viewHandler.onViewDidLoad();
},
- onViewDidLoad: function ()
+ onViewDidUpdate: (pages, targetPage) =>
{
- updatePageOverlays();
- viewerState.viewHandler.onViewDidLoad();
+ this.updatePageOverlays();
+ this.viewerState.viewHandler.onViewDidUpdate(pages, targetPage);
},
- onViewDidUpdate: function (pages, targetPage)
+ onViewDidTransition: () =>
{
- updatePageOverlays();
- viewerState.viewHandler.onViewDidUpdate(pages, targetPage);
+ this.updatePageOverlays();
},
- onViewDidTransition: function ()
+ onPageWillLoad: (pageIndex) =>
{
- updatePageOverlays();
+ this.publish('PageWillLoad', pageIndex);
},
- onPageWillLoad: function (pageIndex)
+ onZoomLevelWillChange: (zoomLevel) =>
{
- publish('PageWillLoad', pageIndex);
+ this.publish('ZoomLevelWillChange', zoomLevel);
}
};
- viewerState.renderer = new Renderer(options, hooks);
+ this.viewerState.renderer = new Renderer(options, hooks);
}
- };
+ }
- var getCurrentSourceProvider = function ()
+ getCurrentSourceProvider ()
{
- if (settings.inGrid)
+ if (this.settings.inGrid)
{
- var gridSourceProvider = {
- getAllZoomLevelsForPage: function (page)
+ const gridSourceProvider = {
+ getAllZoomLevelsForPage: (page) =>
{
return [gridSourceProvider.getBestZoomLevelForPage(page)];
},
- getBestZoomLevelForPage: function (page)
+ getBestZoomLevelForPage: (page) =>
{
- var url = settings.manifest.getPageImageURL(page.index, {
+ const url = this.settings.manifest.getPageImageURL(page.index, {
width: page.dimensions.width
});
@@ -472,24 +550,24 @@ function ViewerCore(element, options, publicInstance)
return gridSourceProvider;
}
- var tileDimens = {
- width: settings.tileWidth,
- height: settings.tileHeight
+ const tileDimensions = {
+ width: this.settings.tileWidth,
+ height: this.settings.tileHeight
};
return {
- getBestZoomLevelForPage: function (page)
+ getBestZoomLevelForPage: (page) =>
{
- return settings.manifest.getPageImageTiles(page.index, Math.ceil(settings.zoomLevel), tileDimens);
+ return this.settings.manifest.getPageImageTiles(page.index, Math.ceil(this.settings.zoomLevel), tileDimensions);
},
- getAllZoomLevelsForPage: function (page)
+ getAllZoomLevelsForPage: (page) =>
{
- var levels = [];
+ const levels = [];
+ const levelCount = this.viewerState.manifest.maxZoom;
- var levelCount = viewerState.manifest.maxZoom;
- for (var level=0; level <= levelCount; level++)
+ for (let level=0; level <= levelCount; level++)
{
- levels.push(settings.manifest.getPageImageTiles(page.index, level, tileDimens));
+ levels.push(this.settings.manifest.getPageImageTiles(page.index, level, tileDimensions));
}
levels.reverse();
@@ -497,25 +575,25 @@ function ViewerCore(element, options, publicInstance)
return levels;
}
};
- };
+ }
- var getPadding = function ()
+ getPadding ()
{
- var topPadding, leftPadding;
- var docVPadding, docHPadding;
+ let topPadding, leftPadding;
+ let docVPadding, docHPadding;
- if (settings.inGrid)
+ if (this.settings.inGrid)
{
- docVPadding = settings.fixedPadding;
+ docVPadding = this.settings.fixedPadding;
topPadding = leftPadding = docHPadding = 0;
}
else
{
- topPadding = settings.verticallyOriented ? viewerState.verticalPadding : 0;
- leftPadding = settings.verticallyOriented ? 0 : viewerState.horizontalPadding;
+ topPadding = this.settings.verticallyOriented ? this.viewerState.verticalPadding : 0;
+ leftPadding = this.settings.verticallyOriented ? 0 : this.viewerState.horizontalPadding;
- docVPadding = settings.verticallyOriented ? 0 : viewerState.verticalPadding;
- docHPadding = settings.verticallyOriented ? viewerState.horizontalPadding : 0;
+ docVPadding = this.settings.verticallyOriented ? 0 : this.viewerState.verticalPadding;
+ docHPadding = this.settings.verticallyOriented ? this.viewerState.horizontalPadding : 0;
}
return {
@@ -532,39 +610,33 @@ function ViewerCore(element, options, publicInstance)
right: 0
}
};
- };
-
- var updatePageOverlays = function ()
- {
- viewerState.pageOverlays.updateOverlays(viewerState.renderer.getRenderedPages());
- };
+ }
- //Shortcut for closing fullscreen with the escape key
- var escapeListener = function (e)
+ updatePageOverlays ()
{
- if (e.keyCode == 27)
- {
- reloadViewer({
- inFullscreen: !settings.inFullscreen
- });
- }
- };
+ this.viewerState.pageOverlays.updateOverlays(
+ this.viewerState.renderer.getRenderedPages()
+ );
+ }
// Called to handle any zoom level
- var handleZoom = function (newZoomLevel, focalPoint)
+ handleZoom (newZoomLevel, focalPoint)
{
// If the zoom level provided is invalid, return false
- if (!isValidOption('zoomLevel', newZoomLevel))
+ if (!this.isValidOption('zoomLevel', newZoomLevel))
return false;
+ // While zooming, don't update scroll offsets based on the scaled version of diva-inner
+ this.viewerState.viewportObject.removeEventListener('scroll', this.boundScrollFunction);
+
// If no focal point was given, zoom on the center of the viewport
- if (focalPoint == null)
+ if (!focalPoint)
{
- var viewport = viewerState.viewport;
- var currentRegion = viewerState.renderer.layout.getPageRegion(settings.currentPageIndex);
+ const viewport = this.viewerState.viewport;
+ const currentRegion = this.viewerState.renderer.layout.getPageRegion(this.settings.activePageIndex);
focalPoint = {
- anchorPage: settings.currentPageIndex,
+ anchorPage: this.settings.activePageIndex,
offset: {
left: (viewport.width / 2) - (currentRegion.left - viewport.left),
top: (viewport.height / 2) - (currentRegion.top - viewport.top)
@@ -572,22 +644,22 @@ function ViewerCore(element, options, publicInstance)
};
}
- var pageRegion = viewerState.renderer.layout.getPageRegion(focalPoint.anchorPage);
+ const pageRegion = this.viewerState.renderer.layout.getPageRegion(focalPoint.anchorPage);
// calculate distance from cursor coordinates to center of viewport
- var focalXToCenter = (pageRegion.left + focalPoint.offset.left) -
- (settings.viewport.left + (settings.viewport.width / 2));
- var focalYToCenter = (pageRegion.top + focalPoint.offset.top) -
- (settings.viewport.top + (settings.viewport.height / 2));
+ const focalXToCenter = (pageRegion.left + focalPoint.offset.left) -
+ (this.settings.viewport.left + (this.settings.viewport.width / 2));
+ const focalYToCenter = (pageRegion.top + focalPoint.offset.top) -
+ (this.settings.viewport.top + (this.settings.viewport.height / 2));
- function getPositionForZoomLevel(zoomLevel)
+ const getPositionForZoomLevel = function (zoomLevel, initZoom)
{
- var zoomRatio = Math.pow(2, zoomLevel - initialZoomLevel);
+ const zoomRatio = Math.pow(2, zoomLevel - initZoom);
//TODO(jeromepl): Calculate position from page top left to viewport top left
// calculate horizontal/verticalOffset: distance from viewport center to page upper left corner
- var horizontalOffset = (focalPoint.offset.left * zoomRatio) - focalXToCenter;
- var verticalOffset = (focalPoint.offset.top * zoomRatio) - focalYToCenter;
+ const horizontalOffset = (focalPoint.offset.left * zoomRatio) - focalXToCenter;
+ const verticalOffset = (focalPoint.offset.top * zoomRatio) - focalYToCenter;
return {
zoomLevel: zoomLevel,
@@ -595,45 +667,53 @@ function ViewerCore(element, options, publicInstance)
verticalOffset: verticalOffset,
horizontalOffset: horizontalOffset
};
- }
-
- var initialZoomLevel = viewerState.oldZoomLevel = settings.zoomLevel;
- viewerState.options.zoomLevel = newZoomLevel;
+ };
- var endPosition = getPositionForZoomLevel(newZoomLevel);
- viewerState.options.goDirectlyTo = endPosition.anchorPage;
- viewerState.verticalOffset = endPosition.verticalOffset;
- viewerState.horizontalOffset = endPosition.horizontalOffset;
+ this.viewerState.options.zoomLevel = newZoomLevel;
+ let initialZoomLevel = this.viewerState.oldZoomLevel;
+ this.viewerState.oldZoomLevel = this.settings.zoomLevel;
+ const endPosition = getPositionForZoomLevel(newZoomLevel, initialZoomLevel);
+ this.viewerState.options.goDirectlyTo = endPosition.anchorPage;
+ this.viewerState.verticalOffset = endPosition.verticalOffset;
+ this.viewerState.horizontalOffset = endPosition.horizontalOffset;
- viewerState.renderer.transitionViewportPosition({
- duration: 300,
+ this.viewerState.renderer.transitionViewportPosition({
+ duration: this.settings.zoomDuration,
parameters: {
zoomLevel: {
from: initialZoomLevel,
to: newZoomLevel
}
},
- getPosition: function (parameters)
+ getPosition: (parameters) =>
{
- return getPositionForZoomLevel(parameters.zoomLevel);
+ return getPositionForZoomLevel(parameters.zoomLevel, initialZoomLevel);
},
- onEnd: function (info)
+ onEnd: (info) =>
{
- viewerState.viewportObject.scroll(scrollFunction);
+ this.viewerState.viewportObject.addEventListener('scroll', this.boundScrollFunction);
if (info.interrupted)
- viewerState.oldZoomLevel = newZoomLevel;
+ this.viewerState.oldZoomLevel = newZoomLevel;
}
});
- // Update the slider
- publish("ZoomLevelDidChange", newZoomLevel);
+ // Deactivate zoom buttons while zooming
+ let zoomInButton = document.getElementById(this.settings.selector + 'zoom-in-button');
+ let zoomOutButton = document.getElementById(this.settings.selector + 'zoom-out-button');
+ zoomInButton.disabled = true;
+ zoomOutButton.disabled = true;
+ setTimeout(() =>
+ {
+ zoomInButton.disabled = false;
+ zoomOutButton.disabled = false;
+ }, this.settings.zoomDuration);
- // While zooming, don't update scroll offsets based on the scaled version of diva-inner
- viewerState.viewportObject.off('scroll');
+ // Send off the zoom level did change event.
+ this.publish("ZoomLevelDidChange", newZoomLevel);
return true;
- };
+ }
/*
Gets the Y-offset for a specific point on a specific page
@@ -643,119 +723,118 @@ function ViewerCore(element, options, publicInstance)
"center" - will center the page on the diva element
Returned value will be the distance from the center of the diva-outer element to the top of the current page for the specified anchor
*/
- var getYOffset = function (pageIndex, anchor)
+ getYOffset (pageIndex, anchor)
{
- pageIndex = (typeof(pageIndex) === "undefined" ? settings.currentPageIndex : pageIndex);
+ let pidx = (typeof(pageIndex) === "undefined" ? this.settings.activePageIndex : pageIndex);
if (anchor === "center" || anchor === "centre") //how you can tell an American coded this
{
- return parseInt(getPageData(pageIndex, "h") / 2, 10);
+ return parseInt(this.getPageData(pidx, "h") / 2, 10);
}
else if (anchor === "bottom")
{
- return parseInt(getPageData(pageIndex, "h") - settings.panelHeight / 2, 10);
+ return parseInt(this.getPageData(pidx, "h") - this.settings.panelHeight / 2, 10);
}
else
{
- return parseInt(settings.panelHeight / 2, 10);
+ return parseInt(this.settings.panelHeight / 2, 10);
}
- };
+ }
//Same as getYOffset with "left" and "right" as acceptable values instead of "top" and "bottom"
- var getXOffset = function (pageIndex, anchor)
+ getXOffset (pageIndex, anchor)
{
- pageIndex = (typeof(pageIndex) === "undefined" ? settings.currentPageIndex : pageIndex);
+ let pidx = (typeof(pageIndex) === "undefined" ? this.settings.activePageIndex : pageIndex);
if (anchor === "left")
{
- return parseInt(settings.panelWidth / 2, 10);
+ return parseInt(this.settings.panelWidth / 2, 10);
}
else if (anchor === "right")
{
- return parseInt(getPageData(pageIndex, "w") - settings.panelWidth / 2, 10);
+ return parseInt(this.getPageData(pidx, "w") - this.settings.panelWidth / 2, 10);
}
else
{
- return parseInt(getPageData(pageIndex, "w") / 2, 10);
+ return parseInt(this.getPageData(pidx, "w") / 2, 10);
}
- };
+ }
// updates panelHeight/panelWidth on resize
- var updatePanelSize = function ()
+ updatePanelSize ()
{
- viewerState.viewport.invalidate();
+ this.viewerState.viewport.invalidate();
// FIXME(wabain): This should really only be called after initial load
- if (viewerState.renderer)
+ if (this.viewerState.renderer)
{
- updateOffsets();
- viewerState.renderer.goto(settings.currentPageIndex, viewerState.verticalOffset, viewerState.horizontalOffset);
+ this.updateOffsets();
+ this.viewerState.renderer.goto(this.settings.activePageIndex, this.viewerState.verticalOffset, this.viewerState.horizontalOffset);
}
return true;
- };
+ }
- var updateOffsets = function ()
+ updateOffsets ()
{
- var pageOffset = viewerState.renderer.layout.getPageToViewportCenterOffset(settings.currentPageIndex, viewerState.viewport);
+ const pageOffset = this.viewerState.renderer.layout.getPageToViewportCenterOffset(this.settings.activePageIndex, this.viewerState.viewport);
if (pageOffset)
{
- viewerState.horizontalOffset = pageOffset.x;
- viewerState.verticalOffset = pageOffset.y;
+ this.viewerState.horizontalOffset = pageOffset.x;
+ this.viewerState.verticalOffset = pageOffset.y;
}
- };
+ }
// Bind mouse events (drag to scroll, double-click)
- var bindMouseEvents = function()
+ bindMouseEvents ()
{
- // Set drag scroll on first descendant of class dragger on both selected elements
- viewerState.viewportObject.dragscrollable({dragSelector: '.diva-dragger', acceptPropagatedEvent: true});
- viewerState.innerObject.dragscrollable({dragSelector: '.diva-dragger', acceptPropagatedEvent: true});
+ // Set drag scroll on the viewport object
+ this.viewerState.viewportObject.classList.add('dragscroll');
- gestureEvents.onDoubleClick(viewerState.viewportObject, function (event, coords)
+ gestureEvents.onDoubleClick(this.viewerState.viewportObject, (event, coords) =>
{
debug('Double click at %s, %s', coords.left, coords.top);
- viewerState.viewHandler.onDoubleClick(event, coords);
+ this.viewerState.viewHandler.onDoubleClick(event, coords);
});
- };
+ }
- var onResize = function()
+ onResize ()
{
- updatePanelSize();
+ this.updatePanelSize();
// Cancel any previously-set resize timeouts
- clearTimeout(viewerState.resizeTimer);
+ clearTimeout(this.viewerState.resizeTimer);
- viewerState.resizeTimer = setTimeout(function ()
+ this.viewerState.resizeTimer = setTimeout( () =>
{
- var pageOffset = viewerState.renderer.layout.getPageToViewportCenterOffset(settings.currentPageIndex, viewerState.viewport);
+ const pageOffset = this.viewerState.renderer.layout.getPageToViewportCenterOffset(this.settings.activePageIndex, this.viewerState.viewport);
if (pageOffset)
{
- reloadViewer({
- goDirectlyTo: settings.currentPageIndex,
+ this.reloadViewer({
+ goDirectlyTo: this.settings.activePageIndex,
verticalOffset: pageOffset.y,
horizontalOffset: pageOffset.x
});
}
else
{
- reloadViewer({
- goDirectlyTo: settings.currentPageIndex
+ this.reloadViewer({
+ goDirectlyTo: this.settings.activePageIndex
});
}
}, 200);
- };
+ }
// Bind touch and orientation change events
- var bindTouchEvents = function()
+ bindTouchEvents ()
{
// Block the user from moving the window only if it's not integrated
- if (settings.blockMobileMove)
+ if (this.settings.blockMobileMove)
{
- $('body').bind('touchmove', function (event)
+ document.body.addEventListener('touchmove', (event) =>
{
- var e = event.originalEvent;
+ const e = event.originalEvent;
e.preventDefault();
return false;
@@ -763,106 +842,94 @@ function ViewerCore(element, options, publicInstance)
}
// Touch events for swiping in the viewport to scroll pages
- viewerState.viewportObject.kinetic({
- triggerHardware: true
- });
+ // this.viewerState.viewportObject.addEventListener('scroll', this.scrollFunction.bind(this));
- gestureEvents.onPinch(viewerState.viewportObject, function (event, coords, start, end)
+ gestureEvents.onPinch(this.viewerState.viewportObject, function (event, coords, start, end)
{
debug('Pinch %s at %s, %s', end - start, coords.left, coords.top);
- viewerState.viewHandler.onPinch(event, coords, start, end);
+ this.viewerState.viewHandler.onPinch(event, coords, start, end);
});
- gestureEvents.onDoubleTap(viewerState.viewportObject, function (event, coords)
+ gestureEvents.onDoubleTap(this.viewerState.viewportObject, function (event, coords)
{
debug('Double tap at %s, %s', coords.left, coords.top);
- viewerState.viewHandler.onDoubleClick(event, coords);
+ this.viewerState.viewHandler.onDoubleClick(event, coords);
});
- };
+ }
// Handle the scroll
- var scrollFunction = function ()
+ scrollFunction ()
{
- var previousTopScroll = viewerState.viewport.top;
- var previousLeftScroll = viewerState.viewport.left;
+ const previousTopScroll = this.viewerState.viewport.top;
+ const previousLeftScroll = this.viewerState.viewport.left;
- var direction;
+ let direction;
- viewerState.viewport.invalidate();
+ this.viewerState.viewport.invalidate();
- var newScrollTop = viewerState.viewport.top;
- var newScrollLeft = viewerState.viewport.left;
+ const newScrollTop = this.viewerState.viewport.top;
+ const newScrollLeft = this.viewerState.viewport.left;
- if (settings.verticallyOriented || settings.inGrid)
+ if (this.settings.verticallyOriented || this.settings.inGrid)
direction = newScrollTop - previousTopScroll;
else
direction = newScrollLeft - previousLeftScroll;
- //give adjust the direction we care about
- viewerState.renderer.adjust(direction);
+ this.viewerState.renderer.adjust();
- var primaryScroll = (settings.verticallyOriented || settings.inGrid) ? newScrollTop : newScrollLeft;
+ const primaryScroll = (this.settings.verticallyOriented || this.settings.inGrid) ? newScrollTop : newScrollLeft;
- publish("ViewerDidScroll", primaryScroll);
+ this.publish("ViewerDidScroll", primaryScroll);
if (direction > 0)
{
- publish("ViewerDidScrollDown", primaryScroll);
+ this.publish("ViewerDidScrollDown", primaryScroll);
}
else if (direction < 0)
{
- publish("ViewerDidScrollUp", primaryScroll);
+ this.publish("ViewerDidScrollUp", primaryScroll);
}
- updateOffsets();
- };
+ this.updateOffsets();
+ }
// Binds most of the event handlers (some more in createToolbar)
- var handleEvents = function ()
+ handleEvents ()
{
// Change the cursor for dragging
- viewerState.innerObject.mousedown(function ()
+ this.viewerState.innerObject.addEventListener('mousedown', () =>
{
- viewerState.innerObject.addClass('diva-grabbing');
+ this.viewerState.innerObject.classList.add('diva-grabbing');
});
- viewerState.innerObject.mouseup(function ()
+ this.viewerState.innerObject.addEventListener('mouseup', () =>
{
- viewerState.innerObject.removeClass('diva-grabbing');
+ this.viewerState.innerObject.classList.remove('diva-grabbing');
});
- bindMouseEvents();
-
- viewerState.viewportObject.scroll(scrollFunction);
+ this.bindMouseEvents();
+ this.viewerState.viewportObject.addEventListener('scroll', this.boundScrollFunction);
- var upArrowKey = 38,
- downArrowKey = 40,
- leftArrowKey = 37,
- rightArrowKey = 39,
- spaceKey = 32,
- pageUpKey = 33,
- pageDownKey = 34,
- homeKey = 36,
- endKey = 35;
+ const upArrowKey = 38, downArrowKey = 40, leftArrowKey = 37, rightArrowKey = 39, spaceKey = 32, pageUpKey = 33, pageDownKey = 34, homeKey = 36, endKey = 35;
// Catch the key presses in document
- $(document).on('keydown.diva', function (event)
+ document.addEventListener('keydown.diva', (event) =>
{
- if (!viewerState.isActiveDiva)
+ if (!this.viewerState.isActiveDiva)
return true;
// Space or page down - go to the next page
- if ((settings.enableSpaceScroll && !event.shiftKey && event.keyCode === spaceKey) || (settings.enableKeyScroll && event.keyCode === pageDownKey))
+ if ((this.settings.enableSpaceScroll && !event.shiftKey && event.keyCode === spaceKey) || (this.settings.enableKeyScroll && event.keyCode === pageDownKey))
{
- viewerState.viewport.top += settings.panelHeight;
+ this.viewerState.viewport.top += this.settings.panelHeight;
return false;
}
- else if (!settings.enableSpaceScroll && event.keyCode === spaceKey)
+ else if (!this.settings.enableSpaceScroll && event.keyCode === spaceKey)
{
event.preventDefault();
}
- if (settings.enableKeyScroll)
+ if (this.settings.enableKeyScroll)
{
// Don't steal keyboard shortcuts (metaKey = command [OS X], super [Win/Linux])
if (event.shiftKey || event.ctrlKey || event.metaKey)
@@ -872,41 +939,41 @@ function ViewerCore(element, options, publicInstance)
{
case pageUpKey:
// Page up - go to the previous page
- viewerState.viewport.top -= settings.panelHeight;
+ this.viewerState.viewport.top -= this.settings.panelHeight;
return false;
case upArrowKey:
// Up arrow - scroll up
- viewerState.viewport.top -= settings.arrowScrollAmount;
+ this.viewerState.viewport.top -= this.settings.arrowScrollAmount;
return false;
case downArrowKey:
// Down arrow - scroll down
- viewerState.viewport.top += settings.arrowScrollAmount;
+ this.viewerState.viewport.top += this.settings.arrowScrollAmount;
return false;
case leftArrowKey:
// Left arrow - scroll left
- viewerState.viewport.left -= settings.arrowScrollAmount;
+ this.viewerState.viewport.left -= this.settings.arrowScrollAmount;
return false;
case rightArrowKey:
// Right arrow - scroll right
- viewerState.viewport.left += settings.arrowScrollAmount;
+ this.viewerState.viewport.left += this.settings.arrowScrollAmount;
return false;
case homeKey:
// Home key - go to the beginning of the document
- viewerState.viewport.top = 0;
+ this.viewerState.viewport.top = 0;
return false;
case endKey:
// End key - go to the end of the document
// Count on the viewport coordinate value being normalized
- if (settings.verticallyOriented)
- viewerState.viewport.top = Infinity;
+ if (this.settings.verticallyOriented)
+ this.viewerState.viewport.top = Infinity;
else
- viewerState.viewport.left = Infinity;
+ this.viewerState.viewport.left = Infinity;
return false;
@@ -919,171 +986,169 @@ function ViewerCore(element, options, publicInstance)
diva.Events.subscribe('ViewerDidTerminate', function()
{
- $(document).off('keydown.diva');
- }, settings.ID);
+ document.removeEventListener('keydown.diva');
+ }, this.settings.ID);
- bindTouchEvents();
+ // this.bindTouchEvents();
// Handle window resizing events
- window.addEventListener('resize', onResize, false);
+ window.addEventListener('resize', this.onResize.bind(this), false);
diva.Events.subscribe('ViewerDidTerminate', function()
{
- window.removeEventListener('resize', onResize, false);
- }, settings.ID);
+ window.removeEventListener('resize', this.onResize, false);
+ }, this.settings.ID);
// Handle orientation change separately
if ('onorientationchange' in window)
{
- window.addEventListener('orientationchange', onResize, false);
+ window.addEventListener('orientationchange', this.onResize, false);
diva.Events.subscribe('ViewerDidTerminate', function()
{
- window.removeEventListener('orientationchange', onResize, false);
- }, settings.ID);
+ window.removeEventListener('orientationchange', this.onResize, false);
+ }, this.settings.ID);
}
- diva.Events.subscribe('PanelSizeDidChange', updatePanelSize, settings.ID);
+ diva.Events.subscribe('PanelSizeDidChange', this.updatePanelSize, this.settings.ID);
// Clear page and resize timeouts when the viewer is destroyed
- diva.Events.subscribe('ViewerDidTerminate', function ()
+ diva.Events.subscribe('ViewerDidTerminate', () =>
{
- if (viewerState.renderer)
- viewerState.renderer.destroy();
+ if (this.viewerState.renderer)
+ this.viewerState.renderer.destroy();
- clearTimeout(viewerState.resizeTimer);
- }, settings.ID);
- };
+ clearTimeout(this.viewerState.resizeTimer);
+ }, this.settings.ID);
+ }
- var initPlugins = function ()
+ initPlugins ()
{
- // Add all the plugins that have not been explicitly disabled to
- // settings.plugins
- PluginRegistry.getAll().forEach(function (plugin)
- {
- var pluginProperName = plugin.pluginName[0].toUpperCase() + plugin.pluginName.substring(1);
-
- if (settings['enable' + pluginProperName])
- {
- // Call the init function and check return value
- var enablePlugin = plugin.init(settings, publicInstance);
+ if (!this.settings.hasOwnProperty('plugins'))
+ return null;
- // If int returns false, consider the plugin disabled
- if (!enablePlugin)
- return;
+ this.viewerState.pluginInstances = this.settings.plugins.map( (plugin) =>
+ {
+ const p = new plugin(this);
- // Create the pageTools bar if handleClick is set to a function
- if (typeof plugin.handleClick === 'function')
- {
- viewerState.pageTools.push(plugin);
- }
+ if (p.isPageTool)
+ this.viewerState.pageTools.push(p);
- // Add it to settings.plugins so it can be used later
- settings.plugins.push(plugin);
- }
+ return p;
});
- };
+ }
- var showThrobber = function ()
+ showThrobber ()
{
- hideThrobber();
+ this.hideThrobber();
- viewerState.throbberTimeoutID = setTimeout(function ()
+ this.viewerState.throbberTimeoutID = setTimeout( () =>
{
- $(settings.selector + 'throbber').show();
- }, settings.throbberTimeout);
- };
+ let thb = document.getElementById(this.settings.selector + 'throbber');
+ if (thb) thb.style.display = 'block';
+ }, this.settings.throbberTimeout);
+ }
- var hideThrobber = function ()
+ hideThrobber ()
{
// Clear the timeout, if it hasn't executed yet
- clearTimeout(viewerState.throbberTimeoutID);
+ clearTimeout(this.viewerState.throbberTimeoutID);
+ let thb = document.getElementById(this.settings.selector + 'throbber');
// Hide the throbber if it has already executed
- $(settings.selector + 'throbber').hide();
- };
+ if (thb) thb.style.display = 'none';
+ }
- var showError = function(message)
+ showError (message)
{
- var errorElement = elt('div', elemAttrs('error'), [
- elt('button', elemAttrs('error-close', {'aria-label': 'Close dialog'})),
+ const errorElement = elt('div', this.elemAttrs('error'), [
+ elt('button', this.elemAttrs('error-close', {'aria-label': 'Close dialog'})),
elt('p',
elt('strong', 'Error')
),
elt('div', message)
]);
- viewerState.outerObject.append(errorElement);
+ this.viewerState.outerObject.appendChild(errorElement);
//bind dialog close button
- $(settings.selector + 'error-close').on('click', function()
+ document.querySelector(this.settings.selector + 'error-close').addEventListener('click', () =>
{
errorElement.parentNode.removeChild(errorElement);
});
- };
+ }
- var setManifest = function (manifest, loadOptions)
+ setManifest (manifest, loadOptions)
{
- viewerState.manifest = manifest;
+ this.viewerState.manifest = manifest;
- hideThrobber();
+ this.hideThrobber();
// Convenience value
- viewerState.numPages = settings.manifest.pages.length;
+ this.viewerState.numPages = this.settings.manifest.pages.length;
- optionsValidator.validate(viewerState.options);
+ this.optionsValidator.validate(this.viewerState.options);
- publish('NumberOfPagesDidChange', settings.numPages);
+ this.publish('NumberOfPagesDidChange', this.settings.numPages);
- if (settings.enableAutoTitle)
+ if (this.settings.enableAutoTitle)
{
- if ($(settings.selector + 'title').length)
- $(settings.selector + 'title').html(settings.manifest.itemTitle);
+ let title = document.getElementById(this.settings.selector + 'title');
+
+ if (title)
+ {
+ title.innerHTML = this.settings.manifest.itemTitle;
+ }
else
- settings.parentObject.prepend(elt('div', elemAttrs('title'), [settings.manifest.itemTitle]));
+ {
+ this.settings.parentObject.insertBefore(
+ elt('div', this.elemAttrs('title'), [this.settings.manifest.itemTitle]),
+ this.settings.parentObject.firstChild
+ );
+ }
}
// Calculate the horizontal and vertical inter-page padding based on the dimensions of the average zoom level
- if (settings.adaptivePadding > 0)
+ if (this.settings.adaptivePadding > 0)
{
- var z = Math.floor((settings.minZoomLevel + settings.maxZoomLevel) / 2);
- viewerState.horizontalPadding = parseInt(settings.manifest.getAverageWidth(z) * settings.adaptivePadding, 10);
- viewerState.verticalPadding = parseInt(settings.manifest.getAverageHeight(z) * settings.adaptivePadding, 10);
+ const z = Math.floor((this.settings.minZoomLevel + this.settings.maxZoomLevel) / 2);
+ this.viewerState.horizontalPadding = parseInt(this.settings.manifest.getAverageWidth(z) * this.settings.adaptivePadding, 10);
+ this.viewerState.verticalPadding = parseInt(this.settings.manifest.getAverageHeight(z) * this.settings.adaptivePadding, 10);
}
else
{
// It's less than or equal to 0; use fixedPadding instead
- viewerState.horizontalPadding = settings.fixedPadding;
- viewerState.verticalPadding = settings.fixedPadding;
+ this.viewerState.horizontalPadding = this.settings.fixedPadding;
+ this.viewerState.verticalPadding = this.settings.fixedPadding;
}
// Make sure the vertical padding is at least 40, if plugin icons are enabled
- if (viewerState.pageTools.length)
+ if (this.viewerState.pageTools.length)
{
- viewerState.verticalPadding = Math.max(40, viewerState.verticalPadding);
+ this.viewerState.verticalPadding = Math.max(40, this.viewerState.verticalPadding);
}
// If we detect a viewingHint of 'paged' in the manifest or sequence, enable book view by default
- if (settings.manifest.paged)
+ if (this.settings.manifest.paged)
{
- viewerState.options.inBookLayout = true;
+ this.viewerState.options.inBookLayout = true;
}
// Plugin setup hooks should be bound to the ObjectDidLoad event
- publish('ObjectDidLoad', settings);
+ this.publish('ObjectDidLoad', this.settings);
// Adjust the document panel dimensions
- updatePanelSize();
+ this.updatePanelSize();
- var needsXCoord, needsYCoord;
+ let needsXCoord, needsYCoord;
- var anchoredVertically = false;
- var anchoredHorizontally = false;
+ let anchoredVertically = false;
+ let anchoredHorizontally = false;
// NB: `==` here will check both null and undefined
if (loadOptions.goDirectlyTo == null)
{
- loadOptions.goDirectlyTo = settings.goDirectlyTo;
+ loadOptions.goDirectlyTo = this.settings.goDirectlyTo;
needsXCoord = needsYCoord = true;
}
else
@@ -1096,146 +1161,92 @@ function ViewerCore(element, options, publicInstance)
if (needsXCoord)
{
// FIXME: What if inBookLayout/verticallyOriented is changed by loadOptions?
- if (loadOptions.goDirectlyTo === 0 && settings.inBookLayout && settings.verticallyOriented)
+ if (loadOptions.goDirectlyTo === 0 && this.settings.inBookLayout && this.settings.verticallyOriented)
{
// if in book layout, center the first opening by default
- loadOptions.horizontalOffset = viewerState.horizontalPadding;
+ loadOptions.horizontalOffset = this.viewerState.horizontalPadding;
}
else
{
anchoredHorizontally = true;
- loadOptions.horizontalOffset = getXOffset(loadOptions.goDirectlyTo, "center");
+ loadOptions.horizontalOffset = this.getXOffset(loadOptions.goDirectlyTo, "center");
}
}
if (needsYCoord)
{
anchoredVertically = true;
- loadOptions.verticalOffset = getYOffset(loadOptions.goDirectlyTo, "top");
+ loadOptions.verticalOffset = this.getYOffset(loadOptions.goDirectlyTo, "top");
}
- reloadViewer(loadOptions);
+ this.reloadViewer(loadOptions);
//prep dimensions one last time now that pages have loaded
- updatePanelSize();
+ this.updatePanelSize();
// FIXME: This is a hack to ensure that the outerElement scrollbars are taken into account
- if (settings.verticallyOriented)
- viewerState.innerElement.style.minWidth = settings.panelWidth + 'px';
+ if (this.settings.verticallyOriented)
+ this.viewerState.innerElement.style.minWidth = this.settings.panelWidth + 'px';
else
- viewerState.innerElement.style.minHeight = settings.panelHeight + 'px';
+ this.viewerState.innerElement.style.minHeight = this.settings.panelHeight + 'px';
// FIXME: If the page was supposed to be positioned relative to the viewport we need to
// recalculate it to take into account the scrollbars
if (anchoredVertically || anchoredHorizontally)
{
if (anchoredVertically)
- viewerState.verticalOffset = getYOffset(settings.currentPageIndex, "top");
+ this.viewerState.verticalOffset = this.getYOffset(this.settings.activePageIndex, "top");
if (anchoredHorizontally)
- viewerState.horizontalOffset = getXOffset(settings.currentPageIndex, "center");
+ this.viewerState.horizontalOffset = this.getXOffset(this.settings.activePageIndex, "center");
- viewerState.renderer.goto(settings.currentPageIndex, viewerState.verticalOffset, viewerState.horizontalOffset);
+ this.viewerState.renderer.goto(this.settings.activePageIndex, this.viewerState.verticalOffset, this.viewerState.horizontalOffset);
}
// signal that everything should be set up and ready to go.
- viewerState.loaded = true;
-
- publish("ViewerDidLoad", settings);
- };
+ this.viewerState.loaded = true;
- var publish = function (event)
- {
- var args = Array.prototype.slice.call(arguments, 1);
- diva.Events.publish(event, args, publicInstance);
- };
+ this.publish("ViewerDidLoad", this.settings);
+ }
- var init = function ()
+ publish (event)
{
- // First figure out the width of the scrollbar in this browser
- // TODO(wabain): Cache this somewhere else
- // Only some of the plugins rely on this now
- viewerState.scrollbarWidth = getScrollbarWidth();
-
- // If window.orientation is defined, then it's probably mobileWebkit
- viewerState.mobileWebkit = window.orientation !== undefined;
-
- // Generate an ID that can be used as a prefix for all the other IDs
- var idNumber = generateId();
- viewerState.ID = 'diva-' + idNumber + '-';
- viewerState.selector = '#' + settings.ID;
-
- if (options.hashParamSuffix === null)
- {
- // Omit the suffix from the first instance
- if (idNumber === 1)
- options.hashParamSuffix = '';
- else
- options.hashParamSuffix = idNumber + '';
- }
-
- // Create the inner and outer panels
- var innerElem = elt('div', elemAttrs('inner', { class: 'diva-inner diva-dragger' }));
- var viewportElem = elt('div', elemAttrs('viewport'), innerElem);
- var outerElem = elt('div', elemAttrs('outer'),
- viewportElem,
- elt('div', elemAttrs('throbber')));
-
- viewerState.innerElement = innerElem;
- viewerState.viewportElement = viewportElem;
- viewerState.outerElement = outerElem;
-
- viewerState.innerObject = $(innerElem);
- viewerState.viewportObject = $(viewportElem);
- viewerState.outerObject = $(outerElem);
-
- settings.parentObject.append(outerElem);
-
- viewerState.viewport = new Viewport(viewerState.viewportElement, {
- intersectionTolerance: settings.viewportMargin
- });
-
- // Do all the plugin initialisation
- initPlugins();
-
- handleEvents();
-
- // Show the throbber while waiting for the manifest to load
- showThrobber();
- };
+ const args = Array.prototype.slice.call(arguments, 1);
+ diva.Events.publish(event, args, this.publicInstance);
+ }
- this.getSettings = function ()
+ getSettings ()
{
- return settings;
- };
+ return this.settings;
+ }
// Temporary accessor for the state of the viewer core
// TODO: Replace this with a more restricted view of whatever needs
// be exposed through settings for backwards compat
- this.getInternalState = function ()
+ getInternalState ()
{
- return viewerState;
- };
+ return this.viewerState;
+ }
- this.getPublicInstance = function ()
+ getPublicInstance ()
{
- return publicInstance;
- };
+ return this.publicInstance;
+ }
- this.getPageTools = function ()
+ getPageTools ()
{
- return viewerState.pageTools;
- };
+ return this.viewerState.pageTools;
+ }
- this.getCurrentLayout = function ()
+ getCurrentLayout ()
{
- return viewerState.renderer ? viewerState.renderer.layout : null;
- };
+ return this.viewerState.renderer ? this.viewerState.renderer.layout : null;
+ }
/** Get a copy of the current viewport dimensions */
- this.getViewport = function ()
+ getViewport ()
{
- var viewport = viewerState.viewport;
+ const viewport = this.viewerState.viewport;
return {
top: viewport.top,
@@ -1246,32 +1257,32 @@ function ViewerCore(element, options, publicInstance)
width: viewport.width,
height: viewport.height
};
- };
+ }
- this.addPageOverlay = function (overlay)
+ addPageOverlay (overlay)
{
- viewerState.pageOverlays.addOverlay(overlay);
- };
+ this.viewerState.pageOverlays.addOverlay(overlay);
+ }
- this.removePageOverlay = function (overlay)
+ removePageOverlay (overlay)
{
- viewerState.pageOverlays.removeOverlay(overlay);
- };
+ this.viewerState.pageOverlays.removeOverlay(overlay);
+ }
- this.getPageRegion = function (pageIndex, options)
+ getPageRegion (pageIndex, options)
{
- var layout = viewerState.renderer.layout;
- var region = layout.getPageRegion(pageIndex, options);
+ const layout = this.viewerState.renderer.layout;
+ const region = layout.getPageRegion(pageIndex, options);
if (options && options.incorporateViewport)
{
- var secondaryDim = settings.verticallyOriented ? 'width' : 'height';
+ const secondaryDim = this.settings.verticallyOriented ? 'width' : 'height';
- if (viewerState.viewport[secondaryDim] > layout.dimensions[secondaryDim])
+ if (this.viewerState.viewport[secondaryDim] > layout.dimensions[secondaryDim])
{
- var docOffset = (viewerState.viewport[secondaryDim] - layout.dimensions[secondaryDim]) / 2;
+ const docOffset = (this.viewerState.viewport[secondaryDim] - layout.dimensions[secondaryDim]) / 2;
- if (settings.verticallyOriented)
+ if (this.settings.verticallyOriented)
{
return {
top: region.top,
@@ -1295,23 +1306,23 @@ function ViewerCore(element, options, publicInstance)
}
return region;
- };
+ }
- this.getPagePositionAtViewportOffset = function (coords)
+ getPagePositionAtViewportOffset (coords)
{
- var docCoords = {
- left: coords.left + viewerState.viewport.left,
- top: coords.top + viewerState.viewport.top
+ const docCoords = {
+ left: coords.left + this.viewerState.viewport.left,
+ top: coords.top + this.viewerState.viewport.top
};
- var renderedPages = viewerState.renderer.getRenderedPages();
- var pageCount = renderedPages.length;
+ const renderedPages = this.viewerState.renderer.getRenderedPages();
+ const pageCount = renderedPages.length;
// Find the page on which the coords occur
- for (var i=0; i < pageCount; i++)
+ for (let i=0; i < pageCount; i++)
{
- var pageIndex = renderedPages[i];
- var region = viewerState.renderer.layout.getPageRegion(pageIndex);
+ const pageIndex = renderedPages[i];
+ const region = this.viewerState.renderer.layout.getPageRegion(pageIndex);
if (region.left <= docCoords.left && region.right >= docCoords.left &&
region.top <= docCoords.top && region.bottom >= docCoords.top)
@@ -1328,166 +1339,166 @@ function ViewerCore(element, options, publicInstance)
// Fall back to current page
// FIXME: Would be better to use the closest page or something
- var currentRegion = viewerState.renderer.layout.getPageRegion(settings.currentPageIndex);
+ const currentRegion = this.viewerState.renderer.layout.getPageRegion(this.settings.activePageIndex);
return {
- anchorPage: settings.currentPageIndex,
+ anchorPage: this.settings.activePageIndex,
offset: {
left: docCoords.left - currentRegion.left,
top: docCoords.top - currentRegion.top
}
};
- };
+ }
- this.setManifest = function (manifest, loadOptions)
- {
- setManifest(manifest, loadOptions || {});
- };
+ // setManifest (manifest, loadOptions)
+ // {
+ // setManifest(manifest, loadOptions || {});
+ // }
/**
* Set the current page to the given index, firing VisiblePageDidChange
*
* @param pageIndex
*/
- this.setCurrentPage = function (pageIndex)
+ setCurrentPages (activePage, visiblePages)
{
- if (viewerState.currentPageIndex !== pageIndex)
+ if (!arraysEqual(this.viewerState.currentPageIndices, visiblePages))
{
- viewerState.currentPageIndex = pageIndex;
- publish("VisiblePageDidChange", pageIndex, this.getPageName(pageIndex));
+ this.viewerState.currentPageIndices = visiblePages;
+ this.viewerState.activePageIndex = activePage;
+ this.publish("VisiblePageDidChange", visiblePages);
+
+ // Publish an event if the page we're switching to has other images.
+ if (this.viewerState.manifest.pages[activePage].otherImages.length > 0)
+ this.publish('VisiblePageHasAlternateViews', activePage);
}
- };
- this.getPageName = function (pageIndex)
+ function arraysEqual (a, b)
+ {
+ if (a.length !== b.length)
+ return false;
+
+ for (let i = 0, len = a.length; i < len; i++)
+ {
+ if (a[i] !== b[i])
+ return false;
+ }
+ return true;
+ }
+ }
+
+ getPageName (pageIndex)
{
- return viewerState.manifest.pages[pageIndex].f;
- };
+ return this.viewerState.manifest.pages[pageIndex].f;
+ }
- this.reload = function (newOptions)
+ reload (newOptions)
{
- reloadViewer(newOptions);
- };
+ this.reloadViewer(newOptions);
+ }
- this.zoom = function (zoomLevel, focalPoint)
+ zoom (zoomLevel, focalPoint)
{
- return handleZoom(zoomLevel, focalPoint);
- };
+ return this.handleZoom(zoomLevel, focalPoint);
+ }
- this.enableScrollable = function ()
+ enableScrollable ()
{
- if (!viewerState.isScrollable)
- {
- bindMouseEvents();
- viewerState.options.enableKeyScroll = viewerState.initialKeyScroll;
- viewerState.options.enableSpaceScroll = viewerState.initialSpaceScroll;
- viewerState.viewportElement.style.overflow = 'auto';
- viewerState.isScrollable = true;
+ if (!this.viewerState.isScrollable)
+ {
+ this.bindMouseEvents();
+ this.enableDragScrollable();
+ this.viewerState.options.enableKeyScroll = this.viewerState.initialKeyScroll;
+ this.viewerState.options.enableSpaceScroll = this.viewerState.initialSpaceScroll;
+ this.viewerState.viewportElement.style.overflow = 'auto';
+ this.viewerState.isScrollable = true;
}
- };
+ }
- this.disableScrollable = function ()
+ enableDragScrollable ()
{
- if (viewerState.isScrollable)
+ if (this.viewerState.viewportObject.hasAttribute('nochilddrag'))
+ this.viewerState.viewportObject.removeAttribute('nochilddrag');
+ }
+
+ disableScrollable ()
+ {
+ if (this.viewerState.isScrollable)
{
- // block dragging/double-click zooming
- if (viewerState.innerObject.hasClass('diva-dragger'))
- viewerState.innerObject.unbind('mousedown');
- viewerState.outerObject.unbind('dblclick');
- viewerState.outerObject.unbind('contextmenu');
+ // block dragging
+ this.disableDragScrollable();
+
+ // block double-click zooming
+ this.viewerState.outerObject.dblclick = null;
+ this.viewerState.outerObject.contextmenu = null;
// disable all other scrolling actions
- viewerState.viewportElement.style.overflow = 'hidden';
+ this.viewerState.viewportElement.style.overflow = 'hidden';
// block scrolling keys behavior, respecting initial scroll settings
- viewerState.initialKeyScroll = settings.enableKeyScroll;
- viewerState.initialSpaceScroll = settings.enableSpaceScroll;
- viewerState.options.enableKeyScroll = false;
- viewerState.options.enableSpaceScroll = false;
+ this.viewerState.initialKeyScroll = this.settings.enableKeyScroll;
+ this.viewerState.initialSpaceScroll = this.settings.enableSpaceScroll;
+ this.viewerState.options.enableKeyScroll = false;
+ this.viewerState.options.enableSpaceScroll = false;
- viewerState.isScrollable = false;
+ this.viewerState.isScrollable = false;
}
- };
-
- this.isValidOption = function (key, value)
- {
- return isValidOption(key, value);
- };
+ }
- this.showError = function (message)
+ disableDragScrollable ()
{
- // FIXME: Not totally sure it makes sense to always do that here
- hideThrobber();
+ if (!this.viewerState.viewportObject.hasAttribute('nochilddrag'))
+ this.viewerState.viewportObject.setAttribute('nochilddrag', "");
+ }
- var errorElement = elt('div', elemAttrs('error'), [
- elt('button', elemAttrs('error-close', {'aria-label': 'Close dialog'})),
- elt('p',
- elt('strong', 'Error')
- ),
- elt('div', message)
- ]);
+ // isValidOption (key, value)
+ // {
+ // return isValidOption(key, value);
+ // }
- viewerState.outerObject.append(errorElement);
+ // getXOffset (pageIndex, xAnchor)
+ // {
+ // return getXOffset(pageIndex, xAnchor);
+ // }
- //bind dialog close button
- $(settings.selector + 'error-close').on('click', function()
- {
- errorElement.parentNode.removeChild(errorElement);
- });
- };
+ // getYOffset (pageIndex, yAnchor)
+ // {
+ // return getYOffset(pageIndex, yAnchor);
+ // }
- this.getXOffset = function (pageIndex, xAnchor)
- {
- return getXOffset(pageIndex, xAnchor);
- };
+ // this.publish = publish;
- this.getYOffset = function (pageIndex, yAnchor)
+ clear ()
{
- return getYOffset(pageIndex, yAnchor);
- };
-
- this.publish = publish;
-
- this.clear = function ()
- {
- clearViewer();
- };
+ this.clearViewer();
+ }
- this.setPendingManifestRequest = function (pendingManifestRequest)
+ setPendingManifestRequest (pendingManifestRequest)
{
- viewerState.pendingManifestRequest = pendingManifestRequest;
- };
+ this.viewerState.pendingManifestRequest = pendingManifestRequest;
+ }
- // Destroys this instance, tells plugins to do the same (for testing)
- this.destroy = function ()
+ destroy ()
{
// Useful event to access elements in diva before they get destroyed. Used by the highlight plugin.
- publish('ViewerWillTerminate', settings);
+ this.publish('ViewerWillTerminate', this.settings);
// Cancel any pending request retrieving a manifest
- if (settings.pendingManifestRequest)
- settings.pendingManifestRequest.abort();
+ if (this.settings.pendingManifestRequest)
+ this.settings.pendingManifestRequest.abort();
// Removes the hide-scrollbar class from the body
- $('body').removeClass('diva-hide-scrollbar');
+ document.body.removeClass('diva-hide-scrollbar');
// Empty the parent container and remove any diva-related data
- settings.parentObject.parent().empty().removeData('diva');
+ this.settings.parentObject.parent().empty().removeData('diva');
// Remove any additional styling on the parent element
- settings.parentObject.parent().removeAttr('style').removeAttr('class');
+ this.settings.parentObject.parent().removeAttr('style').removeAttr('class');
- publish('ViewerDidTerminate', settings);
+ this.publish('ViewerDidTerminate', this.settings);
// Clear the Events cache
- diva.Events.unsubscribeAll(settings.ID);
- };
-
- // Call the init function when this object is created.
- init();
-}
-
-generateId.counter = 1;
-
-function generateId() {
- return generateId.counter++;
+ diva.Events.unsubscribeAll(this.settings.ID);
+ }
}
diff --git a/source/js/viewport.js b/source/js/viewport.js
index d830aea0..294255c5 100644
--- a/source/js/viewport.js
+++ b/source/js/viewport.js
@@ -1,68 +1,68 @@
-module.exports = Viewport;
-
-function Viewport(outer, options)
+export default class Viewport
{
- options = options || {};
-
- this.intersectionTolerance = options.intersectionTolerance || 0;
- this.maxExtent = options.maxExtent || 2000;
-
- this.outer = outer;
-
- this._top = this._left = this._width = this._height = this._innerDimensions = null;
+ constructor (outer, options)
+ {
+ options = options || {};
- this.invalidate();
-}
+ this.intersectionTolerance = options.intersectionTolerance || 0;
-Viewport.prototype.intersectsRegion = function (region)
-{
- return this.hasHorizontalOverlap(region) && this.hasVerticalOverlap(region);
-};
+ this.outer = outer;
-Viewport.prototype.hasVerticalOverlap = function (region)
-{
- var top = this.top - this.intersectionTolerance;
- var bottom = this.bottom + this.intersectionTolerance;
+ this._top = this._left = this._width = this._height = this._innerDimensions = null;
- return (
- fallsBetween(region.top, top, bottom) ||
- fallsBetween(region.bottom, top, bottom) ||
- (region.top <= top && region.bottom >= bottom)
- );
-};
+ this.invalidate();
+ }
-Viewport.prototype.hasHorizontalOverlap = function (region)
-{
- var left = this.left - this.intersectionTolerance;
- var right = this.right + this.intersectionTolerance;
+ intersectsRegion (region)
+ {
+ return this.hasHorizontalOverlap(region) && this.hasVerticalOverlap(region);
+ }
- return (
- fallsBetween(region.left, left, right) ||
- fallsBetween(region.right, left, right) ||
- (region.left <= left && region.right >= right)
- );
-};
+ hasVerticalOverlap (region)
+ {
+ const top = this.top - this.intersectionTolerance;
+ const bottom = this.bottom + this.intersectionTolerance;
+
+ return (
+ fallsBetween(region.top, top, bottom) ||
+ fallsBetween(region.bottom, top, bottom) ||
+ (region.top <= top && region.bottom >= bottom)
+ );
+ }
-Viewport.prototype.invalidate = function ()
-{
- // FIXME: Should this check the inner dimensions as well?
- this._width = clampMax(this.outer.clientWidth, this.maxExtent);
- this._height = clampMax(this.outer.clientHeight, this.maxExtent);
+ hasHorizontalOverlap (region)
+ {
+ const left = this.left - this.intersectionTolerance;
+ const right = this.right + this.intersectionTolerance;
+
+ return (
+ fallsBetween(region.left, left, right) ||
+ fallsBetween(region.right, left, right) ||
+ (region.left <= left && region.right >= right)
+ );
+ }
- this._top = this.outer.scrollTop;
- this._left = this.outer.scrollLeft;
-};
+ invalidate ()
+ {
+ // FIXME: Should this check the inner dimensions as well?
+ this._width = this.outer.clientWidth;
+ this._height = this.outer.clientHeight;
-Viewport.prototype.setInnerDimensions = function (dimensions)
-{
- this._innerDimensions = dimensions;
+ this._top = this.outer.scrollTop;
+ this._left = this.outer.scrollLeft;
+ }
- if (dimensions)
+ setInnerDimensions (dimensions)
{
- this._top = clamp(this._top, 0, dimensions.height - this._height);
- this._left = clamp(this._left, 0, dimensions.width - this._width);
+ this._innerDimensions = dimensions;
+
+ if (dimensions)
+ {
+ this._top = clamp(this._top, 0, dimensions.height - this._height);
+ this._left = clamp(this._left, 0, dimensions.width - this._width);
+ }
}
-};
+}
Object.defineProperties(Viewport.prototype, {
top: getCoordinateDescriptor('top', 'height'),
@@ -85,10 +85,10 @@ Object.defineProperties(Viewport.prototype, {
}
});
-function getCoordinateDescriptor(coord, associatedDimension)
+function getCoordinateDescriptor (coord, associatedDimension)
{
- var privateProp = '_' + coord;
- var source = 'scroll' + coord.charAt(0).toUpperCase() + coord.slice(1);
+ const privateProp = '_' + coord;
+ const source = 'scroll' + coord.charAt(0).toUpperCase() + coord.slice(1);
return {
get: function ()
@@ -97,11 +97,11 @@ function getCoordinateDescriptor(coord, associatedDimension)
},
set: function (newValue)
{
- var normalized;
+ let normalized;
if (this._innerDimensions)
{
- var maxAllowed = this._innerDimensions[associatedDimension] - this[associatedDimension];
+ const maxAllowed = this._innerDimensions[associatedDimension] - this[associatedDimension];
normalized = clamp(newValue, 0, maxAllowed);
}
else
@@ -114,7 +114,7 @@ function getCoordinateDescriptor(coord, associatedDimension)
};
}
-function getDimensionDescriptor(dimen)
+function getDimensionDescriptor (dimen)
{
return {
get: function ()
@@ -124,22 +124,22 @@ function getDimensionDescriptor(dimen)
};
}
-function fallsBetween(point, start, end)
+function fallsBetween (point, start, end)
{
return point >= start && point <= end;
}
-function clamp(value, min, max)
+function clamp (value, min, max)
{
return clampMin(clampMax(value, max), min);
}
-function clampMin(value, min)
+function clampMin (value, min)
{
return Math.max(value, min);
}
-function clampMax(value, max)
+function clampMax (value, max)
{
return Math.min(value, max);
}
diff --git a/source/processing/__init__.py b/source/processing/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/source/processing/generate_json.py b/source/processing/generate_json.py
deleted file mode 100644
index 1bec63a3..00000000
--- a/source/processing/generate_json.py
+++ /dev/null
@@ -1,204 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (C) 2013 by Andrew Hankinson
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-# THE SOFTWARE.
-import os
-import re
-import math
-import sys
-import json
-from optparse import OptionParser
-
-
-class GenerateJson(object):
- def __init__(self, input_directory, output_directory):
- self.input_directory = input_directory
- self.output_directory = output_directory
- self.title = os.path.basename(self.input_directory)
-
- def generate(self):
- self.__generate()
- return True
-
- def __generate(self):
- img_dir = self.input_directory
-
- files = os.listdir(img_dir)
- files.sort(key=self.__alphanum_key) # sort alphabetical, not asciibetical
- lowest_max_zoom = 0
- zoomlevels = []
- images = []
-
- for i, f in enumerate(files):
- ignore, ext = os.path.splitext(f)
- if f.startswith("."):
- continue # ignore hidden files
-
- if ext in ('.jp2', '.jpx'):
- width, height = self.__img_size_jp2(os.path.join(img_dir, f))
- elif ext in ('.tiff', '.tif'):
- width, height = self.__img_size_tiff(os.path.join(img_dir, f))
- else:
- continue # ignore anything else.
-
- max_zoom = self.__get_max_zoom_level(width, height)
- im = {
- 'mx_w': width,
- 'mx_h': height,
- 'mx_z': max_zoom,
- 'fn': f
- }
- images.append(im)
- zoomlevels.append(max_zoom)
-
- lowest_max_zoom = min(zoomlevels)
- max_ratio = min_ratio = 0
- t_wid = [0] * (lowest_max_zoom + 1)
- t_hei = [0] * (lowest_max_zoom + 1)
- mx_h = [0] * (lowest_max_zoom + 1)
- mx_w = [0] * (lowest_max_zoom + 1)
- a_wid = []
- a_hei = []
-
- pgs = []
- max_ratio = 0
- min_ratio = 100 # initialize high so min() works
-
- for im in images:
- page_data = []
-
- for j in xrange(lowest_max_zoom + 1):
- h = self.__incorporate_zoom(im['mx_h'], lowest_max_zoom - j)
- w = self.__incorporate_zoom(im['mx_w'], lowest_max_zoom - j)
- page_data.append({
- 'h': math.floor(h),
- 'w': math.floor(w)
- })
-
- t_wid[j] = t_wid[j] + w
- t_hei[j] = t_hei[j] + h
- mx_h[j] = max(h, mx_h[j])
- mx_w[j] = max(w, mx_w[j])
- ratio = float(h) / float(w)
- max_ratio = max(ratio, max_ratio)
- min_ratio = min(ratio, min_ratio)
-
- m_z = im['mx_z']
- fn = im['fn']
-
- pgs.append({
- 'd': page_data,
- 'm': m_z,
- 'f': fn
- })
-
- for j in xrange(lowest_max_zoom + 1):
- a_wid.append(t_wid[j] / float(len(images)))
- a_hei.append(t_hei[j] / float(len(images)))
-
- dims = {
- 'a_wid': a_wid,
- 'a_hei': a_hei,
- 'max_w': mx_w,
- 'max_h': mx_h,
- 'max_ratio': max_ratio,
- 'min_ratio': min_ratio,
- 't_hei': t_hei,
- 't_wid': t_wid
- }
-
- data = {
- 'item_title': self.title,
- 'dims': dims,
- 'max_zoom': lowest_max_zoom,
- 'pgs': pgs
- }
-
- # write the JSON out to a file in the output directory
- f = open(os.path.join(self.output_directory, "{0}.json".format(self.title)), 'w')
- json.dump(data, f)
- f.close()
-
- def __img_size_jp2(self, fn):
- # we implement our own header reader since all the existing
- # JPEG2000 libraries seem to read the entire image in, and they're
- # just tooooo sloooowww.
- f = open(fn, 'rb')
- d = f.read(100)
- startHeader = d.find('ihdr')
- hs = startHeader + 4
- ws = startHeader + 8
- height = ord(d[hs]) * 256 ** 3 + ord(d[hs + 1]) * 256 ** 2 + ord(d[hs + 2]) * 256 + ord(d[hs + 3])
- width = ord(d[ws]) * 256 ** 3 + ord(d[ws + 1]) * 256 ** 2 + ord(d[ws + 2]) * 256 + ord(d[ws + 3])
- f.close()
- return (width, height)
-
- def __img_size_tiff(self, fn):
- # We can use the VIPS module here for TIFF, since it can handle all the
- # ins and outs of the TIFF image format quite nicely.
-
- # if we're not dealing with TIFF, we don't need to import a non-core library.
- # Since jpeg2000 works by reading the header directly, we've made the choice to
- # import this with every call. It's not ideal, but it shouldn't be too bad.
- # If you are dealing with TIFF files and want to make a slight optimization you
- # can move this import statement to the top of this script.
- from vipsCC import VImage
- im = VImage.VImage(fn)
- size = (im.Xsize(), im.Ysize())
- del im
- return size
-
- def __get_max_zoom_level(self, width, height):
- largest_dim = max(width, height)
- zoom_levels = math.ceil(math.log((largest_dim + 1) / float(256 + 1), 2))
- return int(zoom_levels)
-
- def __incorporate_zoom(self, img_dim, zoom_diff):
- return img_dim / float(2 ** zoom_diff)
-
- def __tryint(self, s):
- try:
- return int(s)
- except:
- return s
-
- def __alphanum_key(self, s):
- """ Turn a string into a list of string and number chunks.
- "z23a" -> ["z", 23, "a"]
- """
- return [self.__tryint(c) for c in re.split('([0-9]+)', s)]
-
-
-if __name__ == "__main__":
- usage = "%prog [options] input_directory output_directory"
- parser = OptionParser(usage)
- options, args = parser.parse_args()
-
- if len(args) < 1:
- parser.print_help()
- parser.error("You must specify a directory to process.")
-
- opts = {
- 'input_directory': args[0],
- 'output_directory': args[1]
- }
-
- gen = GenerateJson(**opts)
- sys.exit(gen.generate())
diff --git a/source/processing/process.py b/source/processing/process.py
deleted file mode 100644
index 6aee84f3..00000000
--- a/source/processing/process.py
+++ /dev/null
@@ -1,231 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (C) 2011, 2012 by Wendy Liu, Andrew Hankinson
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-# THE SOFTWARE.
-
-import sys
-import os
-import re
-import tempfile
-import subprocess
-import shutil
-import generate_json
-from optparse import OptionParser
-
-"""
-This is a python script/module that will process all the images in a directory
-and try to convert them into the JPEG2000 or Pyramid TIFF image formats. You
-must have the ImageMagick "convert" executable installed to run this script.
-We assume the location of this executable to be "/usr/local/bin/convert" unless
-otherwise specified with the "-i" option/convert_location parameter.
-
-To convert files to JPEG2000, specify the "-t jpeg" option when running this
-script or set the image_type parameter to "jpeg" when creating a DivaConverter
-object. This requires the "kdu_compress" executable included with the Kakadu
-JPEG2000 library; we assume the location of this executable to be
-"/usr/local/bin/kdu_compress" unless otherwise specified with the "-k"
-option/kdu_compress_location parameter.
-
-You can download this library for free at:
-http://www.kakadusoftware.com/index.php?option=com_content&task=view&id=26&Itemid=22
-
-To convert files to Pyramid TIFF, specify the "-t tiff" option when running this
-script or set the image_type parameter to "tiff" when creating a DivaConverter
-object. This requires the "vipsCC" Python module included with an installation
-of the VIPS image processing suite. If you are installing VIPS using Homebrew
-on Mac OS X, make sure to run "brew install vips --with-imagemagick".
-
-Dependencies:
- Python (version < 3.0)
- Kakadu Command-line Utilities
- ImageMagick convert utility
-
-Usage:
- Either run it with
- python process.py [input_directory] [output_directory] [data_output_directory]
- or chmod it to executable (chmod +x process.py) and run it with
- ./process.py [input_directory] [output_directory] [data_output_directory]
-
- You can also use this as a Python module:
-
- import process
- c = DivaConverter(input_directory, output_directory, data_output_directory)
- c.convert()
-"""
-
-VALID_INPUT_EXTENSIONS = [".jpg", ".jpeg", ".tif", ".tiff", ".JPG", ".JPEG", ".TIF", ".TIFF", '.png', '.PNG']
-
-class DivaConverter(object):
- def __init__(self, input_directory, output_directory, data_output_directory, **kwargs):
- self.input_directory = os.path.abspath(input_directory)
- self.output_directory = os.path.abspath(output_directory)
- self.data_output_directory = os.path.abspath(data_output_directory)
- self.verbose = True
- self.image_type = kwargs['image_type']
- self.compression = "none"
- self.convert_location = kwargs['convert_location']
- self.kdu_compress_location = kwargs['kdu_compress_location']
-
- if not os.path.exists(self.convert_location):
- print(("You do not have the ImageMagick 'convert' executable installed at {0}.").format(self.convert_location))
- print("If this path is incorrect, please specify an alternate location using the '-i (location)' command line option for this script.")
- sys.exit(-1)
-
- if self.image_type == "tiff":
- self.extension = "tiff"
- try:
- from vipsCC import VImage
- except ImportError as e:
- print("You have specified TIFF as the output format, but do not have the VIPS Python library installed.")
- sys.exit(-1)
-
- elif self.image_type == "jpeg":
- self.extension = "jp2"
- if not os.path.exists(self.kdu_compress_location):
- print(("You have specified JP2 as the output format, but do not have the kdu_compress executable installed at {0}.").format(self.kdu_compress_location))
- print("If this path is incorrect, please specify an alternate location using the '-k (location)' command line option for this script.")
- sys.exit(-1)
-
- else:
- print("The '-t' option must either be 'tiff' for Pyramid TIFF or 'jpeg' for JPEG2000. Omitting the '-t' option will default to 'jpeg'.")
- print("Usage: process.py -t tiff input_directory output_directory data_output_directory")
- sys.exit(-1)
-
- def convert(self):
- if not os.path.isdir(self.output_directory):
- os.mkdir(self.output_directory)
-
- to_process = [os.path.join(self.input_directory, f)
- for f in os.listdir(self.input_directory) if self.__filter_fnames(f)]
-
- to_process.sort(key=self.__alphanum_key)
-
- for image in to_process:
- tdir = None
- name = os.path.basename(image)
- name, ext = os.path.splitext(name)
- tdir = tempfile.mkdtemp()
-
- input_file = os.path.join(tdir, "{0}.tiff".format(name))
- output_file = os.path.join(self.output_directory, "{0}.{1}".format(name, self.extension))
-
- if self.verbose:
- print("Using ImageMagick to pre-convert {0} to TIFF".format(image))
- subprocess.call([self.convert_location,
- "-compress", "None",
- image,
- input_file])
-
- if self.verbose:
- print("Converting {0} to {1}".format(name, self.image_type))
-
- if self.image_type == "tiff":
- self.__process_tiff(input_file, output_file)
- else:
- self.__process_jpeg2000(input_file, output_file)
-
- if self.verbose:
- print("Cleaning up")
- shutil.rmtree(tdir)
-
- if self.verbose:
- print("Done converting {0}".format(image))
-
- json_opts = {
- 'input_directory': self.output_directory,
- 'output_directory': self.data_output_directory
- }
- json_generator = generate_json.GenerateJson(**json_opts)
- json_generator.generate()
-
- return True
-
- def __process_jpeg2000(self, input_file, output_file):
- subprocess.call([self.kdu_compress_location,
- "-i", input_file,
- "-o", output_file,
- "Clevels=5",
- "Cblk={64,64}",
- "Cprecincts={256,256},{256,256},{128,128}",
- "Creversible=yes",
- "Cuse_sop=yes",
- "Corder=LRCP",
- "ORGgen_plt=yes",
- "ORGtparts=R",
- "-rate", "-,1,0.5,0.25"])
-
- def __process_tiff(self, input_file, output_file):
- from vipsCC import VImage
- vimage = VImage.VImage(input_file)
- vimage.vips2tiff('{0}:{1},tile:256x256,pyramid'.format(output_file, self.compression))
- del vimage
-
- def __filter_fnames(self, fname):
- if fname.startswith('.'):
- return False
- if fname.startswith('_'):
- return False
- if fname == "Thumbs.db":
- return False
- if os.path.splitext(fname)[-1].lower() not in VALID_INPUT_EXTENSIONS:
- return False
- return True
-
- def __tryint(self, s):
- try:
- return int(s)
- except:
- return s
-
- def __alphanum_key(self, s):
- """ Turn a string into a list of string and number chunks.
- "z23a" -> ["z", 23, "a"]
- See:
- http://www.codinghorror.com/blog/2007/12/sorting-for-humans-natural-sort-order.html
- """
- return [self.__tryint(c) for c in re.split('([0-9]+)', s)]
-
-
-if __name__ == "__main__":
- usage = "%prog [options] input_directory output_directory data_output_directory"
- parser = OptionParser(usage)
- parser.add_option("-t", "--type", action="store", default="jpeg", help="The type of images this script should produce. Options are 'jpeg' or 'tiff'.", dest="type")
- parser.add_option("-k", "--kdu-compress-location", action="store", default="/usr/local/bin/kdu_compress", help="The location of the 'kdu_compress' executable provided by the Kakadu JPEG2000 library.", dest="kdu_compress_location")
- parser.add_option("-i", "--imagemagick-convert-location", action="store", default="/usr/local/bin/convert", help="The location of the 'convert' executable provided by ImageMagick.", dest="convert_location")
- options, args = parser.parse_args()
-
- if len(args) < 3:
- print("You must specify an input, output, and data output directory.")
- print("Usage: process.py input_directory output_directory data_output_directory")
- sys.exit(-1)
-
- opts = {
- 'input_directory': args[0],
- 'output_directory': args[1],
- 'data_output_directory': args[2],
- 'kdu_compress_location': options.kdu_compress_location,
- 'convert_location': options.convert_location,
- 'image_type': options.type
- }
-
- c = DivaConverter(**opts)
- c.convert()
-
- sys.exit(0)
diff --git a/test/_setup.js b/test/_setup.js
new file mode 100644
index 00000000..d7422491
--- /dev/null
+++ b/test/_setup.js
@@ -0,0 +1,13 @@
+let expect = require('chai').expect;
+global.expect = expect;
+
+let assert = require('chai').assert;
+global.assert = assert;
+
+let wrapper = document.createElement('div');
+wrapper.id = 'parent-wrapper';
+wrapper.setAttribute('style', 'width: 984px; height: 800px');
+let div = document.createElement('div');
+div.id = 'diva-wrapper';
+wrapper.appendChild(div);
+document.body.appendChild(wrapper);
\ No newline at end of file
diff --git a/test/composite-image_test.js b/test/composite-image_test.js
new file mode 100644
index 00000000..64b97cd7
--- /dev/null
+++ b/test/composite-image_test.js
@@ -0,0 +1,94 @@
+import CompositeImage from '../source/js/composite-image';
+
+describe('Composite Image', function ()
+{
+ it('getTiles(zoomLevel) works properly', function ()
+ {
+ let tileLevels = [
+ dummyTileLevel({ zoomLevel: 2, baseRows: 1, baseCols: 1 }),
+ dummyTileLevel({ zoomLevel: 1, baseRows: 1, baseCols: 1 }),
+ dummyTileLevel({ zoomLevel: 0, baseRows: 1, baseCols: 1 })
+ ];
+
+ let composite = new CompositeImage(tileLevels);
+
+ // Load the really low-res tile
+ composite.updateWithLoadedUrls(getUrls(tileLevels[2].tiles));
+
+ assert.deepEqual(composite.getTiles(2), tileLevels[2].tiles, 'Should load available images');
+
+ let mostOfLevel1 = tileLevels[1].tiles.slice(1);
+ composite.updateWithLoadedUrls(getUrls(mostOfLevel1));
+
+ assert.deepEqual(composite.getTiles(2), [tileLevels[2].tiles[0]].concat(mostOfLevel1),
+ 'Should load lower-res tiles if not completely covered (with low-res first)');
+
+ assert.deepEqual(composite.getTiles(0), tileLevels[2].tiles,
+ 'Should prefer tiles at the specified zoomLevel, then higher levels, then lower');
+
+ composite.clear();
+ composite.updateWithLoadedUrls(getUrls(tileLevels[2].tiles));
+ let mostOfLevel0 = tileLevels[0].tiles.slice(1);
+ composite.updateWithLoadedUrls(getUrls(mostOfLevel0));
+
+ assert.deepEqual(composite.getTiles(2), [tileLevels[2].tiles[0]].concat(mostOfLevel0),
+ 'Should load lower-res tiles across multiple zoom levels if not completely covered');
+ });
+});
+
+function dummyTileLevel(options)
+{
+ let zoomLevel = options.zoomLevel,
+ baseRows = options.baseRows,
+ baseCols = options.baseCols;
+
+ let tiles = [];
+ let scaleRatio = Math.pow(2, zoomLevel);
+
+ for (let baseRow=0; baseRow < baseRows; baseRow++) {
+ for (let baseCol=0; baseCol < baseCols; baseCol++) {
+ tiles.push.apply(tiles, dummyTiles(scaleRatio, baseRow, baseCol));
+ }
+ }
+
+ return {
+ zoomLevel: zoomLevel,
+ rows: baseRows * scaleRatio,
+ cols: baseCols * scaleRatio,
+ tiles: tiles
+ };
+}
+
+function dummyTiles(scaleRatio, baseRow, baseCol)
+{
+ let tiles = [];
+
+ for (let rowOffset=0; rowOffset < scaleRatio; rowOffset++)
+ {
+ for (let colOffset=0; colOffset < scaleRatio; colOffset++)
+ {
+ let row = baseRow * scaleRatio + rowOffset;
+ let col = baseCol * scaleRatio + colOffset;
+
+ let url = 'dummy://ratio/' + scaleRatio + '/' +
+ baseRow + '[' + rowOffset + ']/' +
+ baseCol + '[' + colOffset + ']';
+
+ // FIXME: More fields
+ tiles.push({
+ url: url,
+ row: row,
+ col: col
+ });
+ }
+ }
+
+ return tiles;
+}
+
+function getUrls(tiles) {
+ return tiles.map(function (tile)
+ {
+ return tile.url;
+ });
+}
\ No newline at end of file
diff --git a/test/diva_test.js b/test/diva_test.js
new file mode 100644
index 00000000..989808a4
--- /dev/null
+++ b/test/diva_test.js
@@ -0,0 +1,43 @@
+import Diva from "../source/js/diva";
+import {
+ DivaParentElementNotFoundException,
+ ObjectDataNotSuppliedException
+} from "../source/js/exceptions";
+
+describe('Viewer', function ()
+{
+ it('should throw an exception if the parent is not found', function ()
+ {
+ let fcn = () => { new Diva('blah', {}); };
+ expect(fcn).to.throw(DivaParentElementNotFoundException);
+ });
+
+ it('should not throw an exception if the parent div is found', () =>
+ {
+ let fcn = () => { new Diva('diva-wrapper', {}); };
+ expect(fcn).to.not.throw(DivaParentElementNotFoundException);
+ });
+
+ it('should allow an element object to be passed in as a parent', () =>
+ {
+ let parent = document.createElement('div');
+ let fcn = () => { new Diva(parent, {}); };
+ expect(fcn).to.not.throw(DivaParentElementNotFoundException);
+ });
+
+ it('should throw an exception if objectData is not supplied', () =>
+ {
+ let parent = document.createElement('div');
+ let fcn = () => { new Diva(parent, {}); };
+ expect(fcn).to.throw(ObjectDataNotSuppliedException);
+ });
+
+ it('should not throw an exception if objectData is supplied', () =>
+ {
+ let parent = document.createElement('div');
+ let fcn = () => { new Diva(parent, {
+ objectData: 'https://example.com/iiif/manifest.json'
+ }); };
+ expect(fcn).to.not.throw(ObjectDataNotSuppliedException);
+ });
+});
diff --git a/test/hash-params_test.js b/test/hash-params_test.js
new file mode 100644
index 00000000..2ef18942
--- /dev/null
+++ b/test/hash-params_test.js
@@ -0,0 +1,221 @@
+import Diva from '../source/js/diva';
+
+// jQuery mimic
+let el = document.getElementById.bind(document);
+
+describe('Hash Params', function ()
+{
+ beforeEach(function ()
+ {
+ // reset event subscription so only current test is subscribed
+ Diva.Events.unsubscribeAll();
+
+ // recreate diva instance
+ let oldWrapper = document.getElementById('parent-wrapper');
+ oldWrapper.parentNode.removeChild(oldWrapper);
+ let newWrapper = document.createElement('div');
+ newWrapper.id = 'parent-wrapper';
+ newWrapper.setAttribute('style', 'width: 984px;');
+ let div = document.createElement('div');
+ div.id = 'diva-wrapper';
+ newWrapper.appendChild(div);
+ document.body.appendChild(newWrapper);
+ });
+
+ let testHashParams = function (testName, hashParams, onReadyCallback, config)
+ {
+ it(testName, function (done)
+ {
+ window.location.hash = Object.keys(hashParams).map(function (param)
+ {
+ return param + '=' + hashParams[param];
+ }).join('&');
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ hashParamSuffix: config && config.hashParamSuffix ? config.hashParamSuffix : '',
+ enableFilename: config && config.enableFilename ? config.enableFilename : ''
+ });
+
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ let scroll = {
+ left: settings.viewportElement.scrollLeft,
+ top: settings.viewportElement.scrollTop
+ };
+
+ onReadyCallback.call(this, settings, scroll);
+ done();
+ });
+ });
+ };
+
+ testHashParams('works with hashParamSuffix', {vxyz: 'g', f: 'true'}, function (settings)
+ {
+ assert.isOk(settings.inGrid, 'Should read properties with the specified suffix');
+ assert.isOk(!settings.inFullscreen, 'Should not read properties without it');
+ }, {hashParamSuffix: 'xyz'});
+
+ testHashParams("grid view (v)", {v: "g"}, function (settings)
+ {
+ assert.isOk(settings.inGrid, "inGrid setting should be true");
+ assert.strictEqual(el(settings.selector + 'view-menu').children[0].classList[0], 'diva-grid-icon', "Current toolbar view icon should be the grid icon");
+ });
+
+ testHashParams("book view (v)", {v: "b"}, function (settings)
+ {
+ assert.isOk(settings.inBookLayout, "inBookLayout setting should be true");
+ assert.strictEqual(el(settings.selector + 'view-menu').children[0].classList[0], 'diva-book-icon', "Current toolbar view icon should be the book icon");
+ assert.isOk(this.isPageInViewport(0), 'There should be some book pages');
+ });
+
+ testHashParams("invalid view parameter (v) ", {v: "a"}, function (settings)
+ {
+ assert.isFalse(settings.inBookLayout, 'Should not be in book layout');
+ assert.isFalse(settings.inGrid, 'Should also not be in grid layout');
+ });
+
+ testHashParams("fullscreen (f)", {f: "true"}, function (settings)
+ {
+ assert.isOk(settings.inFullscreen, "inFullscreen setting should be true");
+ assert.isOk(document.body.classList.contains('diva-hide-scrollbar'), "The body element should have the hide-scrollbar class");
+ });
+
+ testHashParams("view (v) = 'g' and fullscreen (f)", {v: "g", f: "true"}, function (settings)
+ {
+ assert.isOk(settings.inFullscreen, "inFullscreen setting should be true");
+ assert.isOk(settings.inGrid, "inGrid setting should be true");
+ });
+
+ testHashParams("zoom level (z) - valid value", {z: "3", f: "false"}, function (settings)
+ {
+ assert.strictEqual(settings.zoomLevel, 3, "Initial zoom level should be 3");
+ });
+
+ testHashParams("zoom level (z) - invalid value", {z: "6"}, function (settings)
+ {
+ assert.strictEqual(settings.zoomLevel, 0, "Initial zoom was invalid but >= 0, should be set to the min (0)");
+ });
+
+ testHashParams("zoom level (z) and view (v) = 'g' ", {z: "1", v: "g"}, function (settings)
+ {
+ assert.strictEqual(settings.zoomLevel, 1, "Initial zoom level should be 1");
+ assert.isOk(settings.inGrid, "Should be in grid initially");
+
+ // Now let's switch into document view and see if the zoom level is preserved
+ document.getElementsByClassName('diva-document-icon')[0].click();
+ assert.strictEqual(settings.zoomLevel, 1, "Zoom level setting should still be 1");
+ // zoom level is 0 indexed internally, so setting to 1 should display 2.00
+ assert.strictEqual(el(settings.selector + 'zoom-label').textContent, "Zoom level: 2", "Zoom buttons label should show a zoom level of 2");
+ });
+
+ testHashParams("zoom level (z) and fullscreen (f)", {z: "1", f: "true"}, function (settings)
+ {
+ assert.strictEqual(settings.zoomLevel, 1, "Initial zoom level should be 1");
+ assert.isOk(settings.inFullscreen, "Should be in fullscreen initially");
+
+ // Check that we're actually in fullscreen mode
+ assert.isOk(document.body.classList.contains('diva-hide-scrollbar'), "The body element should have the hide-scrollbar class");
+
+ // Check that the zoom level is actually 1 (second zoom)
+ assert.strictEqual(el(settings.selector + 'zoom-label').textContent, "Zoom level: 2", "Zoom buttons label should show a zoom level of 2");
+ });
+
+ testHashParams("pagesPerRow (n) - valid value", {n: "3"}, function (settings)
+ {
+ assert.strictEqual(settings.pagesPerRow, 3, "Pages per row should be 3 initially");
+ });
+
+ testHashParams("pagesPerRow (n) - invalid value", {n: "1"}, function (settings)
+ {
+ assert.strictEqual(settings.pagesPerRow, 8, "Pages per row should default to the maximum");
+ });
+
+ testHashParams("pagesPerRow (n) and view (v) = 'g'", {n: "3", v: "g"}, function (settings)
+ {
+ assert.strictEqual(settings.pagesPerRow, 3, "Pages per row should be 3 initially");
+ assert.isOk(settings.inGrid, "Should be in grid initially");
+
+ // Check that the pages per row setting is actually 3
+ assert.strictEqual(el(settings.selector + 'grid-label').textContent, "Pages per row: 3", "Grid buttons label should show 3 pages per row");
+ });
+
+ testHashParams("page filename (i) - valid value", {i: "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_003r.jp2"}, function (settings)
+ {
+ assert.strictEqual(settings.activePageIndex, 4, "The initial page should be page 5 (index of 4)");
+ }, {enableFilename: true});
+
+ testHashParams("page filename (i) - invalid value", {i: "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_000r.jp2"}, function (settings)
+ {
+ assert.strictEqual(settings.activePageIndex, 0, "The initial page should just be the first page");
+ }, {enableFilename: true});
+
+ testHashParams("page number (p) - valid value", {p: "6"}, function (settings)
+ {
+ assert.strictEqual(settings.activePageIndex, 5, "The initial page should be page 6 (index of 5)");
+ }, {enableFilename: false});
+
+ testHashParams("page number (p) - invalid value", {p: "600"}, function (settings)
+ {
+ assert.strictEqual(settings.activePageIndex, 0, "The initial page should just be the first page");
+ }, {enableFilename: false});
+
+ testHashParams("page number (p), view = 'g'", {p: "100", v: "g"}, function (settings)
+ {
+ assert.strictEqual(settings.activePageIndex, 99, "The initial page should be 100 (index of 99)");
+ assert.ok(settings.inGrid, "Should be in grid");
+ }, {enableFilename: false});
+
+ testHashParams("horizontal and vertical offsets (x, y) without page specified", {x: 100, y: 200}, function (settings, scroll)
+ {
+ assert.strictEqual(scroll.top, 0, 'y position should not change');
+ });
+
+ testHashParams("vertical offset (y) on first page - positive value", {y: "600", p: "1"}, function (settings, scroll)
+ {
+ assert.strictEqual(scroll.top, 353, "Should have scrolled 353 (600 = top of page - viewport y-center) vertically");
+ });
+
+ testHashParams("vertical offset (y) on first page - negative value", {y: "-600", p: "1"}, function (settings, scroll)
+ {
+ assert.strictEqual(scroll.top, 0, "Should not have scrolled negatively because, well, you can't");
+ });
+ testHashParams("vertical offset (y) and page number (p)", {y: 500, p: "50"}, function (settings, scroll)
+ {
+ let expectedTopScroll = 44994;
+ assert.strictEqual(settings.activePageIndex, 49, "Current page should be 50 (index of 49)");
+ assert.strictEqual(scroll.top, expectedTopScroll, "Should be heightAbovePages + 500 pixels of scroll from the top + page y-center");
+
+ // Check that the horizontal scroll hasn't been weirdly affected
+ let expectedLeftScroll = 0; // no scrollbar at this zoom level
+ assert.strictEqual(scroll.left, expectedLeftScroll, "Horizontal scroll should just center it");
+ }, {enableFilename: false, zoomLevel: 2});
+
+ testHashParams("horizontal offset (x) on first page - positive value", {x: "100", p: "1"}, function (settings, scroll)
+ {
+ // FIXME: https://github.com/DDMAL/diva.js/issues/331
+ assert.strictEqual(scroll.left, 0, "Horizontal scroll should center it + 100 pixels to the right");
+ });
+
+ testHashParams("horizontal offset (x) on first page - negative value", {x: "-100", p: "1"}, function (settings, scroll)
+ {
+ // FIXME: https://github.com/DDMAL/diva.js/issues/331
+ assert.strictEqual(scroll.left, 0, "Horizontal scroll should center it + 100 pixels to the left");
+ });
+
+ testHashParams("horizontal offset (x) and page number (p)", {x: 100, p: "50"}, function (settings, scroll)
+ {
+ // FIXME: https://github.com/DDMAL/diva.js/issues/331
+ let expectedTopScroll = 44741;
+ assert.strictEqual(scroll.top, expectedTopScroll, "vertical scroll should be just to page 50");
+ assert.strictEqual(scroll.left, 0, "Horizontal scroll should center it + 100 pixels to the right");
+ }, {enableFilename: false});
+
+ testHashParams("horizontal offset (x), vertical offset (y), page number (p)", {x: 100, y: 200, p: "50"}, function (settings, scroll)
+ {
+ // FIXME: https://github.com/DDMAL/diva.js/issues/331
+ let expectedTopScroll = 44694;
+ assert.strictEqual(scroll.top, expectedTopScroll, "vertical scroll should be to page 50 + 200 + page y-center");
+ assert.strictEqual(scroll.left, 0, "Horizontal scroll should center it + 100 pixels to the right");
+ }, {enableFilename: false});
+});
\ No newline at end of file
diff --git a/test/image-cache_test.js b/test/image-cache_test.js
new file mode 100644
index 00000000..c1bf0c86
--- /dev/null
+++ b/test/image-cache_test.js
@@ -0,0 +1,106 @@
+'use strict';
+
+import ImageCache from '../source/js/image-cache';
+
+describe('Image Cache', function ()
+{
+ it('Default max entries is 100', function ()
+ {
+ let cache = new ImageCache();
+ assert.strictEqual(cache.maxKeys, 100);
+ });
+
+ it('Evicts the least recently used entry', function ()
+ {
+ let cache = new ImageCache({ maxKeys: 2 });
+
+ let imgA = new Image();
+ let imgB = new Image();
+ let imgC = new Image();
+
+ cache.put('A', imgA);
+ cache.put('B', imgB);
+ cache.put('C', imgC);
+
+ assert.strictEqual(cache.has('A'), false, 'A evicted [has]');
+ assert.strictEqual(cache.has('B'), true, 'B remains [has]');
+ assert.strictEqual(cache.has('C'), true, 'C remains [has]');
+
+ assert.strictEqual(cache.get('A'), null, 'A evicted [get]');
+ assert.strictEqual(cache.get('B'), imgB, 'B remains [get]');
+ assert.strictEqual(cache.get('C'), imgC, 'C remains [get]');
+
+ cache.put('A', imgA);
+ assert.strictEqual(cache.has('A'), true, 'A restored [has v2]');
+ assert.strictEqual(cache.has('B'), false, 'B evicted [has v2]');
+ assert.strictEqual(cache.has('C'), true, 'C remains [has v2]');
+ });
+
+ it('Put overwrites existing entries and bumps their LRU position', function ()
+ {
+ let cache = new ImageCache({ maxKeys: 2 });
+
+ let imgA = new Image();
+ let imgA2 = new Image();
+ let imgB = new Image();
+ let imgC = new Image();
+
+ cache.put('A', imgA);
+ cache.put('B', imgB);
+ cache.put('A', imgA2);
+ cache.put('C', imgC);
+
+ assert.strictEqual(cache.get('A'), imgA2, 'A overwritten, still in cache');
+ assert.strictEqual(cache.get('B'), null, 'B evicted');
+ assert.strictEqual(cache.get('C'), imgC, 'C still in cache');
+ });
+
+ it("Entries which have been acquire()'d are promoted", function ()
+ {
+ let cache = new ImageCache({ maxKeys: 2 });
+
+ let imgA = new Image();
+ let imgB = new Image();
+ let imgC = new Image();
+
+ cache.put('A', imgA);
+ cache.put('B', imgB);
+
+ cache.acquire('A');
+ cache.release('A');
+
+ cache.put('C', imgC); // A would be evicted here if not promoted
+
+ assert.strictEqual(cache.has('A'), true, 'A remains');
+ assert.strictEqual(cache.has('B'), false, 'B evicted');
+ assert.strictEqual(cache.has('C'), true, 'C remains');
+ });
+
+ it("Entries which have been acquire()'d are not evicted until released", function ()
+ {
+ let cache = new ImageCache({ maxKeys: 2 });
+
+ let imgA = new Image();
+ let imgB = new Image();
+ let imgC = new Image();
+
+ cache.put('A', imgA);
+ cache.acquire('A');
+
+ cache.put('B', imgB);
+ cache.acquire('B');
+
+ cache.put('C', imgC); // A would be evicted here if not held
+
+ assert.strictEqual(cache.has('A'), true, 'A remains');
+ assert.strictEqual(cache.has('B'), true, 'B remains');
+ assert.strictEqual(cache.has('C'), true, 'C still entered');
+
+ cache.release('B'); // B will be evicted even though it still has priority over A
+
+ assert.strictEqual(cache.has('A'), true, 'A still remains (held)');
+ assert.strictEqual(cache.has('B'), false, 'B evicted');
+ assert.strictEqual(cache.has('C'), true, 'C still remains (by LRU policy)');
+ });
+
+});
\ No newline at end of file
diff --git a/test/main.js b/test/main.js
new file mode 100644
index 00000000..4539eb78
--- /dev/null
+++ b/test/main.js
@@ -0,0 +1,6 @@
+
+const srcContext = require.context('../source/js', true, /\.js$/);
+srcContext.keys().forEach(srcContext);
+
+const testsContext = require.context('.', true, /\.js$/);
+testsContext.keys().forEach(testsContext);
\ No newline at end of file
diff --git a/demo/beromunster-iiif-test.json b/test/manifests/beromunsterManifest.json
similarity index 100%
rename from demo/beromunster-iiif-test.json
rename to test/manifests/beromunsterManifest.json
diff --git a/test/manifests/iiifv2.json b/test/manifests/iiifv2.json
new file mode 100644
index 00000000..f4c4cce0
--- /dev/null
+++ b/test/manifests/iiifv2.json
@@ -0,0 +1,11032 @@
+{
+ "@context": "http://iiif.io/api/presentation/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json",
+ "@type": "sc:Manifest",
+ "label": "Salzinnes, CDN-Hsmu M2149.L4",
+ "metadata": [{"label": "Date", "value": "1554-5"}, {
+ "label": "Siglum",
+ "value": "CDN-Hsmu M2149.L4"
+ }, {"label": "Provenance", "value": "Salzinnes"}],
+ "description": "Cistercian antiphonal from the Abbey of Salzinnes, Namur, in the Diocese of Li\u00e8ge. Manuscript produced on vellum and completed in 1554 and 1555. Square notation on red, 4-line staves. Monastic cursus. 238 folios with two lacunae (Volume I, f.125 and Volume II, f.32) and several inserted folios with full-page illuminations (between ff.45 and 46, ff. 50 and 51, and ff.117 and 118). 61.5 x 39.5 x 14.5 cm.\nPainted in a bright palette in gouache, the Salzinnes Antiphonal contains six full-page illuminations and six historiated initials and includes several scenes depicting multiple narratives from the Bible. The most significant feature of the Antiphonal is the full-length portraits of thirty-four nuns with their names in cursive and block script, some with patrons\u2019 coats-of-arms. In addition, three different religious orders are represented: Cistercians, Carmelites and Benedictines, in honour of the de Glymes family.\n",
+ "sequences": [{
+ "@type": "sc:Sequence",
+ "canvases": [{
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-001r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 001r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_001r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_001r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-001r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-001v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 001v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_001v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_001v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-001v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-002r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 002r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_002r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_002r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-002r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-002v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 002v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_002v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_002v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-002v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-003r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 003r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_003r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_003r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-003r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-003v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 003v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_003v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_003v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-003v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-004r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 004r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_004r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_004r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-004r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-004v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 004v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_004v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_004v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-004v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-005r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 005r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_005r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_005r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-005r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-005v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 005v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_005v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_005v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-005v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-006r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 006r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_006r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_006r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-006r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-006v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 006v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_006v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_006v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-006v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-007r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 007r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_007r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_007r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-007r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-007v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 007v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_007v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_007v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-007v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-008r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 008r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_008r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_008r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-008r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-008v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 008v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_008v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_008v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-008v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-009r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 009r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_009r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_009r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-009r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-009v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 009v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_009v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_009v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-009v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-010r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 010r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_010r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_010r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-010r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-010v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 010v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_010v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_010v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-010v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-011r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 011r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_011r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_011r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-011r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-011v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 011v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_011v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_011v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-011v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-012r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 012r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_012r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_012r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-012r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-012v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 012v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_012v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_012v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-012v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-013r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 013r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_013r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_013r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-013r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-013v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 013v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_013v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_013v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-013v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-014r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 014r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_014r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_014r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-014r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-014v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 014v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_014v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_014v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-014v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-015r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 015r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_015r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_015r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-015r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-015v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 015v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_015v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_015v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-015v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-016r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 016r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_016r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_016r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-016r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-016v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 016v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_016v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_016v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-016v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-017r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 017r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_017r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_017r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-017r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-017v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 017v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_017v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_017v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-017v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-018r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 018r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_018r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_018r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-018r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-018v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 018v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_018v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_018v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-018v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-019r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 019r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_019r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_019r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-019r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-019v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 019v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_019v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_019v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-019v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-020r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 020r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_020r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_020r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-020r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-020v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 020v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_020v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_020v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-020v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-021r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 021r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_021r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_021r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-021r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-021v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 021v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_021v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_021v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-021v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-022r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 022r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_022r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_022r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-022r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-022v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 022v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_022v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_022v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-022v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-023r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 023r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_023r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_023r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-023r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-023v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 023v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_023v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_023v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-023v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-024r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 024r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_024r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_024r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-024r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-024v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 024v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_024v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_024v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-024v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-025r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 025r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_025r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_025r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-025r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-025v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 025v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_025v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_025v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-025v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-026r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 026r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_026r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_026r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-026r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-026v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 026v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_026v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_026v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-026v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-027r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 027r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_027r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_027r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-027r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-027v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 027v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_027v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_027v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-027v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-028r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 028r",
+ "height": 6993,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_028r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6993,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_028r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-028r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-028v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 028v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_028v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_028v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-028v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-029r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 029r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_029r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_029r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-029r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-029v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 029v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_029v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_029v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-029v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-030r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 030r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_030r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_030r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-030r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-030v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 030v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_030v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_030v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-030v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-031r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 031r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_031r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_031r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-031r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-031v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 031v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_031v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_031v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-031v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-032r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 032r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_032r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_032r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-032r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-032v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 032v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_032v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_032v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-032v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-033r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 033r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_033r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_033r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-033r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-033v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 033v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_033v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_033v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-033v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-034r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 034r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_034r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_034r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-034r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-034v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 034v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_034v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_034v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-034v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-035r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 035r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_035r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_035r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-035r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-035v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 035v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_035v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_035v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-035v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-036r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 036r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_036r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_036r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-036r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-036v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 036v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_036v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_036v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-036v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-037r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 037r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_037r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_037r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-037r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-037v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 037v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_037v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_037v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-037v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-038r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 038r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_038r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_038r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-038r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-038v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 038v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_038v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_038v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-038v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-039r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 039r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_039r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_039r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-039r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-039v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 039v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_039v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_039v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-039v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-040r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 040r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_040r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_040r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-040r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-040v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 040v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_040v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_040v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-040v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-041r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 041r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_041r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_041r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-041r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-041v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 041v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_041v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_041v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-041v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-042r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 042r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_042r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_042r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-042r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-042v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 042v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_042v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_042v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-042v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-043r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 043r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_043r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_043r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-043r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-043v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 043v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_043v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_043v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-043v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-044r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 044r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_044r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_044r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-044r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-044v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 044v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_044v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_044v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-044v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-045r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 045r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_045r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_045r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-045r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-045v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 045v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_045v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_045v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-045v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-046r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 046r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_046r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_046r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-046r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-046v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 046v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_046v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_046v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-046v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-047r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 047r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_047r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_047r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-047r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-047v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 047v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_047v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_047v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-047v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-048r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 048r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_048r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_048r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-048r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-048v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 048v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_048v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_048v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-048v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-049r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 049r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_049r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_049r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-049r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-049v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 049v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_049v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_049v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-049v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-050r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 050r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_050r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_050r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-050r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-050v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 050v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_050v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_050v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-050v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-051r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 051r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_051r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_051r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-051r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-051v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 051v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_051v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_051v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-051v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-052r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 052r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_052r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_052r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-052r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-052v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 052v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_052v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_052v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-052v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-053r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 053r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_053r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_053r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-053r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-053v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 053v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_053v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_053v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-053v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-054r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 054r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_054r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_054r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-054r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-054v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 054v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_054v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_054v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-054v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-055r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 055r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_055r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_055r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-055r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-055v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 055v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_055v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_055v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-055v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-056r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 056r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_056r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_056r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-056r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-056v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 056v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_056v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_056v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-056v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-057r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 057r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_057r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_057r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-057r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-057v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 057v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_057v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_057v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-057v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-058r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 058r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_058r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_058r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-058r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-058v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 058v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_058v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_058v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-058v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-059r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 059r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_059r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_059r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-059r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-059v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 059v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_059v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_059v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-059v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-060r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 060r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_060r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_060r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-060r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-060v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 060v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_060v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_060v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-060v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-061r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 061r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_061r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_061r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-061r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-061v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 061v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_061v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_061v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-061v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-062r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 062r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_062r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_062r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-062r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-062v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 062v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_062v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_062v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-062v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-063r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 063r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_063r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_063r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-063r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-063v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 063v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_063v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_063v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-063v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-064r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 064r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_064r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_064r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-064r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-064v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 064v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_064v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_064v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-064v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-065r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 065r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_065r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_065r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-065r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-065v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 065v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_065v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_065v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-065v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-066r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 066r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_066r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_066r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-066r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-066v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 066v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_066v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_066v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-066v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-067r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 067r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_067r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_067r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-067r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-067v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 067v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_067v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_067v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-067v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-068r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 068r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_068r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_068r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-068r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-068v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 068v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_068v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_068v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-068v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-069r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 069r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_069r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_069r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-069r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-069v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 069v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_069v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_069v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-069v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-070r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 070r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_070r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_070r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-070r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-070v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 070v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_070v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_070v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-070v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-071r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 071r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_071r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_071r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-071r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-071v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 071v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_071v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_071v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-071v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-072r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 072r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_072r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_072r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-072r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-072v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 072v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_072v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_072v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-072v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-073r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 073r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_073r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_073r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-073r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-073v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 073v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_073v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_073v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-073v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-074r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 074r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_074r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_074r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-074r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-074v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 074v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_074v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_074v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-074v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-075r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 075r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_075r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_075r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-075r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-075v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 075v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_075v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_075v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-075v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-076r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 076r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_076r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_076r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-076r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-076v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 076v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_076v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_076v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-076v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-077r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 077r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_077r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_077r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-077r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-077v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 077v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_077v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_077v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-077v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-078r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 078r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_078r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_078r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-078r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-078v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 078v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_078v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_078v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-078v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-079r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 079r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_079r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_079r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-079r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-079v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 079v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_079v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_079v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-079v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-080r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 080r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_080r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_080r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-080r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-080v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 080v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_080v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_080v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-080v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-081r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 081r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_081r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_081r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-081r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-081v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 081v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_081v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_081v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-081v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-082r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 082r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_082r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_082r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-082r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-082v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 082v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_082v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_082v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-082v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-083r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 083r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_083r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_083r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-083r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-083v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 083v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_083v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_083v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-083v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-084r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 084r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_084r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_084r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-084r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-084v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 084v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_084v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_084v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-084v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-085r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 085r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_085r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_085r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-085r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-085v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 085v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_085v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_085v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-085v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-086r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 086r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_086r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_086r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-086r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-086v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 086v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_086v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_086v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-086v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-087r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 087r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_087r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_087r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-087r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-087v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 087v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_087v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_087v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-087v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-088r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 088r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_088r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_088r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-088r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-088v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 088v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_088v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_088v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-088v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-089r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 089r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_089r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_089r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-089r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-089v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 089v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_089v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_089v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-089v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-090r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 090r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_090r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_090r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-090r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-090v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 090v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_090v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_090v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-090v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-091r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 091r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_091r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_091r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-091r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-091v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 091v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_091v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_091v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-091v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-092r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 092r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_092r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_092r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-092r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-092v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 092v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_092v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_092v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-092v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-093r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 093r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_093r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_093r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-093r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-093v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 093v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_093v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_093v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-093v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-094r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 094r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_094r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_094r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-094r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-094v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 094v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_094v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_094v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-094v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-095r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 095r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_095r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_095r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-095r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-095v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 095v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_095v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_095v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-095v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-096r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 096r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_096r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_096r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-096r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-096v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 096v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_096v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_096v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-096v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-097r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 097r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_097r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_097r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-097r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-097v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 097v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_097v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_097v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-097v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-098r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 098r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_098r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_098r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-098r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-098v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 098v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_098v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_098v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-098v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-099r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 099r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_099r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_099r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-099r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-099v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 099v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_099v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_099v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-099v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-100r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 100r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_100r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_100r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-100r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-100v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 100v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_100v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_100v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-100v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-101r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 101r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_101r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_101r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-101r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-101v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 101v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_101v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_101v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-101v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-102r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 102r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_102r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_102r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-102r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-102v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 102v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_102v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_102v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-102v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-103r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 103r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_103r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_103r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-103r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-103v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 103v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_103v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_103v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-103v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-104r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 104r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_104r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_104r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-104r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-104v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 104v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_104v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_104v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-104v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-105r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 105r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_105r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_105r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-105r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-105v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 105v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_105v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_105v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-105v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-106r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 106r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_106r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_106r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-106r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-106v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 106v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_106v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_106v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-106v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-107r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 107r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_107r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_107r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-107r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-107v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 107v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_107v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_107v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-107v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-108r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 108r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_108r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_108r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-108r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-108v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 108v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_108v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_108v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-108v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-109r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 109r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_109r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_109r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-109r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-109v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 109v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_109v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_109v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-109v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-110r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 110r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_110r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_110r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-110r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-110v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 110v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_110v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_110v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-110v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-111r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 111r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_111r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_111r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-111r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-111v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 111v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_111v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_111v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-111v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-112r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 112r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_112r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_112r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-112r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-112v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 112v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_112v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_112v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-112v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-113r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 113r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_113r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_113r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-113r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-113v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 113v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_113v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_113v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-113v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-114r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 114r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_114r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_114r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-114r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-114v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 114v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_114v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_114v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-114v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-115r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 115r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_115r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_115r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-115r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-115v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 115v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_115v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_115v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-115v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-116r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 116r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_116r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_116r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-116r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-116v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 116v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_116v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_116v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-116v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-117ar.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 117ar",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_117ar.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_117ar.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-117ar.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-117av.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 117av",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_117av.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_117av.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-117av.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-117r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 117r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_117r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_117r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-117r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-117v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 117v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_117v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_117v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-117v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-118r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 118r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_118r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_118r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-118r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-118v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 118v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_118v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_118v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-118v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-119r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 119r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_119r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_119r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-119r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-119v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 119v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_119v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_119v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-119v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-120r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 120r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_120r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_120r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-120r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-120v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 120v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_120v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_120v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-120v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-121r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 121r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_121r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_121r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-121r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-121v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 121v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_121v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_121v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-121v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-122r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 122r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_122r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_122r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-122r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-122v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 122v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_122v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_122v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-122v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-123r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 123r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_123r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_123r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-123r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-123v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 123v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_123v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_123v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-123v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-124r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 124r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_124r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_124r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-124r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-124v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 124v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_124v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_124v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-124v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-126v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 126v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_126v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_126v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-126v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-127r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 127r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_127r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_127r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-127r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-127v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 127v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_127v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_127v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-127v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-128r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 128r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_128r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_128r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-128r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-128v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 128v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_128v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_128v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-128v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-129r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 129r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_129r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_129r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-129r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-129v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 129v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_129v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_129v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-129v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-130r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 130r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_130r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_130r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-130r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-130v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 130v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_130v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_130v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-130v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-131r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 131r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_131r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_131r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-131r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-131v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 131v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_131v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_131v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-131v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-132r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 132r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_132r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_132r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-132r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-132v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 132v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_132v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_132v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-132v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-133ar.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 133ar",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_133ar.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_133ar.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-133ar.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-133av.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 133av",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_133av.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_133av.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-133av.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-133r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 133r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_133r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_133r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-133r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-133v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 133v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_133v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_133v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-133v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-134r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 134r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_134r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_134r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-134r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-134v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 134v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_134v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_134v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-134v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-135r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 135r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_135r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_135r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-135r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-135v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 135v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_135v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_135v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-135v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-136r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 136r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_136r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_136r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-136r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-136v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 136v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_136v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_136v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-136v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-137r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 137r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_137r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_137r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-137r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-137v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 137v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_137v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_137v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-137v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-138r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 138r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_138r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_138r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-138r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-138v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 138v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_138v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_138v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-138v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-139r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 139r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_139r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_139r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-139r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-139v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 139v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_139v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_139v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-139v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-140r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 140r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_140r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_140r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-140r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-140v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 140v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_140v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_140v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-140v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-141r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 141r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_141r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_141r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-141r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-141v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 141v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_141v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_141v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-141v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-142r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 142r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_142r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_142r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-142r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-142v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 142v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_142v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_142v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-142v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-143r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 143r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_143r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_143r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-143r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-143v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 143v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_143v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_143v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-143v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-144r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 144r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_144r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_144r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-144r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-144v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 144v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_144v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_144v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-144v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-145r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 145r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_145r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_145r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-145r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-145v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 145v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_145v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_145v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-145v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-146r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 146r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_146r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_146r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-146r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-146v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 146v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_146v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_146v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-146v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-147r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 147r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_147r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_147r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-147r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-147v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 147v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_147v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_147v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-147v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-148r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 148r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_148r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_148r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-148r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-148v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 148v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_148v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_148v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-148v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-149r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 149r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_149r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_149r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-149r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-149v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 149v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_149v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_149v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-149v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-150r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 150r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_150r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_150r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-150r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-150v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 150v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_150v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_150v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-150v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-151r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 151r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_151r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_151r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-151r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-151v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 151v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_151v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_151v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-151v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-152r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 152r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_152r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_152r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-152r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-152v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 152v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_152v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_152v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-152v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-153r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 153r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_153r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_153r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-153r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-153v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 153v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_153v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_153v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-153v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-154r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 154r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_154r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_154r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-154r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-154v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 154v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_154v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_154v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-154v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-155r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 155r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_155r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_155r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-155r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-155v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 155v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_155v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_155v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-155v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-156r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 156r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_156r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_156r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-156r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-156v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 156v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_156v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_156v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-156v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-157r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 157r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_157r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_157r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-157r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-157v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 157v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_157v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_157v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-157v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-158r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 158r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_158r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_158r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-158r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-158v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 158v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_158v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_158v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-158v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-159r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 159r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_159r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_159r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-159r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-159v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 159v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_159v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_159v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-159v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-160r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 160r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_160r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_160r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-160r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-160v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 160v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_160v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_160v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-160v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-161r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 161r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_161r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_161r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-161r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-161v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 161v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_161v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_161v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-161v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-162r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 162r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_162r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_162r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-162r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-162v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 162v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_162v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_162v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-162v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-163r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 163r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_163r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_163r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-163r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-163v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 163v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_163v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_163v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-163v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-164r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 164r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_164r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_164r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-164r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-164v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 164v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_164v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_164v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-164v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-165r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 165r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_165r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_165r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-165r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-165v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 165v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_165v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_165v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-165v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-166r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 166r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_166r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_166r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-166r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-166v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 166v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_166v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_166v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-166v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-167r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 167r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_167r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_167r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-167r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-167v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 167v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_167v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_167v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-167v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-168r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 168r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_168r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_168r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-168r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-168v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 168v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_168v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_168v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-168v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-169r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 169r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_169r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_169r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-169r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-169v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 169v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_169v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_169v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-169v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-170r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 170r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_170r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_170r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-170r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-170v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 170v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_170v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_170v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-170v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-171r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 171r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_171r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_171r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-171r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-171v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 171v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_171v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_171v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-171v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-172r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 172r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_172r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_172r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-172r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-172v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 172v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_172v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_172v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-172v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-173r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 173r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_173r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_173r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-173r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-173v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 173v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_173v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_173v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-173v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-174r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 174r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_174r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_174r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-174r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-174v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 174v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_174v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_174v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-174v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-175r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 175r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_175r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_175r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-175r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-175v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 175v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_175v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_175v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-175v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-176r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 176r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_176r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_176r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-176r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-176v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 176v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_176v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_176v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-176v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-177r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 177r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_177r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_177r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-177r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-177v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 177v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_177v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_177v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-177v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-178r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 178r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_178r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_178r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-178r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-178v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 178v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_178v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_178v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-178v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-179r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 179r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_179r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_179r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-179r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-179v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 179v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_179v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_179v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-179v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-180r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 180r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_180r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_180r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-180r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-180v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 180v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_180v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_180v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-180v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-181r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 181r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_181r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_181r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-181r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-181v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 181v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_181v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_181v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-181v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-182r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 182r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_182r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_182r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-182r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-182v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 182v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_182v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_182v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-182v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-183r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 183r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_183r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_183r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-183r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-183v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 183v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_183v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_183v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-183v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-184r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 184r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_184r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_184r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-184r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-184v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 184v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_184v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_184v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-184v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-185r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 185r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_185r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_185r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-185r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-185v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 185v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_185v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_185v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-185v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-186r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 186r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_186r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_186r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-186r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-186v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 186v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_186v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_186v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-186v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-187r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 187r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_187r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_187r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-187r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-187v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 187v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_187v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_187v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-187v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-188r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 188r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_188r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_188r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-188r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-188v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 188v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_188v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_188v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-188v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-189r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 189r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_189r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_189r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-189r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-189v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 189v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_189v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_189v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-189v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-190r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 190r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_190r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_190r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-190r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-190v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 190v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_190v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_190v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-190v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-191r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 191r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_191r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_191r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-191r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-191v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 191v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_191v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_191v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-191v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-192r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 192r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_192r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_192r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-192r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-192v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 192v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_192v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_192v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-192v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-193r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 193r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_193r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_193r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-193r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-193v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 193v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_193v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_193v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-193v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-194r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 194r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_194r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_194r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-194r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-194v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 194v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_194v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_194v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-194v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-195r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 195r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_195r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_195r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-195r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-195v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 195v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_195v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_195v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-195v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-196r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 196r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_196r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_196r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-196r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-196v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 196v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_196v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_196v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-196v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-197r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 197r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_197r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_197r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-197r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-197v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 197v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_197v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_197v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-197v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-198r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 198r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_198r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_198r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-198r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-198v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 198v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_198v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_198v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-198v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-45ar.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 45ar",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_45ar.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_45ar.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-45ar.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-45av.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 45av",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_45av.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_45av.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-45av.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-50ar.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 50ar",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_50ar.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_50ar.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-50ar.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-50av.json",
+ "@type": "sc:Canvas",
+ "label": "Folio 50av",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_50av.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_50av.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-50av.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A01r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A01r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A01r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A01r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A01r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A01v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A01v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A01v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A01v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A01v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A02r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A02r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A02r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A02r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A02r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A02v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A02v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A02v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A02v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A02v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A03r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A03r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A03r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A03r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A03r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A03v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A03v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A03v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A03v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A03v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A04r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A04r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A04r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A04r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A04r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A04v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A04v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A04v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A04v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A04v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A05r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A05r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A05r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A05r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A05r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A05v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A05v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A05v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A05v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A05v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A06r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A06r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A06r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A06r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A06r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A06v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A06v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A06v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A06v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A06v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A07r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A07r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A07r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A07r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A07r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A07v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A07v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A07v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A07v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A07v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A08r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A08r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A08r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A08r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A08r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A08v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A08v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A08v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A08v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A08v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A09r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A09r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A09r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A09r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A09r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A09v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A09v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A09v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A09v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A09v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A10r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A10r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A10r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A10r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A10r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A10v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A10v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A10v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A10v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A10v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A11r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A11r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A11r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A11r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A11r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A11v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A11v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A11v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A11v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A11v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A12r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A12r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A12r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A12r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A12r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A12v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A12v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A12v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A12v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A12v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A13r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A13r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A13r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A13r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A13r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A13v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A13v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A13v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A13v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A13v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A14r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A14r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A14r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A14r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A14r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A14v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A14v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A14v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A14v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A14v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A15r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A15r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A15r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A15r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A15r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A15v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A15v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A15v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A15v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A15v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A16r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A16r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A16r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A16r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A16r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A16v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A16v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A16v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A16v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A16v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A17r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A17r",
+ "height": 6604,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A17r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6604,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A17r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A17r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A17v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A17v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A17v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A17v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A17v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A18r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A18r",
+ "height": 6604,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A18r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6604,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A18r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A18r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A18v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A18v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A18v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A18v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A18v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A19r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A19r",
+ "height": 6604,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A19r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6604,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A19r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A19r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A19v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A19v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A19v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A19v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A19v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A20r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A20r",
+ "height": 6604,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A20r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6604,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A20r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A20r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A20v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A20v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A20v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A20v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A20v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A21r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A21r",
+ "height": 6604,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A21r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6604,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A21r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A21r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A21v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A21v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A21v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A21v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A21v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A22r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A22r",
+ "height": 6604,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A22r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6604,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A22r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A22r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A22v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A22v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A22v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A22v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A22v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A23r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A23r",
+ "height": 6604,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A23r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6604,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A23r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A23r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A23v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A23v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A23v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A23v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A23v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A24r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A24r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A24r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A24r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A24r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A24v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A24v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A24v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A24v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A24v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A25r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A25r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A25r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A25r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A25r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A25v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A25v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A25v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A25v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A25v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A26r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A26r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A26r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A26r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A26r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A26v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A26v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A26v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A26v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A26v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A27r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A27r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A27r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A27r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A27r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A27v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A27v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A27v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A27v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A27v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A28r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A28r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A28r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A28r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A28r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A28v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A28v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A28v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A28v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A28v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A29r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A29r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A29r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A29r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A29r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A29v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A29v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A29v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A29v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A29v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A30r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A30r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A30r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A30r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A30r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A30v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A30v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A30v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A30v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A30v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A31r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A31r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A31r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A31r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A31r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A31v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A31v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A31v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A31v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A31v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A33r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A33r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A33r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A33r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A33r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A33v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A33v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A33v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A33v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A33v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A34r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A34r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A34r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A34r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A34r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A34v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A34v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A34v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A34v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A34v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A35r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A35r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A35r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A35r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A35r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A35v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A35v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A35v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A35v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A35v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A36r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A36r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A36r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A36r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A36r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A36v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A36v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A36v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A36v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A36v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A37r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A37r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A37r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A37r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A37r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A37v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A37v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A37v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A37v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A37v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A38r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A38r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A38r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A38r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A38r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A38v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A38v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A38v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A38v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A38v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A39r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A39r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A39r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A39r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A39r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A39v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A39v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A39v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A39v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A39v.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A40r.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A40r",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A40r.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A40r.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A40r.json"
+ }]
+ }, {
+ "@id": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A40v.json",
+ "@type": "sc:Canvas",
+ "label": "Folio A40v",
+ "height": 6930,
+ "width": 4414,
+ "images": [{
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A40v.jp2/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 6930,
+ "width": 4414,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_A40v.jp2",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-A40v.json"
+ }]
+ }]
+ }]
+}
\ No newline at end of file
diff --git a/test/manifests/iiifv2pages.json b/test/manifests/iiifv2pages.json
new file mode 100644
index 00000000..693d216e
--- /dev/null
+++ b/test/manifests/iiifv2pages.json
@@ -0,0 +1,30437 @@
+{
+ "@context": "http://iiif.io/api/presentation/2/context.json",
+ "@id": "https://www.diamm.ac.uk/sources/117/manifest/",
+ "@type": "sc:Manifest",
+ "label": "I-Bc Q.15",
+ "metadata": [
+ {
+ "label": "Shelfmark",
+ "value": "Q.15"
+ },
+ {
+ "label": "Archive",
+ "value": "Museo Internazionale e Biblioteca della Musica di Bologna"
+ },
+ {
+ "label": "Surface Type",
+ "value": "Other"
+ },
+ {
+ "label": "Measurements",
+ "value": "280 x 200 mm"
+ },
+ {
+ "label": "Identifiers",
+ "value": "I-Bc15"
+ },
+ {
+ "label": "Identifiers",
+ "value": "BL"
+ },
+ {
+ "label": "Identifiers",
+ "value": "BolC Q15"
+ },
+ {
+ "label": "Identifiers",
+ "value": "Liceo Musicale 37"
+ },
+ {
+ "label": "Date Statement",
+ "value": "15th century, copying completed 1440"
+ },
+ {
+ "label": "Source Type",
+ "value": "complete choirbook"
+ }
+ ],
+ "seeAlso": {
+ "@id": "https://www.diamm.ac.uk/sources/117/",
+ "format": "application/json"
+ },
+ "description": "About a third of the pieces have ornamented initials",
+ "related": {
+ "@id": "https://www.diamm.ac.uk/sources/117/",
+ "format": "text/html"
+ },
+ "sequences": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/manifest/sequence/default",
+ "@type": "sc:Sequence",
+ "label": "Default",
+ "canvases": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5474/",
+ "@type": "sc:Canvas",
+ "label": "early bindings back",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5474/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5474/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 10214,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5474/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 10214
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5475/",
+ "@type": "sc:Canvas",
+ "label": "early bindings front",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5475/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5475/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 10022,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5475/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 10022
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5476/",
+ "@type": "sc:Canvas",
+ "label": "early bindings spine",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5476/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5476/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 6672,
+ "height": 10262,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5476/"
+ }
+ }
+ }
+ ],
+ "width": 6672,
+ "height": 10262
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5473/",
+ "@type": "sc:Canvas",
+ "label": "early binding complete",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5473/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5473/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 10102,
+ "height": 7200,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5473/"
+ }
+ }
+ }
+ ],
+ "width": 10102,
+ "height": 7200
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5477/",
+ "@type": "sc:Canvas",
+ "label": "fragment front binding recto",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5477/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5477/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 4656,
+ "height": 6804,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5477/"
+ }
+ }
+ }
+ ],
+ "width": 4656,
+ "height": 6804
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5478/",
+ "@type": "sc:Canvas",
+ "label": "fragment front binding verso",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5478/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5478/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 4560,
+ "height": 6804,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5478/"
+ }
+ }
+ }
+ ],
+ "width": 4560,
+ "height": 6804
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5481/",
+ "@type": "sc:Canvas",
+ "label": "late binding completer",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5481/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5481/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 10006,
+ "height": 6976,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5481/"
+ }
+ }
+ }
+ ],
+ "width": 10006,
+ "height": 6976
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5484/",
+ "@type": "sc:Canvas",
+ "label": "strips 1 recto",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5484/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5484/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7440,
+ "height": 9093,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5484/"
+ }
+ }
+ }
+ ],
+ "width": 7440,
+ "height": 9093
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5485/",
+ "@type": "sc:Canvas",
+ "label": "strips 1 verso",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5485/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5485/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 6848,
+ "height": 9125,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5485/"
+ }
+ }
+ }
+ ],
+ "width": 6848,
+ "height": 9125
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5486/",
+ "@type": "sc:Canvas",
+ "label": "strips 2 recto",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5486/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5486/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7280,
+ "height": 9910,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5486/"
+ }
+ }
+ }
+ ],
+ "width": 7280,
+ "height": 9910
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5487/",
+ "@type": "sc:Canvas",
+ "label": "strips 2 verso",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5487/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5487/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 3416,
+ "height": 4471,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5487/"
+ }
+ }
+ }
+ ],
+ "width": 3416,
+ "height": 4471
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4747/",
+ "@type": "sc:Canvas",
+ "label": "01r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4747/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4747/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4747/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4748/",
+ "@type": "sc:Canvas",
+ "label": "01v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4748/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4748/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4748/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4749/",
+ "@type": "sc:Canvas",
+ "label": "02r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4749/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4749/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4749/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4750/",
+ "@type": "sc:Canvas",
+ "label": "02v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4750/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4750/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4750/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4751/",
+ "@type": "sc:Canvas",
+ "label": "03r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4751/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4751/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9830,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4751/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9830
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4754/",
+ "@type": "sc:Canvas",
+ "label": "03v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4754/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4754/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4754/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4755/",
+ "@type": "sc:Canvas",
+ "label": "04r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4755/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4755/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9830,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4755/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9830
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4756/",
+ "@type": "sc:Canvas",
+ "label": "04v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4756/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4756/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4756/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4757/",
+ "@type": "sc:Canvas",
+ "label": "05r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4757/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4757/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9830,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4757/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9830
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4758/",
+ "@type": "sc:Canvas",
+ "label": "05v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4758/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4758/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4758/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4759/",
+ "@type": "sc:Canvas",
+ "label": "06r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4759/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4759/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9830,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4759/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9830
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4760/",
+ "@type": "sc:Canvas",
+ "label": "06v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4760/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4760/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4760/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4761/",
+ "@type": "sc:Canvas",
+ "label": "07r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4761/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4761/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9830,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4761/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9830
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4762/",
+ "@type": "sc:Canvas",
+ "label": "07v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4762/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4762/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4762/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4763/",
+ "@type": "sc:Canvas",
+ "label": "08r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4763/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4763/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9830,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4763/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9830
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4764/",
+ "@type": "sc:Canvas",
+ "label": "08v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4764/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4764/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4764/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4765/",
+ "@type": "sc:Canvas",
+ "label": "09r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4765/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4765/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4765/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58651/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2449,
+ "height": 5040,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58651/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4766/",
+ "@type": "sc:Canvas",
+ "label": "09v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4766/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4766/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9830,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4766/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9830
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4767/",
+ "@type": "sc:Canvas",
+ "label": "10r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4767/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4767/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4767/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58652/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2433,
+ "height": 4832,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58652/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4769/",
+ "@type": "sc:Canvas",
+ "label": "10v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4769/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4769/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9830,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4769/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9830
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4770/",
+ "@type": "sc:Canvas",
+ "label": "11r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4770/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4770/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4770/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58653/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2385,
+ "height": 5600,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58653/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4771/",
+ "@type": "sc:Canvas",
+ "label": "11v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4771/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4771/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9830,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4771/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9830
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4772/",
+ "@type": "sc:Canvas",
+ "label": "12r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4772/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4772/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4772/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58654/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2321,
+ "height": 5024,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58654/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4773/",
+ "@type": "sc:Canvas",
+ "label": "12v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4773/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4773/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9830,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4773/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9830
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4774/",
+ "@type": "sc:Canvas",
+ "label": "13r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4774/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4774/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4774/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58655/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2385,
+ "height": 5264,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58655/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4775/",
+ "@type": "sc:Canvas",
+ "label": "13v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4775/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4775/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9830,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4775/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9830
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4776/",
+ "@type": "sc:Canvas",
+ "label": "14r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4776/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4776/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4776/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4777/",
+ "@type": "sc:Canvas",
+ "label": "14v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4777/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4777/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9830,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4777/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9830
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4778/",
+ "@type": "sc:Canvas",
+ "label": "15r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4778/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4778/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4778/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4779/",
+ "@type": "sc:Canvas",
+ "label": "15v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4779/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4779/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4779/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4780/",
+ "@type": "sc:Canvas",
+ "label": "16r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4780/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4780/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4780/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4781/",
+ "@type": "sc:Canvas",
+ "label": "16v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4781/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4781/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4781/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4782/",
+ "@type": "sc:Canvas",
+ "label": "17r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4782/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4782/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4782/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4784/",
+ "@type": "sc:Canvas",
+ "label": "17v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4784/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4784/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4784/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4785/",
+ "@type": "sc:Canvas",
+ "label": "18r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4785/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4785/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4785/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4786/",
+ "@type": "sc:Canvas",
+ "label": "18v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4786/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4786/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4786/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4787/",
+ "@type": "sc:Canvas",
+ "label": "19r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4787/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4787/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4787/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4788/",
+ "@type": "sc:Canvas",
+ "label": "19v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4788/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4788/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4788/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4789/",
+ "@type": "sc:Canvas",
+ "label": "20r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4789/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4789/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4789/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4790/",
+ "@type": "sc:Canvas",
+ "label": "20v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4790/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4790/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4790/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4791/",
+ "@type": "sc:Canvas",
+ "label": "21r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4791/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4791/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4791/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4792/",
+ "@type": "sc:Canvas",
+ "label": "21v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4792/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4792/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4792/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4793/",
+ "@type": "sc:Canvas",
+ "label": "22r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4793/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4793/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4793/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4794/",
+ "@type": "sc:Canvas",
+ "label": "22v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4794/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4794/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4794/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4795/",
+ "@type": "sc:Canvas",
+ "label": "23r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4795/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4795/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4795/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4796/",
+ "@type": "sc:Canvas",
+ "label": "23v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4796/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4796/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4796/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4797/",
+ "@type": "sc:Canvas",
+ "label": "24r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4797/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4797/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4797/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4799/",
+ "@type": "sc:Canvas",
+ "label": "24v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4799/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4799/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4799/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4800/",
+ "@type": "sc:Canvas",
+ "label": "25r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4800/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4800/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4800/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4801/",
+ "@type": "sc:Canvas",
+ "label": "25v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4801/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4801/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4801/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4802/",
+ "@type": "sc:Canvas",
+ "label": "26r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4802/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4802/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4802/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4803/",
+ "@type": "sc:Canvas",
+ "label": "26v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4803/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4803/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4803/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4804/",
+ "@type": "sc:Canvas",
+ "label": "27r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4804/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4804/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4804/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4805/",
+ "@type": "sc:Canvas",
+ "label": "27v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4805/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4805/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4805/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58656/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2513,
+ "height": 5328,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58656/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4806/",
+ "@type": "sc:Canvas",
+ "label": "28r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4806/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4806/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4806/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4807/",
+ "@type": "sc:Canvas",
+ "label": "28v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4807/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4807/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4807/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4808/",
+ "@type": "sc:Canvas",
+ "label": "29r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4808/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4808/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4808/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4809/",
+ "@type": "sc:Canvas",
+ "label": "29v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4809/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4809/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4809/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58657/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2481,
+ "height": 6384,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58657/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4810/",
+ "@type": "sc:Canvas",
+ "label": "30r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4810/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4810/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4810/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4811/",
+ "@type": "sc:Canvas",
+ "label": "30v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4811/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4811/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4811/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4812/",
+ "@type": "sc:Canvas",
+ "label": "31r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4812/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4812/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4812/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4814/",
+ "@type": "sc:Canvas",
+ "label": "31v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4814/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4814/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4814/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4815/",
+ "@type": "sc:Canvas",
+ "label": "32r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4815/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4815/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4815/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4816/",
+ "@type": "sc:Canvas",
+ "label": "32v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4816/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4816/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4816/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4817/",
+ "@type": "sc:Canvas",
+ "label": "33r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4817/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4817/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4817/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58658/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2433,
+ "height": 6496,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58658/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4818/",
+ "@type": "sc:Canvas",
+ "label": "33v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4818/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4818/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4818/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4819/",
+ "@type": "sc:Canvas",
+ "label": "34r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4819/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4819/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4819/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4820/",
+ "@type": "sc:Canvas",
+ "label": "34v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4820/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4820/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4820/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4821/",
+ "@type": "sc:Canvas",
+ "label": "35r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4821/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4821/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4821/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58659/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2529,
+ "height": 5696,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58659/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4822/",
+ "@type": "sc:Canvas",
+ "label": "35v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4822/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4822/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4822/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4823/",
+ "@type": "sc:Canvas",
+ "label": "36r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4823/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4823/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4823/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4824/",
+ "@type": "sc:Canvas",
+ "label": "36v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4824/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4824/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4824/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4825/",
+ "@type": "sc:Canvas",
+ "label": "37r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4825/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4825/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4825/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4826/",
+ "@type": "sc:Canvas",
+ "label": "37v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4826/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4826/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4826/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4827/",
+ "@type": "sc:Canvas",
+ "label": "38r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4827/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4827/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4827/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4829/",
+ "@type": "sc:Canvas",
+ "label": "38v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4829/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4829/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4829/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4830/",
+ "@type": "sc:Canvas",
+ "label": "39r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4830/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4830/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4830/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4831/",
+ "@type": "sc:Canvas",
+ "label": "39v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4831/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4831/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4831/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4832/",
+ "@type": "sc:Canvas",
+ "label": "40r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4832/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4832/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4832/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4833/",
+ "@type": "sc:Canvas",
+ "label": "40v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4833/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4833/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4833/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4834/",
+ "@type": "sc:Canvas",
+ "label": "41r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4834/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4834/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4834/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4835/",
+ "@type": "sc:Canvas",
+ "label": "41v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4835/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4835/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4835/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4836/",
+ "@type": "sc:Canvas",
+ "label": "42r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4836/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4836/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4836/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4837/",
+ "@type": "sc:Canvas",
+ "label": "42v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4837/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4837/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4837/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4838/",
+ "@type": "sc:Canvas",
+ "label": "43r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4838/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4838/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4838/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4839/",
+ "@type": "sc:Canvas",
+ "label": "43v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4839/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4839/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4839/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/6925/",
+ "@type": "sc:Canvas",
+ "label": "43 bisr",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/6925/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/6925/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/6925/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/6926/",
+ "@type": "sc:Canvas",
+ "label": "43 bis v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/6926/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/6926/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/6926/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4840/",
+ "@type": "sc:Canvas",
+ "label": "44r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4840/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4840/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4840/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4841/",
+ "@type": "sc:Canvas",
+ "label": "44v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4841/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4841/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4841/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4842/",
+ "@type": "sc:Canvas",
+ "label": "45r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4842/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4842/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4842/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4844/",
+ "@type": "sc:Canvas",
+ "label": "45v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4844/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4844/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4844/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4845/",
+ "@type": "sc:Canvas",
+ "label": "46r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4845/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4845/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4845/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4846/",
+ "@type": "sc:Canvas",
+ "label": "46v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4846/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4846/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4846/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4847/",
+ "@type": "sc:Canvas",
+ "label": "47r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4847/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4847/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4847/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4848/",
+ "@type": "sc:Canvas",
+ "label": "47v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4848/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4848/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4848/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4849/",
+ "@type": "sc:Canvas",
+ "label": "48r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4849/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4849/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4849/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4850/",
+ "@type": "sc:Canvas",
+ "label": "48v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4850/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4850/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4850/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4851/",
+ "@type": "sc:Canvas",
+ "label": "49r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4851/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4851/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4851/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4852/",
+ "@type": "sc:Canvas",
+ "label": "49v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4852/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4852/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4852/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4853/",
+ "@type": "sc:Canvas",
+ "label": "50r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4853/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4853/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4853/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4854/",
+ "@type": "sc:Canvas",
+ "label": "50v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4854/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4854/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4854/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58660/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2513,
+ "height": 6544,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58660/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4855/",
+ "@type": "sc:Canvas",
+ "label": "51r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4855/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4855/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4855/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4856/",
+ "@type": "sc:Canvas",
+ "label": "51v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4856/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4856/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4856/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58661/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2401,
+ "height": 5360,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58661/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4857/",
+ "@type": "sc:Canvas",
+ "label": "52r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4857/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4857/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4857/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4859/",
+ "@type": "sc:Canvas",
+ "label": "52v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4859/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4859/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4859/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4860/",
+ "@type": "sc:Canvas",
+ "label": "53r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4860/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4860/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4860/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4861/",
+ "@type": "sc:Canvas",
+ "label": "53v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4861/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4861/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4861/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4862/",
+ "@type": "sc:Canvas",
+ "label": "54r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4862/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4862/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4862/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4863/",
+ "@type": "sc:Canvas",
+ "label": "54v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4863/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4863/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4863/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58662/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2337,
+ "height": 5344,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58662/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4864/",
+ "@type": "sc:Canvas",
+ "label": "55r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4864/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4864/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4864/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4865/",
+ "@type": "sc:Canvas",
+ "label": "55v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4865/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4865/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4865/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4866/",
+ "@type": "sc:Canvas",
+ "label": "56r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4866/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4866/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4866/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58663/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2529,
+ "height": 4496,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58663/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4867/",
+ "@type": "sc:Canvas",
+ "label": "56v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4867/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4867/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4867/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4868/",
+ "@type": "sc:Canvas",
+ "label": "57r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4868/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4868/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4868/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58664/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2401,
+ "height": 5392,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58664/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4869/",
+ "@type": "sc:Canvas",
+ "label": "57v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4869/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4869/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4869/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4870/",
+ "@type": "sc:Canvas",
+ "label": "58r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4870/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4870/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4870/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4871/",
+ "@type": "sc:Canvas",
+ "label": "58v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4871/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4871/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4871/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4872/",
+ "@type": "sc:Canvas",
+ "label": "59r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4872/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4872/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4872/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4874/",
+ "@type": "sc:Canvas",
+ "label": "59v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4874/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4874/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4874/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4875/",
+ "@type": "sc:Canvas",
+ "label": "60r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4875/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4875/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4875/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4876/",
+ "@type": "sc:Canvas",
+ "label": "60v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4876/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4876/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4876/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4877/",
+ "@type": "sc:Canvas",
+ "label": "61r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4877/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4877/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4877/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4878/",
+ "@type": "sc:Canvas",
+ "label": "61v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4878/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4878/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4878/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4879/",
+ "@type": "sc:Canvas",
+ "label": "62r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4879/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4879/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4879/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4880/",
+ "@type": "sc:Canvas",
+ "label": "62v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4880/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4880/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4880/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4881/",
+ "@type": "sc:Canvas",
+ "label": "63r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4881/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4881/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4881/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4882/",
+ "@type": "sc:Canvas",
+ "label": "63v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4882/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4882/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4882/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4883/",
+ "@type": "sc:Canvas",
+ "label": "64r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4883/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4883/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4883/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4884/",
+ "@type": "sc:Canvas",
+ "label": "64v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4884/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4884/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4884/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4885/",
+ "@type": "sc:Canvas",
+ "label": "65r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4885/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4885/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4885/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4886/",
+ "@type": "sc:Canvas",
+ "label": "65v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4886/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4886/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4886/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4887/",
+ "@type": "sc:Canvas",
+ "label": "66r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4887/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4887/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4887/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4889/",
+ "@type": "sc:Canvas",
+ "label": "66v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4889/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4889/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4889/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4890/",
+ "@type": "sc:Canvas",
+ "label": "67r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4890/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4890/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4890/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4891/",
+ "@type": "sc:Canvas",
+ "label": "67v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4891/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4891/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4891/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4892/",
+ "@type": "sc:Canvas",
+ "label": "68r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4892/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4892/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4892/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4893/",
+ "@type": "sc:Canvas",
+ "label": "68v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4893/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4893/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4893/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4894/",
+ "@type": "sc:Canvas",
+ "label": "69r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4894/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4894/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4894/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4895/",
+ "@type": "sc:Canvas",
+ "label": "69v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4895/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4895/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4895/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4896/",
+ "@type": "sc:Canvas",
+ "label": "70r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4896/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4896/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4896/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4897/",
+ "@type": "sc:Canvas",
+ "label": "70v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4897/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4897/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4897/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4898/",
+ "@type": "sc:Canvas",
+ "label": "71r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4898/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4898/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4898/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4899/",
+ "@type": "sc:Canvas",
+ "label": "71v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4899/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4899/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4899/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4900/",
+ "@type": "sc:Canvas",
+ "label": "72r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4900/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4900/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4900/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4901/",
+ "@type": "sc:Canvas",
+ "label": "72v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4901/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4901/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4901/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4902/",
+ "@type": "sc:Canvas",
+ "label": "73r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4902/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4902/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4902/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4904/",
+ "@type": "sc:Canvas",
+ "label": "73v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4904/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4904/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4904/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4905/",
+ "@type": "sc:Canvas",
+ "label": "74r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4905/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4905/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4905/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4906/",
+ "@type": "sc:Canvas",
+ "label": "74v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4906/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4906/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4906/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4907/",
+ "@type": "sc:Canvas",
+ "label": "75r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4907/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4907/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4907/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4908/",
+ "@type": "sc:Canvas",
+ "label": "75v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4908/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4908/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4908/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4909/",
+ "@type": "sc:Canvas",
+ "label": "76r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4909/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4909/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4909/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4910/",
+ "@type": "sc:Canvas",
+ "label": "76v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4910/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4910/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4910/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4911/",
+ "@type": "sc:Canvas",
+ "label": "77r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4911/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4911/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4911/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4912/",
+ "@type": "sc:Canvas",
+ "label": "77v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4912/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4912/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4912/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4913/",
+ "@type": "sc:Canvas",
+ "label": "78r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4913/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4913/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4913/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4914/",
+ "@type": "sc:Canvas",
+ "label": "78v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4914/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4914/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4914/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4915/",
+ "@type": "sc:Canvas",
+ "label": "79r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4915/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4915/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4915/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4916/",
+ "@type": "sc:Canvas",
+ "label": "79v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4916/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4916/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4916/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4917/",
+ "@type": "sc:Canvas",
+ "label": "80r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4917/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4917/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4917/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4919/",
+ "@type": "sc:Canvas",
+ "label": "80v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4919/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4919/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4919/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4920/",
+ "@type": "sc:Canvas",
+ "label": "81r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4920/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4920/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4920/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4921/",
+ "@type": "sc:Canvas",
+ "label": "81v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4921/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4921/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4921/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4922/",
+ "@type": "sc:Canvas",
+ "label": "82r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4922/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4922/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4922/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4923/",
+ "@type": "sc:Canvas",
+ "label": "82v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4923/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4923/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4923/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4924/",
+ "@type": "sc:Canvas",
+ "label": "83r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4924/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4924/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4924/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4925/",
+ "@type": "sc:Canvas",
+ "label": "83v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4925/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4925/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4925/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4926/",
+ "@type": "sc:Canvas",
+ "label": "84r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4926/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4926/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4926/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4927/",
+ "@type": "sc:Canvas",
+ "label": "84v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4927/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4927/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4927/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4928/",
+ "@type": "sc:Canvas",
+ "label": "85r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4928/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4928/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4928/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4929/",
+ "@type": "sc:Canvas",
+ "label": "85v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4929/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4929/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4929/"
+ }
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4930/",
+ "@type": "sc:Canvas",
+ "label": "86r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4930/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4930/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4930/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4931/",
+ "@type": "sc:Canvas",
+ "label": "86v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4931/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4931/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4931/"
+ }
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4932/",
+ "@type": "sc:Canvas",
+ "label": "87r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4932/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4932/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4932/"
+ }
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4934/",
+ "@type": "sc:Canvas",
+ "label": "87v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4934/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4934/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4934/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58675/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 944,
+ "height": 5312,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58675/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4935/",
+ "@type": "sc:Canvas",
+ "label": "88r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4935/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4935/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4935/"
+ }
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4936/",
+ "@type": "sc:Canvas",
+ "label": "88v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4936/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4936/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9734,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4936/"
+ }
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9734
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4937/",
+ "@type": "sc:Canvas",
+ "label": "89r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4937/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4937/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4937/"
+ }
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4938/",
+ "@type": "sc:Canvas",
+ "label": "89v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4938/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4938/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9734,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4938/"
+ }
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9734
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4939/",
+ "@type": "sc:Canvas",
+ "label": "90r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4939/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4939/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4939/"
+ }
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4940/",
+ "@type": "sc:Canvas",
+ "label": "90v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4940/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4940/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9734,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4940/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58665/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2321,
+ "height": 3872,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58665/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9734
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4941/",
+ "@type": "sc:Canvas",
+ "label": "91r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4941/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4941/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4941/"
+ }
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4942/",
+ "@type": "sc:Canvas",
+ "label": "91v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4942/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4942/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9734,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4942/"
+ }
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9734
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4943/",
+ "@type": "sc:Canvas",
+ "label": "92r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4943/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4943/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9734,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4943/"
+ }
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9734
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4944/",
+ "@type": "sc:Canvas",
+ "label": "92v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4944/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4944/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4944/"
+ }
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4945/",
+ "@type": "sc:Canvas",
+ "label": "93r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4945/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4945/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9734,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4945/"
+ }
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9734
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4946/",
+ "@type": "sc:Canvas",
+ "label": "93v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4946/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4946/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4946/"
+ }
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4947/",
+ "@type": "sc:Canvas",
+ "label": "94r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4947/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4947/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9734,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4947/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58666/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2529,
+ "height": 6352,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58666/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9734
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4949/",
+ "@type": "sc:Canvas",
+ "label": "94v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4949/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4949/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4949/"
+ }
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4950/",
+ "@type": "sc:Canvas",
+ "label": "95r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4950/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4950/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9734,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4950/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58667/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2721,
+ "height": 4592,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58667/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9734
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4951/",
+ "@type": "sc:Canvas",
+ "label": "95v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4951/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4951/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4951/"
+ }
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4952/",
+ "@type": "sc:Canvas",
+ "label": "96r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4952/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4952/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4952/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58668/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2225,
+ "height": 4624,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58668/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4953/",
+ "@type": "sc:Canvas",
+ "label": "96v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4953/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4953/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4953/"
+ }
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4954/",
+ "@type": "sc:Canvas",
+ "label": "97r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4954/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4954/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4954/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58669/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2321,
+ "height": 4480,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58669/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4955/",
+ "@type": "sc:Canvas",
+ "label": "97v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4955/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4955/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4955/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4956/",
+ "@type": "sc:Canvas",
+ "label": "98r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4956/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4956/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4956/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58676/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1392,
+ "height": 2448,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58676/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4957/",
+ "@type": "sc:Canvas",
+ "label": "98v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4957/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4957/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4957/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4958/",
+ "@type": "sc:Canvas",
+ "label": "99r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4958/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4958/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4958/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58677/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 640,
+ "height": 1184,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58677/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4959/",
+ "@type": "sc:Canvas",
+ "label": "99v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4959/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4959/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4959/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4960/",
+ "@type": "sc:Canvas",
+ "label": "100r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4960/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4960/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4960/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4961/",
+ "@type": "sc:Canvas",
+ "label": "100v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4961/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4961/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4961/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4962/",
+ "@type": "sc:Canvas",
+ "label": "101r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4962/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4962/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4962/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4964/",
+ "@type": "sc:Canvas",
+ "label": "101v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4964/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4964/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4964/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4965/",
+ "@type": "sc:Canvas",
+ "label": "102r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4965/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4965/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7798,
+ "height": 9681,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4965/"
+ }
+ }
+ }
+ ],
+ "width": 7798,
+ "height": 9681
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4966/",
+ "@type": "sc:Canvas",
+ "label": "102v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4966/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4966/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4966/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4967/",
+ "@type": "sc:Canvas",
+ "label": "103r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4967/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4967/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4967/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4968/",
+ "@type": "sc:Canvas",
+ "label": "103v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4968/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4968/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4968/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4969/",
+ "@type": "sc:Canvas",
+ "label": "104r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4969/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4969/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4969/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4970/",
+ "@type": "sc:Canvas",
+ "label": "104v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4970/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4970/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4970/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58578/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2369,
+ "height": 4704,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58578/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4971/",
+ "@type": "sc:Canvas",
+ "label": "105r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4971/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4971/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4971/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4972/",
+ "@type": "sc:Canvas",
+ "label": "105v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4972/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4972/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4972/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4973/",
+ "@type": "sc:Canvas",
+ "label": "106r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4973/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4973/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4973/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58579/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2337,
+ "height": 5024,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58579/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4974/",
+ "@type": "sc:Canvas",
+ "label": "106v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4974/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4974/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4974/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4975/",
+ "@type": "sc:Canvas",
+ "label": "107r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4975/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4975/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4975/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58580/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2913,
+ "height": 4800,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58580/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4976/",
+ "@type": "sc:Canvas",
+ "label": "107v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4976/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4976/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4976/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4977/",
+ "@type": "sc:Canvas",
+ "label": "108r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4977/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4977/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4977/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4979/",
+ "@type": "sc:Canvas",
+ "label": "108v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4979/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4979/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4979/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4980/",
+ "@type": "sc:Canvas",
+ "label": "109r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4980/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4980/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4980/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4981/",
+ "@type": "sc:Canvas",
+ "label": "109v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4981/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4981/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4981/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4982/",
+ "@type": "sc:Canvas",
+ "label": "110r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4982/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4982/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4982/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4983/",
+ "@type": "sc:Canvas",
+ "label": "110v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4983/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4983/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4983/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58678/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 912,
+ "height": 1360,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58678/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4984/",
+ "@type": "sc:Canvas",
+ "label": "111r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4984/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4984/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4984/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4985/",
+ "@type": "sc:Canvas",
+ "label": "111v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4985/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4985/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4985/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58679/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 880,
+ "height": 3872,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58679/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4986/",
+ "@type": "sc:Canvas",
+ "label": "112r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4986/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4986/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9830,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4986/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9830
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4987/",
+ "@type": "sc:Canvas",
+ "label": "112v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4987/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4987/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9397,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4987/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58680/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1360,
+ "height": 3824,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58680/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9397
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4988/",
+ "@type": "sc:Canvas",
+ "label": "113r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4988/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4988/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4988/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58681/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1472,
+ "height": 1745,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58681/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4989/",
+ "@type": "sc:Canvas",
+ "label": "113v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4989/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4989/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7712,
+ "height": 9542,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4989/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58581/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1952,
+ "height": 2353,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58581/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58682/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1088,
+ "height": 1264,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58682/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7712,
+ "height": 9542
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4990/",
+ "@type": "sc:Canvas",
+ "label": "114r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4990/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4990/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4990/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58582/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2400,
+ "height": 2449,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58582/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4991/",
+ "@type": "sc:Canvas",
+ "label": "114v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4991/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4991/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4991/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58683/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 912,
+ "height": 3776,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58683/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4992/",
+ "@type": "sc:Canvas",
+ "label": "115r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4992/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4992/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9494,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4992/"
+ }
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9494
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4993/",
+ "@type": "sc:Canvas",
+ "label": "115v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4993/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4993/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4993/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58684/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1008,
+ "height": 3394,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58684/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4994/",
+ "@type": "sc:Canvas",
+ "label": "116r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4994/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4994/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7728,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4994/"
+ }
+ }
+ }
+ ],
+ "width": 7728,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4995/",
+ "@type": "sc:Canvas",
+ "label": "116v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4995/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4995/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4995/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58583/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2128,
+ "height": 2385,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58583/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58685/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 928,
+ "height": 3458,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58685/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4996/",
+ "@type": "sc:Canvas",
+ "label": "117r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4996/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/4996/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9462,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4996/"
+ }
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9462
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4997/",
+ "@type": "sc:Canvas",
+ "label": "117v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4997/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4997/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7584,
+ "height": 9429,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4997/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58686/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1264,
+ "height": 2209,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58686/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7584,
+ "height": 9429
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4998/",
+ "@type": "sc:Canvas",
+ "label": "118r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4998/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4998/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9494,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4998/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58687/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 6656,
+ "height": 3490,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58687/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9494
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4999/",
+ "@type": "sc:Canvas",
+ "label": "118v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/4999/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/4999/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/4999/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58688/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 992,
+ "height": 3298,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58688/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5000/",
+ "@type": "sc:Canvas",
+ "label": "119r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5000/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5000/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5000/"
+ }
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5001/",
+ "@type": "sc:Canvas",
+ "label": "119v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5001/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5001/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5001/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58689/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1232,
+ "height": 2545,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58689/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5002/",
+ "@type": "sc:Canvas",
+ "label": "120r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5002/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5002/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5002/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58584/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2400,
+ "height": 2401,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58584/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58690/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1424,
+ "height": 2209,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58690/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5003/",
+ "@type": "sc:Canvas",
+ "label": "120v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5003/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5003/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5003/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58691/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 5456,
+ "height": 5315,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58691/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5004/",
+ "@type": "sc:Canvas",
+ "label": "121r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5004/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5004/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5004/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5005/",
+ "@type": "sc:Canvas",
+ "label": "121v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5005/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5005/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5005/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5006/",
+ "@type": "sc:Canvas",
+ "label": "122r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5006/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5006/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9830,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5006/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9830
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5007/",
+ "@type": "sc:Canvas",
+ "label": "122v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5007/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5007/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5007/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5008/",
+ "@type": "sc:Canvas",
+ "label": "123r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5008/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5008/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5008/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5009/",
+ "@type": "sc:Canvas",
+ "label": "123v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5009/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5009/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9478,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5009/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58692/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1456,
+ "height": 4610,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58692/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9478
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5010/",
+ "@type": "sc:Canvas",
+ "label": "124r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5010/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5010/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5010/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5011/",
+ "@type": "sc:Canvas",
+ "label": "124v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5011/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5011/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5011/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5012/",
+ "@type": "sc:Canvas",
+ "label": "125r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5012/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5012/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5012/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5013/",
+ "@type": "sc:Canvas",
+ "label": "125v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5013/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5013/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5013/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5014/",
+ "@type": "sc:Canvas",
+ "label": "126r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5014/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5014/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5014/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5015/",
+ "@type": "sc:Canvas",
+ "label": "126v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5015/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5015/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5015/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58585/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2385,
+ "height": 5760,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58585/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5016/",
+ "@type": "sc:Canvas",
+ "label": "127r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5016/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5016/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5016/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5017/",
+ "@type": "sc:Canvas",
+ "label": "127v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5017/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5017/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5017/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5018/",
+ "@type": "sc:Canvas",
+ "label": "128r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5018/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5018/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5018/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5019/",
+ "@type": "sc:Canvas",
+ "label": "128v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5019/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5019/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5019/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5020/",
+ "@type": "sc:Canvas",
+ "label": "129r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5020/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5020/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5020/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5022/",
+ "@type": "sc:Canvas",
+ "label": "129v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5022/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5022/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5022/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5023/",
+ "@type": "sc:Canvas",
+ "label": "130r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5023/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5023/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5023/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5024/",
+ "@type": "sc:Canvas",
+ "label": "130v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5024/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5024/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5024/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5025/",
+ "@type": "sc:Canvas",
+ "label": "131r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5025/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5025/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5025/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58586/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2129,
+ "height": 5312,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58586/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5026/",
+ "@type": "sc:Canvas",
+ "label": "131v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5026/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5026/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5026/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5027/",
+ "@type": "sc:Canvas",
+ "label": "132r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5027/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5027/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5027/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58587/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2241,
+ "height": 4864,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58587/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5028/",
+ "@type": "sc:Canvas",
+ "label": "132v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5028/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5028/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5028/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5029/",
+ "@type": "sc:Canvas",
+ "label": "133r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5029/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5029/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5029/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58588/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2273,
+ "height": 5424,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58588/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5030/",
+ "@type": "sc:Canvas",
+ "label": "133v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5030/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5030/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5030/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5031/",
+ "@type": "sc:Canvas",
+ "label": "134r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5031/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5031/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5031/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58589/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2097,
+ "height": 6416,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58589/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5032/",
+ "@type": "sc:Canvas",
+ "label": "134v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5032/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5032/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5032/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5033/",
+ "@type": "sc:Canvas",
+ "label": "135r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5033/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5033/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5033/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5034/",
+ "@type": "sc:Canvas",
+ "label": "135v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5034/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5034/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5034/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5035/",
+ "@type": "sc:Canvas",
+ "label": "136r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5035/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5035/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5035/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58590/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2289,
+ "height": 5616,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58590/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5037/",
+ "@type": "sc:Canvas",
+ "label": "136v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5037/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5037/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5037/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5038/",
+ "@type": "sc:Canvas",
+ "label": "137r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5038/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5038/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9734,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5038/"
+ }
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9734
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5039/",
+ "@type": "sc:Canvas",
+ "label": "137v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5039/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5039/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5039/"
+ }
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5040/",
+ "@type": "sc:Canvas",
+ "label": "138r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5040/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5040/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5040/"
+ }
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5041/",
+ "@type": "sc:Canvas",
+ "label": "138v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5041/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5041/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5041/"
+ }
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5042/",
+ "@type": "sc:Canvas",
+ "label": "139r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5042/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5042/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7744,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5042/"
+ }
+ }
+ }
+ ],
+ "width": 7744,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5043/",
+ "@type": "sc:Canvas",
+ "label": "139v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5043/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5043/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7744,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5043/"
+ }
+ }
+ }
+ ],
+ "width": 7744,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5044/",
+ "@type": "sc:Canvas",
+ "label": "140r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5044/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5044/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5044/"
+ }
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5045/",
+ "@type": "sc:Canvas",
+ "label": "140v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5045/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5045/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5045/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58591/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 3089,
+ "height": 6032,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58591/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5046/",
+ "@type": "sc:Canvas",
+ "label": "141r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5046/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5046/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5046/"
+ }
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5047/",
+ "@type": "sc:Canvas",
+ "label": "141v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5047/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5047/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5047/"
+ }
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5048/",
+ "@type": "sc:Canvas",
+ "label": "142r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5048/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5048/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7744,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5048/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58592/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2353,
+ "height": 5776,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58592/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7744,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5049/",
+ "@type": "sc:Canvas",
+ "label": "142v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5049/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5049/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7744,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5049/"
+ }
+ }
+ }
+ ],
+ "width": 7744,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5050/",
+ "@type": "sc:Canvas",
+ "label": "143r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5050/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5050/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7744,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5050/"
+ }
+ }
+ }
+ ],
+ "width": 7744,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5052/",
+ "@type": "sc:Canvas",
+ "label": "143v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5052/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5052/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9734,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5052/"
+ }
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9734
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5053/",
+ "@type": "sc:Canvas",
+ "label": "144r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5053/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5053/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5053/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5054/",
+ "@type": "sc:Canvas",
+ "label": "144v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5054/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5054/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5054/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5055/",
+ "@type": "sc:Canvas",
+ "label": "145r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5055/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5055/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5055/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5056/",
+ "@type": "sc:Canvas",
+ "label": "145v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5056/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5056/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5056/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5057/",
+ "@type": "sc:Canvas",
+ "label": "146r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5057/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5057/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5057/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5058/",
+ "@type": "sc:Canvas",
+ "label": "146v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5058/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5058/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5058/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5059/",
+ "@type": "sc:Canvas",
+ "label": "147r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5059/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5059/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5059/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5060/",
+ "@type": "sc:Canvas",
+ "label": "147v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5060/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5060/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5060/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58593/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2384,
+ "height": 2673,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58593/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5061/",
+ "@type": "sc:Canvas",
+ "label": "148r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5061/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5061/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5061/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5062/",
+ "@type": "sc:Canvas",
+ "label": "148v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5062/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5062/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5062/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58594/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2416,
+ "height": 3009,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58594/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5063/",
+ "@type": "sc:Canvas",
+ "label": "149r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5063/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5063/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5063/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5064/",
+ "@type": "sc:Canvas",
+ "label": "149v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5064/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5064/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5064/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5065/",
+ "@type": "sc:Canvas",
+ "label": "150r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5065/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5065/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5065/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5067/",
+ "@type": "sc:Canvas",
+ "label": "150v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5067/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5067/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5067/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5068/",
+ "@type": "sc:Canvas",
+ "label": "151r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5068/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5068/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5068/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5069/",
+ "@type": "sc:Canvas",
+ "label": "151v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5069/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5069/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5069/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5070/",
+ "@type": "sc:Canvas",
+ "label": "152r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5070/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5070/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5070/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5071/",
+ "@type": "sc:Canvas",
+ "label": "152v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5071/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5071/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5071/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5072/",
+ "@type": "sc:Canvas",
+ "label": "153r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5072/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5072/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5072/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58595/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2065,
+ "height": 4064,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58595/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5073/",
+ "@type": "sc:Canvas",
+ "label": "153v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5073/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5073/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5073/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58693/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 944,
+ "height": 2416,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58693/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5074/",
+ "@type": "sc:Canvas",
+ "label": "154r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5074/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5074/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5074/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5075/",
+ "@type": "sc:Canvas",
+ "label": "154v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5075/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5075/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5075/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5076/",
+ "@type": "sc:Canvas",
+ "label": "155r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5076/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5076/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5076/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5077/",
+ "@type": "sc:Canvas",
+ "label": "155v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5077/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5077/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5077/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5078/",
+ "@type": "sc:Canvas",
+ "label": "156r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5078/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5078/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5078/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5079/",
+ "@type": "sc:Canvas",
+ "label": "156v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5079/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5079/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5079/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58694/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 912,
+ "height": 3376,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58694/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5080/",
+ "@type": "sc:Canvas",
+ "label": "157r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5080/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5080/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5080/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58596/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 6528,
+ "height": 2753,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58596/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58695/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 928,
+ "height": 1232,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58695/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5082/",
+ "@type": "sc:Canvas",
+ "label": "157v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5082/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5082/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5082/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58696/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 864,
+ "height": 1152,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58696/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5083/",
+ "@type": "sc:Canvas",
+ "label": "158r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5083/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5083/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5083/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58597/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 6576,
+ "height": 2801,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58597/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58697/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1040,
+ "height": 1088,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58697/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5084/",
+ "@type": "sc:Canvas",
+ "label": "158v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5084/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5084/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5084/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58698/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 864,
+ "height": 3632,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58698/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5085/",
+ "@type": "sc:Canvas",
+ "label": "159r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5085/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5085/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5085/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58598/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 6400,
+ "height": 2769,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58598/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5086/",
+ "@type": "sc:Canvas",
+ "label": "159v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5086/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5086/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5086/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58699/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 960,
+ "height": 3328,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58699/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58156/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 848,
+ "height": 2832,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58156/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5087/",
+ "@type": "sc:Canvas",
+ "label": "160r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5087/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5087/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5087/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5088/",
+ "@type": "sc:Canvas",
+ "label": "160v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5088/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5088/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5088/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5089/",
+ "@type": "sc:Canvas",
+ "label": "161r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5089/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5089/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5089/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5090/",
+ "@type": "sc:Canvas",
+ "label": "161v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5090/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5090/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5090/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58700/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 976,
+ "height": 1280,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58700/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5091/",
+ "@type": "sc:Canvas",
+ "label": "162r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5091/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5091/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5091/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5092/",
+ "@type": "sc:Canvas",
+ "label": "162v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5092/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5092/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5092/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5093/",
+ "@type": "sc:Canvas",
+ "label": "163r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5093/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5093/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5093/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5094/",
+ "@type": "sc:Canvas",
+ "label": "163v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5094/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5094/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5094/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5095/",
+ "@type": "sc:Canvas",
+ "label": "164r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5095/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5095/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5095/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5097/",
+ "@type": "sc:Canvas",
+ "label": "164v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5097/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5097/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5097/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58701/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 848,
+ "height": 2448,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58701/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5098/",
+ "@type": "sc:Canvas",
+ "label": "165r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5098/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5098/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5098/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5099/",
+ "@type": "sc:Canvas",
+ "label": "165v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5099/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5099/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5099/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58702/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1024,
+ "height": 2896,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58702/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5100/",
+ "@type": "sc:Canvas",
+ "label": "166r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5100/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5100/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5100/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5101/",
+ "@type": "sc:Canvas",
+ "label": "166v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5101/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5101/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5101/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5102/",
+ "@type": "sc:Canvas",
+ "label": "167r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5102/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5102/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5102/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5103/",
+ "@type": "sc:Canvas",
+ "label": "167v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5103/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5103/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5103/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5104/",
+ "@type": "sc:Canvas",
+ "label": "168r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5104/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5104/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5104/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5105/",
+ "@type": "sc:Canvas",
+ "label": "168v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5105/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5105/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9558,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5105/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58703/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1184,
+ "height": 2768,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58703/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58157/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 736,
+ "height": 1056,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58157/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9558
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5106/",
+ "@type": "sc:Canvas",
+ "label": "169r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5106/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5106/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7728,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5106/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58704/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2352,
+ "height": 1232,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58704/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7728,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5107/",
+ "@type": "sc:Canvas",
+ "label": "169v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5107/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5107/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9558,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5107/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9558
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5108/",
+ "@type": "sc:Canvas",
+ "label": "170r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5108/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5108/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5108/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5109/",
+ "@type": "sc:Canvas",
+ "label": "170v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5109/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5109/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9558,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5109/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58599/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2192,
+ "height": 3073,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58599/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9558
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5110/",
+ "@type": "sc:Canvas",
+ "label": "171r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5110/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5110/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5110/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5112/",
+ "@type": "sc:Canvas",
+ "label": "171v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5112/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5112/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9558,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5112/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58600/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2400,
+ "height": 2433,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58600/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9558
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5113/",
+ "@type": "sc:Canvas",
+ "label": "172r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5113/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5113/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5113/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5114/",
+ "@type": "sc:Canvas",
+ "label": "172v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5114/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5114/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9558,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5114/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58601/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1953,
+ "height": 2352,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58601/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58705/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1296,
+ "height": 1984,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58705/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9558
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5115/",
+ "@type": "sc:Canvas",
+ "label": "173r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5115/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5115/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5115/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5116/",
+ "@type": "sc:Canvas",
+ "label": "173v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5116/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5116/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9558,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5116/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9558
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5117/",
+ "@type": "sc:Canvas",
+ "label": "174r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5117/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5117/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9558,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5117/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9558
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5118/",
+ "@type": "sc:Canvas",
+ "label": "174v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5118/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5118/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5118/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5119/",
+ "@type": "sc:Canvas",
+ "label": "175r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5119/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5119/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9558,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5119/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9558
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5120/",
+ "@type": "sc:Canvas",
+ "label": "175v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5120/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5120/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5120/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5121/",
+ "@type": "sc:Canvas",
+ "label": "176r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5121/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5121/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9558,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5121/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9558
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5122/",
+ "@type": "sc:Canvas",
+ "label": "176v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5122/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5122/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5122/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5123/",
+ "@type": "sc:Canvas",
+ "label": "177r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5123/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5123/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9558,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5123/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9558
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5124/",
+ "@type": "sc:Canvas",
+ "label": "177v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5124/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5124/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5124/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58706/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1424,
+ "height": 1328,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58706/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5125/",
+ "@type": "sc:Canvas",
+ "label": "178r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5125/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5125/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9558,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5125/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58707/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1168,
+ "height": 1248,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58707/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9558
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5127/",
+ "@type": "sc:Canvas",
+ "label": "178v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5127/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5127/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7728,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5127/"
+ }
+ }
+ }
+ ],
+ "width": 7728,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5128/",
+ "@type": "sc:Canvas",
+ "label": "179r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5128/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5128/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9558,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5128/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9558
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5129/",
+ "@type": "sc:Canvas",
+ "label": "179v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5129/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5129/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5129/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58708/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1008,
+ "height": 1104,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58708/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5130/",
+ "@type": "sc:Canvas",
+ "label": "180r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5130/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5130/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5130/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58709/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1296,
+ "height": 2640,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58709/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5131/",
+ "@type": "sc:Canvas",
+ "label": "180v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5131/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5131/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5131/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58710/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 896,
+ "height": 2640,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58710/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5132/",
+ "@type": "sc:Canvas",
+ "label": "181r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5132/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5132/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5132/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58158/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1184,
+ "height": 480,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58158/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5133/",
+ "@type": "sc:Canvas",
+ "label": "181v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5133/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5133/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5133/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5134/",
+ "@type": "sc:Canvas",
+ "label": "182r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5134/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5134/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5134/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5135/",
+ "@type": "sc:Canvas",
+ "label": "182v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5135/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5135/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5135/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58602/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2016,
+ "height": 2209,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58602/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58711/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1120,
+ "height": 1200,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58711/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5136/",
+ "@type": "sc:Canvas",
+ "label": "183r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5136/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5136/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5136/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5137/",
+ "@type": "sc:Canvas",
+ "label": "183v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5137/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5137/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5137/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5138/",
+ "@type": "sc:Canvas",
+ "label": "184r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5138/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5138/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5138/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5139/",
+ "@type": "sc:Canvas",
+ "label": "184v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5139/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5139/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5139/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58712/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 880,
+ "height": 3104,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58712/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5140/",
+ "@type": "sc:Canvas",
+ "label": "185r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5140/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5140/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5140/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58159/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1264,
+ "height": 464,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58159/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5142/",
+ "@type": "sc:Canvas",
+ "label": "185v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5142/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5142/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5142/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5143/",
+ "@type": "sc:Canvas",
+ "label": "186r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5143/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5143/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5143/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58160/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1280,
+ "height": 544,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58160/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5144/",
+ "@type": "sc:Canvas",
+ "label": "186v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5144/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5144/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5144/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5145/",
+ "@type": "sc:Canvas",
+ "label": "187r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5145/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5145/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5145/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58161/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1280,
+ "height": 544,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58161/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5146/",
+ "@type": "sc:Canvas",
+ "label": "187v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5146/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5146/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5146/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5147/",
+ "@type": "sc:Canvas",
+ "label": "188r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5147/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5147/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5147/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58162/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1184,
+ "height": 480,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58162/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58603/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2241,
+ "height": 4064,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58603/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5148/",
+ "@type": "sc:Canvas",
+ "label": "188v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5148/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5148/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5148/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5149/",
+ "@type": "sc:Canvas",
+ "label": "189r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5149/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5149/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5149/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58163/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1184,
+ "height": 480,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58163/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5150/",
+ "@type": "sc:Canvas",
+ "label": "189v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5150/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5150/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5150/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5151/",
+ "@type": "sc:Canvas",
+ "label": "190r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5151/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5151/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5151/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58604/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2241,
+ "height": 4288,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58604/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58713/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1072,
+ "height": 1376,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58713/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5152/",
+ "@type": "sc:Canvas",
+ "label": "190v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5152/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5152/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5152/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5153/",
+ "@type": "sc:Canvas",
+ "label": "191r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5153/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5153/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5153/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5154/",
+ "@type": "sc:Canvas",
+ "label": "191v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5154/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5154/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5154/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58164/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 624,
+ "height": 1120,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58164/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58605/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2064,
+ "height": 2417,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58605/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58714/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 976,
+ "height": 1056,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58714/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5155/",
+ "@type": "sc:Canvas",
+ "label": "192r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5155/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5155/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5155/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5156/",
+ "@type": "sc:Canvas",
+ "label": "192v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5156/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5156/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5156/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58165/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1184,
+ "height": 480,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58165/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5157/",
+ "@type": "sc:Canvas",
+ "label": "193r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5157/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5157/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5157/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5158/",
+ "@type": "sc:Canvas",
+ "label": "193v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5158/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5158/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5158/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5159/",
+ "@type": "sc:Canvas",
+ "label": "194r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5159/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5159/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5159/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5160/",
+ "@type": "sc:Canvas",
+ "label": "194v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5160/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5160/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5160/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5161/",
+ "@type": "sc:Canvas",
+ "label": "195r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5161/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5161/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5161/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5162/",
+ "@type": "sc:Canvas",
+ "label": "195v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5162/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5162/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5162/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5163/",
+ "@type": "sc:Canvas",
+ "label": "196r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5163/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5163/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5163/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5164/",
+ "@type": "sc:Canvas",
+ "label": "196v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5164/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5164/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5164/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5165/",
+ "@type": "sc:Canvas",
+ "label": "197r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5165/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5165/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5165/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5166/",
+ "@type": "sc:Canvas",
+ "label": "197v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5166/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5166/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5166/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5167/",
+ "@type": "sc:Canvas",
+ "label": "198r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5167/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5167/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5167/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5168/",
+ "@type": "sc:Canvas",
+ "label": "198v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5168/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5168/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5168/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5169/",
+ "@type": "sc:Canvas",
+ "label": "199r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5169/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5169/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5169/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5171/",
+ "@type": "sc:Canvas",
+ "label": "199v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5171/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5171/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5171/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5172/",
+ "@type": "sc:Canvas",
+ "label": "200r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5172/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5172/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5172/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5173/",
+ "@type": "sc:Canvas",
+ "label": "200v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5173/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5173/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5173/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58606/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2513,
+ "height": 4976,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58606/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5174/",
+ "@type": "sc:Canvas",
+ "label": "201r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5174/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5174/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5174/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5175/",
+ "@type": "sc:Canvas",
+ "label": "201v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5175/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5175/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5175/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58607/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2273,
+ "height": 6272,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58607/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5176/",
+ "@type": "sc:Canvas",
+ "label": "202r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5176/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5176/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5176/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5177/",
+ "@type": "sc:Canvas",
+ "label": "202v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5177/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5177/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5177/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5178/",
+ "@type": "sc:Canvas",
+ "label": "203r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5178/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5178/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5178/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5179/",
+ "@type": "sc:Canvas",
+ "label": "203v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5179/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5179/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5179/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5180/",
+ "@type": "sc:Canvas",
+ "label": "204r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5180/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5180/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5180/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5181/",
+ "@type": "sc:Canvas",
+ "label": "204v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5181/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5181/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5181/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5182/",
+ "@type": "sc:Canvas",
+ "label": "205r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5182/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5182/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5182/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5183/",
+ "@type": "sc:Canvas",
+ "label": "205v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5183/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5183/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5183/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5184/",
+ "@type": "sc:Canvas",
+ "label": "206r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5184/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5184/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5184/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5186/",
+ "@type": "sc:Canvas",
+ "label": "206v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5186/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5186/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5186/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5187/",
+ "@type": "sc:Canvas",
+ "label": "207r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5187/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5187/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5187/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5188/",
+ "@type": "sc:Canvas",
+ "label": "207v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5188/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5188/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5188/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5189/",
+ "@type": "sc:Canvas",
+ "label": "208r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5189/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5189/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5189/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5190/",
+ "@type": "sc:Canvas",
+ "label": "208v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5190/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5190/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5190/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5191/",
+ "@type": "sc:Canvas",
+ "label": "209r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5191/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5191/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5191/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5192/",
+ "@type": "sc:Canvas",
+ "label": "209v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5192/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5192/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5192/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5193/",
+ "@type": "sc:Canvas",
+ "label": "210r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5193/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5193/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9526,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5193/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9526
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5194/",
+ "@type": "sc:Canvas",
+ "label": "210v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5194/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5194/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5194/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5195/",
+ "@type": "sc:Canvas",
+ "label": "211r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5195/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5195/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5195/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5196/",
+ "@type": "sc:Canvas",
+ "label": "211v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5196/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5196/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5196/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58715/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 736,
+ "height": 1120,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58715/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5197/",
+ "@type": "sc:Canvas",
+ "label": "212r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5197/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5197/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5197/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58608/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 5728,
+ "height": 3041,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58608/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5198/",
+ "@type": "sc:Canvas",
+ "label": "212v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5198/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5198/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5198/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58716/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 800,
+ "height": 992,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58716/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5199/",
+ "@type": "sc:Canvas",
+ "label": "213r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5199/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5199/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5199/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5201/",
+ "@type": "sc:Canvas",
+ "label": "213v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5201/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5201/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5201/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5202/",
+ "@type": "sc:Canvas",
+ "label": "214r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5202/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5202/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5202/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58609/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 6352,
+ "height": 2865,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58609/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5203/",
+ "@type": "sc:Canvas",
+ "label": "214v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5203/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5203/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5203/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5204/",
+ "@type": "sc:Canvas",
+ "label": "215r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5204/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5204/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5204/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5205/",
+ "@type": "sc:Canvas",
+ "label": "215v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5205/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5205/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5205/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58717/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1040,
+ "height": 1024,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58717/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5206/",
+ "@type": "sc:Canvas",
+ "label": "216r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5206/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5206/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5206/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5207/",
+ "@type": "sc:Canvas",
+ "label": "216v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5207/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5207/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5207/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5208/",
+ "@type": "sc:Canvas",
+ "label": "217r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5208/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5208/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5208/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5209/",
+ "@type": "sc:Canvas",
+ "label": "217v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5209/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5209/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5209/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5210/",
+ "@type": "sc:Canvas",
+ "label": "218r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5210/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5210/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5210/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5211/",
+ "@type": "sc:Canvas",
+ "label": "218v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5211/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5211/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5211/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58718/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 992,
+ "height": 880,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58718/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5212/",
+ "@type": "sc:Canvas",
+ "label": "219r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5212/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5212/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5212/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5213/",
+ "@type": "sc:Canvas",
+ "label": "219v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5213/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5213/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5213/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58719/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1024,
+ "height": 1296,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58719/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5214/",
+ "@type": "sc:Canvas",
+ "label": "220r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5214/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5214/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5214/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5216/",
+ "@type": "sc:Canvas",
+ "label": "220v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5216/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5216/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5216/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58720/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 992,
+ "height": 1088,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58720/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5217/",
+ "@type": "sc:Canvas",
+ "label": "221r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5217/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5217/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5217/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58721/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1373,
+ "height": 1600,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58721/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5218/",
+ "@type": "sc:Canvas",
+ "label": "221v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5218/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5218/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5218/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5219/",
+ "@type": "sc:Canvas",
+ "label": "222r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5219/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5219/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5219/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5220/",
+ "@type": "sc:Canvas",
+ "label": "222v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5220/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5220/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5220/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58610/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2320,
+ "height": 3394,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58610/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5221/",
+ "@type": "sc:Canvas",
+ "label": "223r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5221/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5221/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5221/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5222/",
+ "@type": "sc:Canvas",
+ "label": "223v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5222/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5222/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5222/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58611/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2369,
+ "height": 4848,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58611/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5223/",
+ "@type": "sc:Canvas",
+ "label": "224r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5223/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5223/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5223/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5224/",
+ "@type": "sc:Canvas",
+ "label": "224v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5224/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5224/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5224/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58612/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2737,
+ "height": 4608,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58612/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58722/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 784,
+ "height": 1072,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58722/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5225/",
+ "@type": "sc:Canvas",
+ "label": "225r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5225/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5225/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5225/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5226/",
+ "@type": "sc:Canvas",
+ "label": "225v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5226/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5226/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5226/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5227/",
+ "@type": "sc:Canvas",
+ "label": "226r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5227/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5227/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5227/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5228/",
+ "@type": "sc:Canvas",
+ "label": "226v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5228/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5228/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5228/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5229/",
+ "@type": "sc:Canvas",
+ "label": "227r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5229/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5229/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5229/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5231/",
+ "@type": "sc:Canvas",
+ "label": "227v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5231/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5231/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5231/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5232/",
+ "@type": "sc:Canvas",
+ "label": "228r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5232/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5232/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5232/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58613/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2401,
+ "height": 4672,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58613/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5233/",
+ "@type": "sc:Canvas",
+ "label": "228v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5233/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5233/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5233/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5234/",
+ "@type": "sc:Canvas",
+ "label": "229r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5234/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5234/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5234/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5235/",
+ "@type": "sc:Canvas",
+ "label": "229v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5235/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5235/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5235/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5236/",
+ "@type": "sc:Canvas",
+ "label": "230r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5236/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5236/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5236/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58614/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2449,
+ "height": 5280,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58614/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5237/",
+ "@type": "sc:Canvas",
+ "label": "230v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5237/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5237/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5237/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5238/",
+ "@type": "sc:Canvas",
+ "label": "231r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5238/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5238/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5238/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58615/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2705,
+ "height": 6096,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58615/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5239/",
+ "@type": "sc:Canvas",
+ "label": "231v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5239/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5239/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5239/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5240/",
+ "@type": "sc:Canvas",
+ "label": "232r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5240/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5240/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5240/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58616/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2577,
+ "height": 6304,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58616/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5241/",
+ "@type": "sc:Canvas",
+ "label": "232v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5241/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5241/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5241/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5242/",
+ "@type": "sc:Canvas",
+ "label": "233r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5242/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5242/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5242/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5243/",
+ "@type": "sc:Canvas",
+ "label": "233v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5243/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5243/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5243/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5244/",
+ "@type": "sc:Canvas",
+ "label": "234r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5244/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5244/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5244/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58617/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2401,
+ "height": 5424,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58617/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5246/",
+ "@type": "sc:Canvas",
+ "label": "234v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5246/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5246/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5246/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5247/",
+ "@type": "sc:Canvas",
+ "label": "235r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5247/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5247/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5247/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5248/",
+ "@type": "sc:Canvas",
+ "label": "235v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5248/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5248/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5248/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5249/",
+ "@type": "sc:Canvas",
+ "label": "236r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5249/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5249/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5249/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58723/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 944,
+ "height": 1520,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58723/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5250/",
+ "@type": "sc:Canvas",
+ "label": "236v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5250/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5250/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5250/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58724/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1120,
+ "height": 5280,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58724/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5251/",
+ "@type": "sc:Canvas",
+ "label": "237r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5251/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5251/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5251/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58618/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 5888,
+ "height": 2993,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58618/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58725/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1040,
+ "height": 1168,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58725/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5252/",
+ "@type": "sc:Canvas",
+ "label": "237v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5252/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5252/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5252/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58726/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 944,
+ "height": 1152,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58726/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5253/",
+ "@type": "sc:Canvas",
+ "label": "238r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5253/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5253/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5253/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5254/",
+ "@type": "sc:Canvas",
+ "label": "238v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5254/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5254/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5254/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58727/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 880,
+ "height": 1056,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58727/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5255/",
+ "@type": "sc:Canvas",
+ "label": "239r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5255/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5255/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5255/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58619/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 4368,
+ "height": 2545,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58619/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5256/",
+ "@type": "sc:Canvas",
+ "label": "239v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5256/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5256/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5256/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58728/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 816,
+ "height": 1184,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58728/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5257/",
+ "@type": "sc:Canvas",
+ "label": "240r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5257/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5257/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5257/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5258/",
+ "@type": "sc:Canvas",
+ "label": "240v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5258/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5258/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5258/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5259/",
+ "@type": "sc:Canvas",
+ "label": "241r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5259/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5259/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5259/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5260/",
+ "@type": "sc:Canvas",
+ "label": "241v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5260/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5260/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5260/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58729/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 976,
+ "height": 2800,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58729/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5261/",
+ "@type": "sc:Canvas",
+ "label": "242r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5261/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5261/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5261/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5262/",
+ "@type": "sc:Canvas",
+ "label": "242v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5262/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5262/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5262/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5263/",
+ "@type": "sc:Canvas",
+ "label": "243r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5263/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5263/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5263/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5264/",
+ "@type": "sc:Canvas",
+ "label": "243v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5264/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5264/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5264/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5265/",
+ "@type": "sc:Canvas",
+ "label": "244r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5265/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5265/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5265/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5266/",
+ "@type": "sc:Canvas",
+ "label": "244v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5266/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5266/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5266/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58620/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 960,
+ "height": 1312,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58620/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58730/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 960,
+ "height": 1232,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58730/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5267/",
+ "@type": "sc:Canvas",
+ "label": "245r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5267/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5267/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5267/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58731/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 864,
+ "height": 1136,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58731/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5268/",
+ "@type": "sc:Canvas",
+ "label": "245v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5268/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5268/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5268/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58732/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1024,
+ "height": 1712,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58732/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5269/",
+ "@type": "sc:Canvas",
+ "label": "246r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5269/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5269/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5269/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58733/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1430,
+ "height": 1560,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58733/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5270/",
+ "@type": "sc:Canvas",
+ "label": "246v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5270/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5270/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5270/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58734/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 992,
+ "height": 1440,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58734/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5271/",
+ "@type": "sc:Canvas",
+ "label": "247r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5271/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5271/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5271/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5272/",
+ "@type": "sc:Canvas",
+ "label": "247v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5272/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5272/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9686,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5272/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9686
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5273/",
+ "@type": "sc:Canvas",
+ "label": "248r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5273/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5273/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5273/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5275/",
+ "@type": "sc:Canvas",
+ "label": "248v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5275/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5275/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9510,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5275/"
+ }
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9510
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5276/",
+ "@type": "sc:Canvas",
+ "label": "249r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5276/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5276/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5276/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58621/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2176,
+ "height": 2209,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58621/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5277/",
+ "@type": "sc:Canvas",
+ "label": "249v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5277/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5277/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5277/"
+ }
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5278/",
+ "@type": "sc:Canvas",
+ "label": "250r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5278/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5278/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5278/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58166/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1968,
+ "height": 496,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58166/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5279/",
+ "@type": "sc:Canvas",
+ "label": "250v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5279/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5279/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5279/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58622/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2224,
+ "height": 1649,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58622/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5280/",
+ "@type": "sc:Canvas",
+ "label": "251r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5280/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5280/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5280/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58167/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1808,
+ "height": 480,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58167/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5281/",
+ "@type": "sc:Canvas",
+ "label": "251v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5281/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5281/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5281/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58623/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2128,
+ "height": 1585,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58623/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5282/",
+ "@type": "sc:Canvas",
+ "label": "252r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5282/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5282/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5282/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5283/",
+ "@type": "sc:Canvas",
+ "label": "252v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5283/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5283/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9830,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5283/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58735/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1072,
+ "height": 1360,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58735/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9830
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5284/",
+ "@type": "sc:Canvas",
+ "label": "253r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5284/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5284/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5284/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5285/",
+ "@type": "sc:Canvas",
+ "label": "253v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5285/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5285/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9830,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5285/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58624/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2289,
+ "height": 5200,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58624/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9830
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5286/",
+ "@type": "sc:Canvas",
+ "label": "254r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5286/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5286/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9830,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5286/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9830
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5287/",
+ "@type": "sc:Canvas",
+ "label": "254v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5287/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5287/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5287/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5288/",
+ "@type": "sc:Canvas",
+ "label": "255r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5288/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5288/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9830,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5288/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58168/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1616,
+ "height": 480,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58168/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58625/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2192,
+ "height": 2769,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58625/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9830
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5290/",
+ "@type": "sc:Canvas",
+ "label": "255v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5290/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5290/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9606,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5290/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9606
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5291/",
+ "@type": "sc:Canvas",
+ "label": "256r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5291/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5291/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9814,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5291/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58626/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1968,
+ "height": 496,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58626/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58736/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 3874,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58736/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9814
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5292/",
+ "@type": "sc:Canvas",
+ "label": "256v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5292/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5292/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5292/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5293/",
+ "@type": "sc:Canvas",
+ "label": "257r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5293/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5293/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5293/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58169/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1968,
+ "height": 496,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58169/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5294/",
+ "@type": "sc:Canvas",
+ "label": "257v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5294/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5294/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5294/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5295/",
+ "@type": "sc:Canvas",
+ "label": "258r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5295/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5295/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9766,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5295/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58170/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2304,
+ "height": 608,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58170/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9766
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5296/",
+ "@type": "sc:Canvas",
+ "label": "258v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5296/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5296/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5296/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5297/",
+ "@type": "sc:Canvas",
+ "label": "259r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5297/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5297/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7840,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5297/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58171/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1648,
+ "height": 560,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58171/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7840,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5298/",
+ "@type": "sc:Canvas",
+ "label": "259v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5298/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5298/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5298/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58172/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 912,
+ "height": 480,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58172/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58627/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2992,
+ "height": 3025,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58627/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5299/",
+ "@type": "sc:Canvas",
+ "label": "260r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5299/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5299/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5299/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5300/",
+ "@type": "sc:Canvas",
+ "label": "260v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5300/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5300/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5300/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58737/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1072,
+ "height": 1488,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58737/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5301/",
+ "@type": "sc:Canvas",
+ "label": "261r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5301/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5301/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5301/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58173/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1888,
+ "height": 528,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58173/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5302/",
+ "@type": "sc:Canvas",
+ "label": "261v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5302/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5302/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5302/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5303/",
+ "@type": "sc:Canvas",
+ "label": "262r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5303/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5303/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5303/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58174/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1888,
+ "height": 528,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58174/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5304/",
+ "@type": "sc:Canvas",
+ "label": "262v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5304/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5304/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5304/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5305/",
+ "@type": "sc:Canvas",
+ "label": "263r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5305/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5305/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5305/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58175/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2304,
+ "height": 496,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58175/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5306/",
+ "@type": "sc:Canvas",
+ "label": "263v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5306/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5306/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5306/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58628/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2369,
+ "height": 4080,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58628/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5307/",
+ "@type": "sc:Canvas",
+ "label": "264r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5307/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5307/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5307/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58176/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2272,
+ "height": 496,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58176/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5308/",
+ "@type": "sc:Canvas",
+ "label": "264v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5308/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5308/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5308/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5309/",
+ "@type": "sc:Canvas",
+ "label": "265r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5309/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5309/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5309/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58177/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1872,
+ "height": 480,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58177/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5310/",
+ "@type": "sc:Canvas",
+ "label": "265v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5310/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5310/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5310/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5311/",
+ "@type": "sc:Canvas",
+ "label": "266r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5311/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5311/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5311/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58178/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1872,
+ "height": 544,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58178/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5312/",
+ "@type": "sc:Canvas",
+ "label": "266v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5312/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5312/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5312/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5313/",
+ "@type": "sc:Canvas",
+ "label": "267r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5313/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5313/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5313/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58179/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2272,
+ "height": 496,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58179/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58629/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2305,
+ "height": 4512,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58629/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5314/",
+ "@type": "sc:Canvas",
+ "label": "267v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5314/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5314/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5314/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5315/",
+ "@type": "sc:Canvas",
+ "label": "268r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5315/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5315/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5315/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58180/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2304,
+ "height": 496,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58180/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5316/",
+ "@type": "sc:Canvas",
+ "label": "268v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5316/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5316/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5316/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5317/",
+ "@type": "sc:Canvas",
+ "label": "269r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5317/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5317/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5317/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5319/",
+ "@type": "sc:Canvas",
+ "label": "269v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5319/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5319/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5319/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5320/",
+ "@type": "sc:Canvas",
+ "label": "270r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5320/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5320/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5320/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5321/",
+ "@type": "sc:Canvas",
+ "label": "270v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5321/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5321/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5321/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58738/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 784,
+ "height": 1168,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58738/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5322/",
+ "@type": "sc:Canvas",
+ "label": "271r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5322/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5322/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9574,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5322/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9574
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5323/",
+ "@type": "sc:Canvas",
+ "label": "271v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5323/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5323/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9702,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5323/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58181/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 896,
+ "height": 416,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58181/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58739/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1104,
+ "height": 4480,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58739/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9702
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5324/",
+ "@type": "sc:Canvas",
+ "label": "272r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5324/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5324/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5324/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58182/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2240,
+ "height": 432,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58182/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5325/",
+ "@type": "sc:Canvas",
+ "label": "272v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5325/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5325/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5325/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5326/",
+ "@type": "sc:Canvas",
+ "label": "273r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5326/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5326/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5326/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58183/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2368,
+ "height": 432,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58183/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5327/",
+ "@type": "sc:Canvas",
+ "label": "273v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5327/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5327/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5327/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5328/",
+ "@type": "sc:Canvas",
+ "label": "274r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5328/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5328/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5328/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58184/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2288,
+ "height": 512,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58184/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5329/",
+ "@type": "sc:Canvas",
+ "label": "274v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5329/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5329/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5329/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5330/",
+ "@type": "sc:Canvas",
+ "label": "275r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5330/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5330/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5330/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58185/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2256,
+ "height": 496,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58185/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5331/",
+ "@type": "sc:Canvas",
+ "label": "275v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5331/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5331/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5331/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5332/",
+ "@type": "sc:Canvas",
+ "label": "276r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5332/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5332/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5332/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58630/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2368,
+ "height": 496,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58630/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58740/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 4578,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58740/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58186/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 5104,
+ "height": 832,
+ "label": "Detail",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58186/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/6912/",
+ "@type": "sc:Canvas",
+ "label": "276r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/6912/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/6912/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 4578,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/6912/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 4578
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5333/",
+ "@type": "sc:Canvas",
+ "label": "276v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5333/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5333/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5333/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5334/",
+ "@type": "sc:Canvas",
+ "label": "277r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5334/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5334/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5334/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58187/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2080,
+ "height": 576,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58187/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5335/",
+ "@type": "sc:Canvas",
+ "label": "277v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5335/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5335/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5335/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5336/",
+ "@type": "sc:Canvas",
+ "label": "278r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5336/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5336/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5336/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58188/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2032,
+ "height": 576,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58188/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5337/",
+ "@type": "sc:Canvas",
+ "label": "278v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5337/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5337/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9670,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5337/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9670
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5338/",
+ "@type": "sc:Canvas",
+ "label": "279r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5338/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5338/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5338/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58189/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2256,
+ "height": 496,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58189/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5339/",
+ "@type": "sc:Canvas",
+ "label": "279v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5339/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5339/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5339/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5340/",
+ "@type": "sc:Canvas",
+ "label": "280r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5340/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5340/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5340/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58190/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2272,
+ "height": 544,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58190/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5341/",
+ "@type": "sc:Canvas",
+ "label": "280v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5341/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5341/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5341/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5342/",
+ "@type": "sc:Canvas",
+ "label": "281r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5342/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5342/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5342/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58191/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2176,
+ "height": 464,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58191/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5343/",
+ "@type": "sc:Canvas",
+ "label": "281v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5343/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5343/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5343/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5344/",
+ "@type": "sc:Canvas",
+ "label": "282r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5344/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5344/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5344/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58192/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2016,
+ "height": 400,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58192/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5345/",
+ "@type": "sc:Canvas",
+ "label": "282v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5345/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5345/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7856,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5345/"
+ }
+ }
+ }
+ ],
+ "width": 7856,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5346/",
+ "@type": "sc:Canvas",
+ "label": "283r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5346/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5346/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5346/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58193/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1968,
+ "height": 480,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58193/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5348/",
+ "@type": "sc:Canvas",
+ "label": "283v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5348/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5348/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5348/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58194/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 912,
+ "height": 448,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58194/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5349/",
+ "@type": "sc:Canvas",
+ "label": "284r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5349/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5349/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5349/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58195/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1792,
+ "height": 448,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58195/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5350/",
+ "@type": "sc:Canvas",
+ "label": "284v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5350/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5350/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5350/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5351/",
+ "@type": "sc:Canvas",
+ "label": "285r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5351/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5351/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5351/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58196/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1744,
+ "height": 480,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58196/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5352/",
+ "@type": "sc:Canvas",
+ "label": "285v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5352/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5352/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5352/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58631/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2257,
+ "height": 3984,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58631/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5353/",
+ "@type": "sc:Canvas",
+ "label": "286r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5353/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5353/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5353/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5354/",
+ "@type": "sc:Canvas",
+ "label": "286v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5354/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5354/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5354/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5355/",
+ "@type": "sc:Canvas",
+ "label": "287r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5355/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5355/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5355/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58197/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2016,
+ "height": 480,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58197/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5356/",
+ "@type": "sc:Canvas",
+ "label": "287v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5356/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5356/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5356/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5357/",
+ "@type": "sc:Canvas",
+ "label": "288r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5357/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5357/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5357/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58198/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1920,
+ "height": 480,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58198/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5358/",
+ "@type": "sc:Canvas",
+ "label": "288v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5358/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5358/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5358/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58632/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2241,
+ "height": 4656,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58632/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5359/",
+ "@type": "sc:Canvas",
+ "label": "289r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5359/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5359/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5359/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58199/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2016,
+ "height": 480,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58199/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5360/",
+ "@type": "sc:Canvas",
+ "label": "289v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5360/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5360/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5360/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5361/",
+ "@type": "sc:Canvas",
+ "label": "290r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5361/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5361/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5361/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58200/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2016,
+ "height": 480,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58200/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58633/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2097,
+ "height": 3824,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58633/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5362/",
+ "@type": "sc:Canvas",
+ "label": "290v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5362/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5362/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5362/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5363/",
+ "@type": "sc:Canvas",
+ "label": "291r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5363/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5363/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5363/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58634/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2145,
+ "height": 4128,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58634/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5364/",
+ "@type": "sc:Canvas",
+ "label": "291v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5364/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5364/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5364/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5365/",
+ "@type": "sc:Canvas",
+ "label": "292r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5365/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5365/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5365/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5366/",
+ "@type": "sc:Canvas",
+ "label": "292v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5366/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5366/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5366/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5367/",
+ "@type": "sc:Canvas",
+ "label": "293r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5367/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5367/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5367/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58635/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 3073,
+ "height": 5168,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58635/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5368/",
+ "@type": "sc:Canvas",
+ "label": "293v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5368/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5368/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9622,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5368/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58201/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1056,
+ "height": 448,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58201/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9622
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5369/",
+ "@type": "sc:Canvas",
+ "label": "294r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5369/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5369/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5369/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5370/",
+ "@type": "sc:Canvas",
+ "label": "294v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5370/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5370/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5370/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5371/",
+ "@type": "sc:Canvas",
+ "label": "295r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5371/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5371/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5371/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5372/",
+ "@type": "sc:Canvas",
+ "label": "295v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5372/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5372/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5372/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5373/",
+ "@type": "sc:Canvas",
+ "label": "296r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5373/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5373/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5373/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5374/",
+ "@type": "sc:Canvas",
+ "label": "296v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5374/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5374/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5374/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5375/",
+ "@type": "sc:Canvas",
+ "label": "297r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5375/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5375/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5375/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5377/",
+ "@type": "sc:Canvas",
+ "label": "297v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5377/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5377/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5377/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5378/",
+ "@type": "sc:Canvas",
+ "label": "298r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5378/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5378/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5378/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5379/",
+ "@type": "sc:Canvas",
+ "label": "298v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5379/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5379/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5379/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58202/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2256,
+ "height": 560,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58202/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5380/",
+ "@type": "sc:Canvas",
+ "label": "299r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5380/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5380/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5380/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5381/",
+ "@type": "sc:Canvas",
+ "label": "299v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5381/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5381/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5381/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5382/",
+ "@type": "sc:Canvas",
+ "label": "300r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5382/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5382/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5382/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5383/",
+ "@type": "sc:Canvas",
+ "label": "300v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5383/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5383/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5383/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5384/",
+ "@type": "sc:Canvas",
+ "label": "301r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5384/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5384/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5384/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5385/",
+ "@type": "sc:Canvas",
+ "label": "301v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5385/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5385/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5385/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5386/",
+ "@type": "sc:Canvas",
+ "label": "302r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5386/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5386/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5386/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5387/",
+ "@type": "sc:Canvas",
+ "label": "302v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5387/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5387/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5387/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5388/",
+ "@type": "sc:Canvas",
+ "label": "303r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5388/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5388/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5388/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5389/",
+ "@type": "sc:Canvas",
+ "label": "303v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5389/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5389/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5389/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5390/",
+ "@type": "sc:Canvas",
+ "label": "304r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5390/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5390/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5390/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5392/",
+ "@type": "sc:Canvas",
+ "label": "304v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5392/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5392/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5392/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5393/",
+ "@type": "sc:Canvas",
+ "label": "305r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5393/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5393/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5393/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5394/",
+ "@type": "sc:Canvas",
+ "label": "305v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5394/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5394/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5394/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58203/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 816,
+ "height": 288,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58203/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5395/",
+ "@type": "sc:Canvas",
+ "label": "306r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5395/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5395/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5395/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5396/",
+ "@type": "sc:Canvas",
+ "label": "306v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5396/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5396/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5396/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5397/",
+ "@type": "sc:Canvas",
+ "label": "307r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5397/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5397/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5397/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5398/",
+ "@type": "sc:Canvas",
+ "label": "307v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5398/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5398/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5398/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5399/",
+ "@type": "sc:Canvas",
+ "label": "308r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5399/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5399/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5399/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5400/",
+ "@type": "sc:Canvas",
+ "label": "308v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5400/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5400/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5400/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58636/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2225,
+ "height": 6400,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58636/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5401/",
+ "@type": "sc:Canvas",
+ "label": "309r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5401/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5401/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5401/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58741/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 5648,
+ "height": 7668,
+ "label": "Alternate Shot",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58741/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5402/",
+ "@type": "sc:Canvas",
+ "label": "309v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5402/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5402/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5402/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58637/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2545,
+ "height": 4464,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58637/"
+ }
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/images/58742/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 5648,
+ "height": 7668,
+ "label": "Alternate Shot",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58742/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5403/",
+ "@type": "sc:Canvas",
+ "label": "310r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5403/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5403/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5403/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58743/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 5312,
+ "height": 7668,
+ "label": "Alternate Shot",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58743/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5404/",
+ "@type": "sc:Canvas",
+ "label": "310v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5404/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5404/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5404/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58744/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 5472,
+ "height": 7652,
+ "label": "Alternate Shot",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58744/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5405/",
+ "@type": "sc:Canvas",
+ "label": "311r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5405/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5405/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5405/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58745/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 5312,
+ "height": 7732,
+ "label": "Alternate Shot",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58745/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5407/",
+ "@type": "sc:Canvas",
+ "label": "311v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5407/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5407/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5407/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58746/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 5312,
+ "height": 7700,
+ "label": "Alternate Shot",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58746/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5408/",
+ "@type": "sc:Canvas",
+ "label": "312r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5408/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5408/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5408/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5409/",
+ "@type": "sc:Canvas",
+ "label": "312v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5409/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5409/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5409/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5410/",
+ "@type": "sc:Canvas",
+ "label": "313r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5410/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5410/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5410/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58638/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2225,
+ "height": 5920,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58638/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5411/",
+ "@type": "sc:Canvas",
+ "label": "313v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5411/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5411/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5411/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5412/",
+ "@type": "sc:Canvas",
+ "label": "314r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5412/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5412/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5412/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5413/",
+ "@type": "sc:Canvas",
+ "label": "314v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5413/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5413/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5413/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5414/",
+ "@type": "sc:Canvas",
+ "label": "315r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5414/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5414/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5414/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5415/",
+ "@type": "sc:Canvas",
+ "label": "315v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5415/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5415/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5415/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5416/",
+ "@type": "sc:Canvas",
+ "label": "316r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5416/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5416/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5416/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58639/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2241,
+ "height": 6496,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58639/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5417/",
+ "@type": "sc:Canvas",
+ "label": "316v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5417/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5417/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5417/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5418/",
+ "@type": "sc:Canvas",
+ "label": "317r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5418/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5418/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5418/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58640/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2225,
+ "height": 4528,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58640/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5419/",
+ "@type": "sc:Canvas",
+ "label": "317v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5419/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5419/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7824,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5419/"
+ }
+ }
+ }
+ ],
+ "width": 7824,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5420/",
+ "@type": "sc:Canvas",
+ "label": "318r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5420/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5420/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5420/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5422/",
+ "@type": "sc:Canvas",
+ "label": "318v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5422/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5422/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9590,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5422/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9590
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5423/",
+ "@type": "sc:Canvas",
+ "label": "319r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5423/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5423/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9862,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5423/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9862
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5424/",
+ "@type": "sc:Canvas",
+ "label": "319v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5424/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5424/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9510,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5424/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9510
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5425/",
+ "@type": "sc:Canvas",
+ "label": "320r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5425/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5425/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5425/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5426/",
+ "@type": "sc:Canvas",
+ "label": "320v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5426/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5426/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9510,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5426/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58641/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2433,
+ "height": 6192,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58641/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9510
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5427/",
+ "@type": "sc:Canvas",
+ "label": "321r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5427/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5427/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5427/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5428/",
+ "@type": "sc:Canvas",
+ "label": "321v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5428/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5428/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9510,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5428/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58642/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2225,
+ "height": 6384,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58642/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9510
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5429/",
+ "@type": "sc:Canvas",
+ "label": "322r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5429/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5429/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5429/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5430/",
+ "@type": "sc:Canvas",
+ "label": "322v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5430/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5430/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9510,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5430/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58643/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 3394,
+ "height": 4576,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58643/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9510
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5431/",
+ "@type": "sc:Canvas",
+ "label": "323r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5431/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5431/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5431/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5432/",
+ "@type": "sc:Canvas",
+ "label": "323v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5432/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5432/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9494,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5432/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58644/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2129,
+ "height": 4688,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58644/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9494
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5433/",
+ "@type": "sc:Canvas",
+ "label": "324r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5433/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5433/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9510,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5433/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9510
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5434/",
+ "@type": "sc:Canvas",
+ "label": "324v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5434/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5434/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9654,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5434/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9654
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5435/",
+ "@type": "sc:Canvas",
+ "label": "325r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5435/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5435/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9510,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5435/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9510
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5437/",
+ "@type": "sc:Canvas",
+ "label": "325v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5437/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5437/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5437/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5438/",
+ "@type": "sc:Canvas",
+ "label": "326r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5438/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5438/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9510,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5438/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9510
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5439/",
+ "@type": "sc:Canvas",
+ "label": "326v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5439/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5439/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5439/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5440/",
+ "@type": "sc:Canvas",
+ "label": "327r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5440/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5440/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9510,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5440/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9510
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5441/",
+ "@type": "sc:Canvas",
+ "label": "327v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5441/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5441/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5441/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5442/",
+ "@type": "sc:Canvas",
+ "label": "328r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5442/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5442/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9590,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5442/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58645/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 3298,
+ "height": 5552,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58645/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9590
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5443/",
+ "@type": "sc:Canvas",
+ "label": "328v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5443/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5443/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9862,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5443/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9862
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5444/",
+ "@type": "sc:Canvas",
+ "label": "329r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5444/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5444/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7792,
+ "height": 9494,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5444/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58646/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1729,
+ "height": 3312,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58646/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7792,
+ "height": 9494
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5445/",
+ "@type": "sc:Canvas",
+ "label": "329v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5445/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5445/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9750,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5445/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9750
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5446/",
+ "@type": "sc:Canvas",
+ "label": "330r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5446/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5446/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5446/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5447/",
+ "@type": "sc:Canvas",
+ "label": "330v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5447/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5447/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5447/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5448/",
+ "@type": "sc:Canvas",
+ "label": "331r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5448/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5448/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5448/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5449/",
+ "@type": "sc:Canvas",
+ "label": "331v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5449/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5449/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5449/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5450/",
+ "@type": "sc:Canvas",
+ "label": "332r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5450/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5450/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5450/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5452/",
+ "@type": "sc:Canvas",
+ "label": "332v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5452/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5452/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5452/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58647/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2161,
+ "height": 5088,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58647/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5453/",
+ "@type": "sc:Canvas",
+ "label": "333r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5453/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5453/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5453/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5454/",
+ "@type": "sc:Canvas",
+ "label": "333v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5454/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5454/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5454/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58648/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 1921,
+ "height": 3728,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58648/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5455/",
+ "@type": "sc:Canvas",
+ "label": "334r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5455/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5455/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5455/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5456/",
+ "@type": "sc:Canvas",
+ "label": "334v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5456/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5456/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5456/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58649/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2241,
+ "height": 6448,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58649/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5457/",
+ "@type": "sc:Canvas",
+ "label": "335r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5457/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5457/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5457/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5458/",
+ "@type": "sc:Canvas",
+ "label": "335v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5458/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5458/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5458/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58650/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 2465,
+ "height": 5440,
+ "label": "Watermark",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58650/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5459/",
+ "@type": "sc:Canvas",
+ "label": "336r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5459/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5459/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5459/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5460/",
+ "@type": "sc:Canvas",
+ "label": "336v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5460/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5460/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5460/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5461/",
+ "@type": "sc:Canvas",
+ "label": "337r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5461/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5461/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5461/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5462/",
+ "@type": "sc:Canvas",
+ "label": "337v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5462/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5462/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5462/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5463/",
+ "@type": "sc:Canvas",
+ "label": "338r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5463/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5463/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9638,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5463/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9638
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5464/",
+ "@type": "sc:Canvas",
+ "label": "338v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5464/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5464/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5464/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5465/",
+ "@type": "sc:Canvas",
+ "label": "339r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5465/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5465/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5465/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5466/",
+ "@type": "sc:Canvas",
+ "label": "339v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5466/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5466/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5466/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5467/",
+ "@type": "sc:Canvas",
+ "label": "340r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5467/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5467/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5467/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5468/",
+ "@type": "sc:Canvas",
+ "label": "340v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5468/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5468/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7808,
+ "height": 9718,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5468/"
+ }
+ }
+ }
+ ],
+ "width": 7808,
+ "height": 9718
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5469/",
+ "@type": "sc:Canvas",
+ "label": "341r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5469/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5469/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9590,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5469/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9590
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5470/",
+ "@type": "sc:Canvas",
+ "label": "341v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5470/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5470/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9590,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5470/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9590
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5471/",
+ "@type": "sc:Canvas",
+ "label": "342r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5471/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5471/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9510,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5471/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58204/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 5168,
+ "height": 832,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58204/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9510
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/6913/",
+ "@type": "sc:Canvas",
+ "label": "342r",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/6913/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/6913/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 1344,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/6913/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58549/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 5168,
+ "height": 832,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58549/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 1344
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5472/",
+ "@type": "sc:Canvas",
+ "label": "342v",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5472/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5472/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7776,
+ "height": 9590,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5472/"
+ }
+ }
+ }
+ ],
+ "width": 7776,
+ "height": 9590
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5479/",
+ "@type": "sc:Canvas",
+ "label": "front cover recto",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5479/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5479/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9253,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5479/"
+ }
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9253
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5480/",
+ "@type": "sc:Canvas",
+ "label": "front cover verso",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5480/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5480/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9253,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5480/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58530/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 8080,
+ "height": 9253,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58530/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9253
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5482/",
+ "@type": "sc:Canvas",
+ "label": "rear cover recto",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5482/",
+ "resource": {
+ "@type": "oa:Choice",
+ "default": {
+ "@id": "https://www.diamm.ac.uk/images/5482/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9253,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5482/"
+ }
+ },
+ "item": [
+ {
+ "@id": "https://www.diamm.ac.uk/images/58531/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7072,
+ "height": 8565,
+ "label": "Colour UV",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/58531/"
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9253
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5483/",
+ "@type": "sc:Canvas",
+ "label": "rear cover verso",
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "https://www.diamm.ac.uk/sources/117/canvas/5483/",
+ "resource": {
+ "@id": "https://www.diamm.ac.uk/images/5483/",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "width": 7872,
+ "height": 9253,
+ "label": "Primary Image",
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "profile": "http://iiif.io/api/image/2/level1.json",
+ "@id": "https://www.diamm.ac.uk/images/5483/"
+ }
+ }
+ }
+ ],
+ "width": 7872,
+ "height": 9253
+ }
+ ]
+ }
+ ],
+ "structures": [
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4748/",
+ "@type": "sc:Canvas",
+ "label": "01v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4749/",
+ "@type": "sc:Canvas",
+ "label": "02r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16699/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16699/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4751/",
+ "@type": "sc:Canvas",
+ "label": "03r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6090/",
+ "@type": "sc:Range",
+ "label": "Salve sancta parens",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6090/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4754/",
+ "@type": "sc:Canvas",
+ "label": "03v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4755/",
+ "@type": "sc:Canvas",
+ "label": "04r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16700/",
+ "@type": "sc:Range",
+ "label": "Kyrie eleison",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16700/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4756/",
+ "@type": "sc:Canvas",
+ "label": "04v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4757/",
+ "@type": "sc:Canvas",
+ "label": "05r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4758/",
+ "@type": "sc:Canvas",
+ "label": "05v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4759/",
+ "@type": "sc:Canvas",
+ "label": "06r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16701/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria] [Tro] Spiritus et alme",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16701/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4760/",
+ "@type": "sc:Canvas",
+ "label": "06v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4761/",
+ "@type": "sc:Canvas",
+ "label": "07r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4762/",
+ "@type": "sc:Canvas",
+ "label": "07v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4763/",
+ "@type": "sc:Canvas",
+ "label": "08r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16702/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16702/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4764/",
+ "@type": "sc:Canvas",
+ "label": "08v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4765/",
+ "@type": "sc:Canvas",
+ "label": "09r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16703/",
+ "@type": "sc:Range",
+ "label": "Sanctus Marie filius",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16703/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4766/",
+ "@type": "sc:Canvas",
+ "label": "09v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4767/",
+ "@type": "sc:Canvas",
+ "label": "10r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16704/",
+ "@type": "sc:Range",
+ "label": "Agnus Dei",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16704/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4766/",
+ "@type": "sc:Canvas",
+ "label": "09v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4767/",
+ "@type": "sc:Canvas",
+ "label": "10r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16705/",
+ "@type": "sc:Range",
+ "label": "Se ce n’estoit la tres doulce pensee",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16705/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4769/",
+ "@type": "sc:Canvas",
+ "label": "10v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4770/",
+ "@type": "sc:Canvas",
+ "label": "11r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16706/",
+ "@type": "sc:Range",
+ "label": "Missa sine nomine = Resvelliés vous: Kyrie",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16706/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4771/",
+ "@type": "sc:Canvas",
+ "label": "11v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4772/",
+ "@type": "sc:Canvas",
+ "label": "12r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4773/",
+ "@type": "sc:Canvas",
+ "label": "12v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4774/",
+ "@type": "sc:Canvas",
+ "label": "13r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16707/",
+ "@type": "sc:Range",
+ "label": "Missa sine nomine = Resvelliés vous: Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16707/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4774/",
+ "@type": "sc:Canvas",
+ "label": "13r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16708/",
+ "@type": "sc:Range",
+ "label": "Kyrie Angelorum",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16708/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4775/",
+ "@type": "sc:Canvas",
+ "label": "13v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4776/",
+ "@type": "sc:Canvas",
+ "label": "14r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4777/",
+ "@type": "sc:Canvas",
+ "label": "14v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4778/",
+ "@type": "sc:Canvas",
+ "label": "15r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16709/",
+ "@type": "sc:Range",
+ "label": "Missa sine nomine = Resvelliés vous: Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16709/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4777/",
+ "@type": "sc:Canvas",
+ "label": "14v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4778/",
+ "@type": "sc:Canvas",
+ "label": "15r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16710/",
+ "@type": "sc:Range",
+ "label": "Belle teneis / La triquotee",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16710/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4779/",
+ "@type": "sc:Canvas",
+ "label": "15v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4780/",
+ "@type": "sc:Canvas",
+ "label": "16r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16711/",
+ "@type": "sc:Range",
+ "label": "Missa sine nomine = Resvelliés vous: Sanctus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16711/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4781/",
+ "@type": "sc:Canvas",
+ "label": "16v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4782/",
+ "@type": "sc:Canvas",
+ "label": "17r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16712/",
+ "@type": "sc:Range",
+ "label": "Missa sine nomine = Resvelliés vous: Agnus Dei",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16712/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4784/",
+ "@type": "sc:Canvas",
+ "label": "17v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4785/",
+ "@type": "sc:Canvas",
+ "label": "18r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16713/",
+ "@type": "sc:Range",
+ "label": "Kyrie eleison",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16713/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4786/",
+ "@type": "sc:Canvas",
+ "label": "18v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4787/",
+ "@type": "sc:Canvas",
+ "label": "19r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16714/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16714/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4788/",
+ "@type": "sc:Canvas",
+ "label": "19v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4789/",
+ "@type": "sc:Canvas",
+ "label": "20r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4790/",
+ "@type": "sc:Canvas",
+ "label": "20v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4791/",
+ "@type": "sc:Canvas",
+ "label": "21r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16715/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16715/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4792/",
+ "@type": "sc:Canvas",
+ "label": "21v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4793/",
+ "@type": "sc:Canvas",
+ "label": "22r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16716/",
+ "@type": "sc:Range",
+ "label": "Sanctus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16716/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4794/",
+ "@type": "sc:Canvas",
+ "label": "22v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4795/",
+ "@type": "sc:Canvas",
+ "label": "23r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16717/",
+ "@type": "sc:Range",
+ "label": "Sanctus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16717/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4796/",
+ "@type": "sc:Canvas",
+ "label": "23v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4797/",
+ "@type": "sc:Canvas",
+ "label": "24r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16718/",
+ "@type": "sc:Range",
+ "label": "Agnus Dei",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16718/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4796/",
+ "@type": "sc:Canvas",
+ "label": "23v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4797/",
+ "@type": "sc:Canvas",
+ "label": "24r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16719/",
+ "@type": "sc:Range",
+ "label": "Jone gente",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16719/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4799/",
+ "@type": "sc:Canvas",
+ "label": "24v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4800/",
+ "@type": "sc:Canvas",
+ "label": "25r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16720/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16720/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4801/",
+ "@type": "sc:Canvas",
+ "label": "25v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4802/",
+ "@type": "sc:Canvas",
+ "label": "26r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16721/",
+ "@type": "sc:Range",
+ "label": "Patrem",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16721/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4803/",
+ "@type": "sc:Canvas",
+ "label": "26v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4804/",
+ "@type": "sc:Canvas",
+ "label": "27r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16722/",
+ "@type": "sc:Range",
+ "label": "Sanctus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16722/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4805/",
+ "@type": "sc:Canvas",
+ "label": "27v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4806/",
+ "@type": "sc:Canvas",
+ "label": "28r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16723/",
+ "@type": "sc:Range",
+ "label": "Agnus Dei",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16723/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4807/",
+ "@type": "sc:Canvas",
+ "label": "28v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4808/",
+ "@type": "sc:Canvas",
+ "label": "29r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4809/",
+ "@type": "sc:Canvas",
+ "label": "29v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4810/",
+ "@type": "sc:Canvas",
+ "label": "30r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16724/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16724/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4809/",
+ "@type": "sc:Canvas",
+ "label": "29v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4810/",
+ "@type": "sc:Canvas",
+ "label": "30r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16725/",
+ "@type": "sc:Range",
+ "label": "Helas emy madame",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16725/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4811/",
+ "@type": "sc:Canvas",
+ "label": "30v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4812/",
+ "@type": "sc:Canvas",
+ "label": "31r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4814/",
+ "@type": "sc:Canvas",
+ "label": "31v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4815/",
+ "@type": "sc:Canvas",
+ "label": "32r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16726/",
+ "@type": "sc:Range",
+ "label": "Patrem / Factorem",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16726/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4816/",
+ "@type": "sc:Canvas",
+ "label": "32v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4817/",
+ "@type": "sc:Canvas",
+ "label": "33r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16727/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16727/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4818/",
+ "@type": "sc:Canvas",
+ "label": "33v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4819/",
+ "@type": "sc:Canvas",
+ "label": "34r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4820/",
+ "@type": "sc:Canvas",
+ "label": "34v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4821/",
+ "@type": "sc:Canvas",
+ "label": "35r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16728/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16728/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4818/",
+ "@type": "sc:Canvas",
+ "label": "33v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4819/",
+ "@type": "sc:Canvas",
+ "label": "34r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16729/",
+ "@type": "sc:Range",
+ "label": "Mon vrai desir",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16729/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4822/",
+ "@type": "sc:Canvas",
+ "label": "35v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4823/",
+ "@type": "sc:Canvas",
+ "label": "36r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4824/",
+ "@type": "sc:Canvas",
+ "label": "36v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4825/",
+ "@type": "sc:Canvas",
+ "label": "37r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16730/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16730/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4826/",
+ "@type": "sc:Canvas",
+ "label": "37v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4827/",
+ "@type": "sc:Canvas",
+ "label": "38r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4829/",
+ "@type": "sc:Canvas",
+ "label": "38v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4830/",
+ "@type": "sc:Canvas",
+ "label": "39r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4831/",
+ "@type": "sc:Canvas",
+ "label": "39v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4832/",
+ "@type": "sc:Canvas",
+ "label": "40r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16731/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16731/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4833/",
+ "@type": "sc:Canvas",
+ "label": "40v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4834/",
+ "@type": "sc:Canvas",
+ "label": "41r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16732/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16732/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4835/",
+ "@type": "sc:Canvas",
+ "label": "41v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4836/",
+ "@type": "sc:Canvas",
+ "label": "42r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4837/",
+ "@type": "sc:Canvas",
+ "label": "42v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4838/",
+ "@type": "sc:Canvas",
+ "label": "43r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16733/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16733/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4837/",
+ "@type": "sc:Canvas",
+ "label": "42v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4838/",
+ "@type": "sc:Canvas",
+ "label": "43r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16734/",
+ "@type": "sc:Range",
+ "label": "Un seul confort",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16734/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/6926/",
+ "@type": "sc:Canvas",
+ "label": "43 bis v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4840/",
+ "@type": "sc:Canvas",
+ "label": "44r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4841/",
+ "@type": "sc:Canvas",
+ "label": "44v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4842/",
+ "@type": "sc:Canvas",
+ "label": "45r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16736/",
+ "@type": "sc:Range",
+ "label": "Missa O pulcherrima: Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16736/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4839/",
+ "@type": "sc:Canvas",
+ "label": "43v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/6925/",
+ "@type": "sc:Canvas",
+ "label": "43 bisr"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16735/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16735/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4841/",
+ "@type": "sc:Canvas",
+ "label": "44v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4842/",
+ "@type": "sc:Canvas",
+ "label": "45r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16737/",
+ "@type": "sc:Range",
+ "label": "Chanter ne scay",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16737/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4844/",
+ "@type": "sc:Canvas",
+ "label": "45v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4845/",
+ "@type": "sc:Canvas",
+ "label": "46r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16738/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16738/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4846/",
+ "@type": "sc:Canvas",
+ "label": "46v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4847/",
+ "@type": "sc:Canvas",
+ "label": "47r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4848/",
+ "@type": "sc:Canvas",
+ "label": "47v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4849/",
+ "@type": "sc:Canvas",
+ "label": "48r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16739/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16739/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4850/",
+ "@type": "sc:Canvas",
+ "label": "48v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4851/",
+ "@type": "sc:Canvas",
+ "label": "49r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16740/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16740/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4852/",
+ "@type": "sc:Canvas",
+ "label": "49v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4853/",
+ "@type": "sc:Canvas",
+ "label": "50r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4854/",
+ "@type": "sc:Canvas",
+ "label": "50v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4855/",
+ "@type": "sc:Canvas",
+ "label": "51r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16741/",
+ "@type": "sc:Range",
+ "label": "Patrem",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16741/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4856/",
+ "@type": "sc:Canvas",
+ "label": "51v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4857/",
+ "@type": "sc:Canvas",
+ "label": "52r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16742/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16742/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4859/",
+ "@type": "sc:Canvas",
+ "label": "52v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4860/",
+ "@type": "sc:Canvas",
+ "label": "53r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4861/",
+ "@type": "sc:Canvas",
+ "label": "53v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4862/",
+ "@type": "sc:Canvas",
+ "label": "54r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16743/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16743/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4863/",
+ "@type": "sc:Canvas",
+ "label": "54v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4864/",
+ "@type": "sc:Canvas",
+ "label": "55r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16744/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16744/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4865/",
+ "@type": "sc:Canvas",
+ "label": "55v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4866/",
+ "@type": "sc:Canvas",
+ "label": "56r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4867/",
+ "@type": "sc:Canvas",
+ "label": "56v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4868/",
+ "@type": "sc:Canvas",
+ "label": "57r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16745/",
+ "@type": "sc:Range",
+ "label": "Missa O pulcherrima: Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16745/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4865/",
+ "@type": "sc:Canvas",
+ "label": "55v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4866/",
+ "@type": "sc:Canvas",
+ "label": "56r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16746/",
+ "@type": "sc:Range",
+ "label": "Mon douce espoir mon souvenir",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16746/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4869/",
+ "@type": "sc:Canvas",
+ "label": "57v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4870/",
+ "@type": "sc:Canvas",
+ "label": "58r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16747/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16747/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4871/",
+ "@type": "sc:Canvas",
+ "label": "58v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4872/",
+ "@type": "sc:Canvas",
+ "label": "59r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16748/",
+ "@type": "sc:Range",
+ "label": "Patrem",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16748/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4876/",
+ "@type": "sc:Canvas",
+ "label": "60v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4877/",
+ "@type": "sc:Canvas",
+ "label": "61r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16749/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16749/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4878/",
+ "@type": "sc:Canvas",
+ "label": "61v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4879/",
+ "@type": "sc:Canvas",
+ "label": "62r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4880/",
+ "@type": "sc:Canvas",
+ "label": "62v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4881/",
+ "@type": "sc:Canvas",
+ "label": "63r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16750/",
+ "@type": "sc:Range",
+ "label": "Patrem",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16750/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4882/",
+ "@type": "sc:Canvas",
+ "label": "63v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4883/",
+ "@type": "sc:Canvas",
+ "label": "64r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4884/",
+ "@type": "sc:Canvas",
+ "label": "64v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4885/",
+ "@type": "sc:Canvas",
+ "label": "65r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16751/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16751/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4886/",
+ "@type": "sc:Canvas",
+ "label": "65v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4887/",
+ "@type": "sc:Canvas",
+ "label": "66r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4889/",
+ "@type": "sc:Canvas",
+ "label": "66v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4890/",
+ "@type": "sc:Canvas",
+ "label": "67r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16752/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16752/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4891/",
+ "@type": "sc:Canvas",
+ "label": "67v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4892/",
+ "@type": "sc:Canvas",
+ "label": "68r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4893/",
+ "@type": "sc:Canvas",
+ "label": "68v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4894/",
+ "@type": "sc:Canvas",
+ "label": "69r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16753/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16753/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4895/",
+ "@type": "sc:Canvas",
+ "label": "69v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4896/",
+ "@type": "sc:Canvas",
+ "label": "70r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16754/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16754/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4901/",
+ "@type": "sc:Canvas",
+ "label": "72v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4902/",
+ "@type": "sc:Canvas",
+ "label": "73r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4904/",
+ "@type": "sc:Canvas",
+ "label": "73v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4905/",
+ "@type": "sc:Canvas",
+ "label": "74r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16755/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16755/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4906/",
+ "@type": "sc:Canvas",
+ "label": "74v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4907/",
+ "@type": "sc:Canvas",
+ "label": "75r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4908/",
+ "@type": "sc:Canvas",
+ "label": "75v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4909/",
+ "@type": "sc:Canvas",
+ "label": "76r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4910/",
+ "@type": "sc:Canvas",
+ "label": "76v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16756/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16756/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4910/",
+ "@type": "sc:Canvas",
+ "label": "76v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4911/",
+ "@type": "sc:Canvas",
+ "label": "77r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16757/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16757/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4912/",
+ "@type": "sc:Canvas",
+ "label": "77v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4913/",
+ "@type": "sc:Canvas",
+ "label": "78r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16758/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16758/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4914/",
+ "@type": "sc:Canvas",
+ "label": "78v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4915/",
+ "@type": "sc:Canvas",
+ "label": "79r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16759/",
+ "@type": "sc:Range",
+ "label": "Patrem / Factorem (some texting)",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16759/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4916/",
+ "@type": "sc:Canvas",
+ "label": "79v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4917/",
+ "@type": "sc:Canvas",
+ "label": "80r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16760/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16760/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4919/",
+ "@type": "sc:Canvas",
+ "label": "80v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4920/",
+ "@type": "sc:Canvas",
+ "label": "81r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4921/",
+ "@type": "sc:Canvas",
+ "label": "81v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4922/",
+ "@type": "sc:Canvas",
+ "label": "82r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16761/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16761/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4923/",
+ "@type": "sc:Canvas",
+ "label": "82v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4924/",
+ "@type": "sc:Canvas",
+ "label": "83r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16762/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16762/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4925/",
+ "@type": "sc:Canvas",
+ "label": "83v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4926/",
+ "@type": "sc:Canvas",
+ "label": "84r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4927/",
+ "@type": "sc:Canvas",
+ "label": "84v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4928/",
+ "@type": "sc:Canvas",
+ "label": "85r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16763/",
+ "@type": "sc:Range",
+ "label": "Patrem",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16763/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4929/",
+ "@type": "sc:Canvas",
+ "label": "85v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4930/",
+ "@type": "sc:Canvas",
+ "label": "86r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16764/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16764/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4931/",
+ "@type": "sc:Canvas",
+ "label": "86v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4932/",
+ "@type": "sc:Canvas",
+ "label": "87r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16765/",
+ "@type": "sc:Range",
+ "label": "Patrem",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16765/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4934/",
+ "@type": "sc:Canvas",
+ "label": "87v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4935/",
+ "@type": "sc:Canvas",
+ "label": "88r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4936/",
+ "@type": "sc:Canvas",
+ "label": "88v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4937/",
+ "@type": "sc:Canvas",
+ "label": "89r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16766/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria], [Tro] Gloria Laus Honor",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16766/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4938/",
+ "@type": "sc:Canvas",
+ "label": "89v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4939/",
+ "@type": "sc:Canvas",
+ "label": "90r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4940/",
+ "@type": "sc:Canvas",
+ "label": "90v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4941/",
+ "@type": "sc:Canvas",
+ "label": "91r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16767/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16767/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4942/",
+ "@type": "sc:Canvas",
+ "label": "91v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4943/",
+ "@type": "sc:Canvas",
+ "label": "92r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4944/",
+ "@type": "sc:Canvas",
+ "label": "92v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4945/",
+ "@type": "sc:Canvas",
+ "label": "93r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16768/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16768/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4944/",
+ "@type": "sc:Canvas",
+ "label": "92v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4945/",
+ "@type": "sc:Canvas",
+ "label": "93r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16769/",
+ "@type": "sc:Range",
+ "label": "L'aultre jour juer m'aloye",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16769/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4946/",
+ "@type": "sc:Canvas",
+ "label": "93v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4947/",
+ "@type": "sc:Canvas",
+ "label": "94r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4949/",
+ "@type": "sc:Canvas",
+ "label": "94v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4950/",
+ "@type": "sc:Canvas",
+ "label": "95r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4951/",
+ "@type": "sc:Canvas",
+ "label": "95v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4952/",
+ "@type": "sc:Canvas",
+ "label": "96r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16807/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16807/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4953/",
+ "@type": "sc:Canvas",
+ "label": "96v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4954/",
+ "@type": "sc:Canvas",
+ "label": "97r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16771/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16771/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4955/",
+ "@type": "sc:Canvas",
+ "label": "97v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4956/",
+ "@type": "sc:Canvas",
+ "label": "98r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4957/",
+ "@type": "sc:Canvas",
+ "label": "98v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16772/",
+ "@type": "sc:Range",
+ "label": "Patrem",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16772/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4957/",
+ "@type": "sc:Canvas",
+ "label": "98v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4958/",
+ "@type": "sc:Canvas",
+ "label": "99r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4959/",
+ "@type": "sc:Canvas",
+ "label": "99v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4960/",
+ "@type": "sc:Canvas",
+ "label": "100r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16773/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16773/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4959/",
+ "@type": "sc:Canvas",
+ "label": "99v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4960/",
+ "@type": "sc:Canvas",
+ "label": "100r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16774/",
+ "@type": "sc:Range",
+ "label": "De bien amer",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16774/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4961/",
+ "@type": "sc:Canvas",
+ "label": "100v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4962/",
+ "@type": "sc:Canvas",
+ "label": "101r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16775/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16775/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4964/",
+ "@type": "sc:Canvas",
+ "label": "101v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4965/",
+ "@type": "sc:Canvas",
+ "label": "102r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16776/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16776/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4966/",
+ "@type": "sc:Canvas",
+ "label": "102v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4967/",
+ "@type": "sc:Canvas",
+ "label": "103r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4968/",
+ "@type": "sc:Canvas",
+ "label": "103v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4969/",
+ "@type": "sc:Canvas",
+ "label": "104r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16777/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16777/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4970/",
+ "@type": "sc:Canvas",
+ "label": "104v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4971/",
+ "@type": "sc:Canvas",
+ "label": "105r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16778/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16778/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4972/",
+ "@type": "sc:Canvas",
+ "label": "105v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4973/",
+ "@type": "sc:Canvas",
+ "label": "106r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4974/",
+ "@type": "sc:Canvas",
+ "label": "106v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4975/",
+ "@type": "sc:Canvas",
+ "label": "107r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16779/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16779/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4976/",
+ "@type": "sc:Canvas",
+ "label": "107v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4977/",
+ "@type": "sc:Canvas",
+ "label": "108r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16780/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16780/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4976/",
+ "@type": "sc:Canvas",
+ "label": "107v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4977/",
+ "@type": "sc:Canvas",
+ "label": "108r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4979/",
+ "@type": "sc:Canvas",
+ "label": "108v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4980/",
+ "@type": "sc:Canvas",
+ "label": "109r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16781/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16781/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4981/",
+ "@type": "sc:Canvas",
+ "label": "109v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4982/",
+ "@type": "sc:Canvas",
+ "label": "110r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16782/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16782/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4983/",
+ "@type": "sc:Canvas",
+ "label": "110v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4984/",
+ "@type": "sc:Canvas",
+ "label": "111r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16783/",
+ "@type": "sc:Range",
+ "label": "Patrem",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16783/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4985/",
+ "@type": "sc:Canvas",
+ "label": "111v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4986/",
+ "@type": "sc:Canvas",
+ "label": "112r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16784/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16784/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4987/",
+ "@type": "sc:Canvas",
+ "label": "112v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4988/",
+ "@type": "sc:Canvas",
+ "label": "113r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4989/",
+ "@type": "sc:Canvas",
+ "label": "113v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16785/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16785/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4989/",
+ "@type": "sc:Canvas",
+ "label": "113v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4990/",
+ "@type": "sc:Canvas",
+ "label": "114r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6091/",
+ "@type": "sc:Range",
+ "label": "Benedicamus Domino",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6091/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4991/",
+ "@type": "sc:Canvas",
+ "label": "114v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4992/",
+ "@type": "sc:Canvas",
+ "label": "115r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16786/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16786/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4993/",
+ "@type": "sc:Canvas",
+ "label": "115v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4994/",
+ "@type": "sc:Canvas",
+ "label": "116r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4995/",
+ "@type": "sc:Canvas",
+ "label": "116v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4996/",
+ "@type": "sc:Canvas",
+ "label": "117r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16787/",
+ "@type": "sc:Range",
+ "label": "Missa O pulcherrima: Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16787/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4997/",
+ "@type": "sc:Canvas",
+ "label": "117v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4998/",
+ "@type": "sc:Canvas",
+ "label": "118r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16788/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16788/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/4999/",
+ "@type": "sc:Canvas",
+ "label": "118v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5000/",
+ "@type": "sc:Canvas",
+ "label": "119r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5001/",
+ "@type": "sc:Canvas",
+ "label": "119v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5002/",
+ "@type": "sc:Canvas",
+ "label": "120r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16789/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16789/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5003/",
+ "@type": "sc:Canvas",
+ "label": "120v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5004/",
+ "@type": "sc:Canvas",
+ "label": "121r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16790/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16790/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5005/",
+ "@type": "sc:Canvas",
+ "label": "121v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5006/",
+ "@type": "sc:Canvas",
+ "label": "122r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5007/",
+ "@type": "sc:Canvas",
+ "label": "122v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5008/",
+ "@type": "sc:Canvas",
+ "label": "123r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5009/",
+ "@type": "sc:Canvas",
+ "label": "123v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16791/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16791/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5010/",
+ "@type": "sc:Canvas",
+ "label": "124r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16792/",
+ "@type": "sc:Range",
+ "label": "Kyrie Cum Jubilo in festis B.M.V. ou De domina",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16792/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5011/",
+ "@type": "sc:Canvas",
+ "label": "124v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5012/",
+ "@type": "sc:Canvas",
+ "label": "125r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16793/",
+ "@type": "sc:Range",
+ "label": "Kyrie eleison",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16793/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5005/",
+ "@type": "sc:Canvas",
+ "label": "121v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5006/",
+ "@type": "sc:Canvas",
+ "label": "122r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5007/",
+ "@type": "sc:Canvas",
+ "label": "122v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5013/",
+ "@type": "sc:Canvas",
+ "label": "125v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16794/",
+ "@type": "sc:Range",
+ "label": "Kyrie eleison",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16794/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5008/",
+ "@type": "sc:Canvas",
+ "label": "123r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5009/",
+ "@type": "sc:Canvas",
+ "label": "123v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5014/",
+ "@type": "sc:Canvas",
+ "label": "126r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5015/",
+ "@type": "sc:Canvas",
+ "label": "126v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16795/",
+ "@type": "sc:Range",
+ "label": "Kyrie eleison",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16795/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5005/",
+ "@type": "sc:Canvas",
+ "label": "121v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5006/",
+ "@type": "sc:Canvas",
+ "label": "122r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5007/",
+ "@type": "sc:Canvas",
+ "label": "122v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5008/",
+ "@type": "sc:Canvas",
+ "label": "123r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5009/",
+ "@type": "sc:Canvas",
+ "label": "123v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5010/",
+ "@type": "sc:Canvas",
+ "label": "124r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5016/",
+ "@type": "sc:Canvas",
+ "label": "127r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16796/",
+ "@type": "sc:Range",
+ "label": "Kyrie eleison",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16796/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5017/",
+ "@type": "sc:Canvas",
+ "label": "127v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5018/",
+ "@type": "sc:Canvas",
+ "label": "128r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16797/",
+ "@type": "sc:Range",
+ "label": "Kyrie Qui de stirpe regia",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16797/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5019/",
+ "@type": "sc:Canvas",
+ "label": "128v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5020/",
+ "@type": "sc:Canvas",
+ "label": "129r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16798/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16798/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5022/",
+ "@type": "sc:Canvas",
+ "label": "129v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5023/",
+ "@type": "sc:Canvas",
+ "label": "130r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5024/",
+ "@type": "sc:Canvas",
+ "label": "130v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5025/",
+ "@type": "sc:Canvas",
+ "label": "131r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5026/",
+ "@type": "sc:Canvas",
+ "label": "131v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5027/",
+ "@type": "sc:Canvas",
+ "label": "132r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16799/",
+ "@type": "sc:Range",
+ "label": "Patrem",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16799/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5028/",
+ "@type": "sc:Canvas",
+ "label": "132v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5029/",
+ "@type": "sc:Canvas",
+ "label": "133r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5030/",
+ "@type": "sc:Canvas",
+ "label": "133v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5031/",
+ "@type": "sc:Canvas",
+ "label": "134r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16800/",
+ "@type": "sc:Range",
+ "label": "Sanctus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16800/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5030/",
+ "@type": "sc:Canvas",
+ "label": "133v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5031/",
+ "@type": "sc:Canvas",
+ "label": "134r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16801/",
+ "@type": "sc:Range",
+ "label": "Agnus Dei",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16801/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5032/",
+ "@type": "sc:Canvas",
+ "label": "134v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5033/",
+ "@type": "sc:Canvas",
+ "label": "135r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5034/",
+ "@type": "sc:Canvas",
+ "label": "135v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5035/",
+ "@type": "sc:Canvas",
+ "label": "136r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5037/",
+ "@type": "sc:Canvas",
+ "label": "136v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16802/",
+ "@type": "sc:Range",
+ "label": "Sanctus Ave verum corpus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16802/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5039/",
+ "@type": "sc:Canvas",
+ "label": "137v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5040/",
+ "@type": "sc:Canvas",
+ "label": "138r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5041/",
+ "@type": "sc:Canvas",
+ "label": "138v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5042/",
+ "@type": "sc:Canvas",
+ "label": "139r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16803/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16803/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5043/",
+ "@type": "sc:Canvas",
+ "label": "139v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5044/",
+ "@type": "sc:Canvas",
+ "label": "140r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5045/",
+ "@type": "sc:Canvas",
+ "label": "140v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5046/",
+ "@type": "sc:Canvas",
+ "label": "141r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5047/",
+ "@type": "sc:Canvas",
+ "label": "141v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5048/",
+ "@type": "sc:Canvas",
+ "label": "142r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16804/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16804/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5049/",
+ "@type": "sc:Canvas",
+ "label": "142v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16805/",
+ "@type": "sc:Range",
+ "label": "untexted",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16805/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5052/",
+ "@type": "sc:Canvas",
+ "label": "143v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6092/",
+ "@type": "sc:Range",
+ "label": "Asperges me Domine isopo [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6092/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5052/",
+ "@type": "sc:Canvas",
+ "label": "143v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/72637/",
+ "@type": "sc:Range",
+ "label": "Miserere mei Deus / secundum magnam misericordiam tuam [2a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/72637/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5052/",
+ "@type": "sc:Canvas",
+ "label": "143v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/72638/",
+ "@type": "sc:Range",
+ "label": "Gloria patri / sicut erat [3a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/72638/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5053/",
+ "@type": "sc:Canvas",
+ "label": "144r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6093/",
+ "@type": "sc:Range",
+ "label": "Mihi autem nimis [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6093/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5054/",
+ "@type": "sc:Canvas",
+ "label": "144v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5055/",
+ "@type": "sc:Canvas",
+ "label": "145r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/73710/",
+ "@type": "sc:Range",
+ "label": "Domine probasti me [2a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/73710/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5054/",
+ "@type": "sc:Canvas",
+ "label": "144v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5055/",
+ "@type": "sc:Canvas",
+ "label": "145r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5056/",
+ "@type": "sc:Canvas",
+ "label": "145v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16770/",
+ "@type": "sc:Range",
+ "label": "Missa Sancti Jacobi: Kyrie",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16770/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5056/",
+ "@type": "sc:Canvas",
+ "label": "145v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5057/",
+ "@type": "sc:Canvas",
+ "label": "146r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5058/",
+ "@type": "sc:Canvas",
+ "label": "146v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5059/",
+ "@type": "sc:Canvas",
+ "label": "147r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16806/",
+ "@type": "sc:Range",
+ "label": "Missa Sancti Jacobí: Gloria",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16806/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5058/",
+ "@type": "sc:Canvas",
+ "label": "146v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5059/",
+ "@type": "sc:Canvas",
+ "label": "147r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6094/",
+ "@type": "sc:Range",
+ "label": "Missa Sancti Jacobi: Alleluia",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6094/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5060/",
+ "@type": "sc:Canvas",
+ "label": "147v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5061/",
+ "@type": "sc:Canvas",
+ "label": "148r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/73712/",
+ "@type": "sc:Range",
+ "label": "Missa Sancti Jacobi: Alleluia",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/73712/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5062/",
+ "@type": "sc:Canvas",
+ "label": "148v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5063/",
+ "@type": "sc:Canvas",
+ "label": "149r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5064/",
+ "@type": "sc:Canvas",
+ "label": "149v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5065/",
+ "@type": "sc:Canvas",
+ "label": "150r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16808/",
+ "@type": "sc:Range",
+ "label": "Missa Sancti Jacobi. Credo De apostolis. Patrem",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16808/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5067/",
+ "@type": "sc:Canvas",
+ "label": "150v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5068/",
+ "@type": "sc:Canvas",
+ "label": "151r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6095/",
+ "@type": "sc:Range",
+ "label": "Missa Sancti Jacobi: In omnem terram (Offertory)",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6095/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5069/",
+ "@type": "sc:Canvas",
+ "label": "151v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5070/",
+ "@type": "sc:Canvas",
+ "label": "152r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16809/",
+ "@type": "sc:Range",
+ "label": "Missa Sancti Jacobi. De apostolis. Sanctus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16809/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5071/",
+ "@type": "sc:Canvas",
+ "label": "152v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5072/",
+ "@type": "sc:Canvas",
+ "label": "153r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16810/",
+ "@type": "sc:Range",
+ "label": "Missa Sancti Jacobi: Agnus Dei",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16810/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5071/",
+ "@type": "sc:Canvas",
+ "label": "152v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5072/",
+ "@type": "sc:Canvas",
+ "label": "153r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6096/",
+ "@type": "sc:Range",
+ "label": "Missa Sancti Jacobi: Communio - Vos qui secuti estis me",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6096/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5073/",
+ "@type": "sc:Canvas",
+ "label": "153v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5074/",
+ "@type": "sc:Canvas",
+ "label": "154r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5075/",
+ "@type": "sc:Canvas",
+ "label": "154v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5076/",
+ "@type": "sc:Canvas",
+ "label": "155r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16811/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16811/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5077/",
+ "@type": "sc:Canvas",
+ "label": "155v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5078/",
+ "@type": "sc:Canvas",
+ "label": "156r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5079/",
+ "@type": "sc:Canvas",
+ "label": "156v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5080/",
+ "@type": "sc:Canvas",
+ "label": "157r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16812/",
+ "@type": "sc:Range",
+ "label": "Patrem",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16812/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5082/",
+ "@type": "sc:Canvas",
+ "label": "157v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16813/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16813/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5082/",
+ "@type": "sc:Canvas",
+ "label": "157v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5083/",
+ "@type": "sc:Canvas",
+ "label": "158r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16814/",
+ "@type": "sc:Range",
+ "label": "Kyrie eleison",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16814/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5084/",
+ "@type": "sc:Canvas",
+ "label": "158v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5085/",
+ "@type": "sc:Canvas",
+ "label": "159r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16815/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16815/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5086/",
+ "@type": "sc:Canvas",
+ "label": "159v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5087/",
+ "@type": "sc:Canvas",
+ "label": "160r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16816/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16816/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5086/",
+ "@type": "sc:Canvas",
+ "label": "159v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5087/",
+ "@type": "sc:Canvas",
+ "label": "160r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5088/",
+ "@type": "sc:Canvas",
+ "label": "160v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5089/",
+ "@type": "sc:Canvas",
+ "label": "161r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16817/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16817/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5090/",
+ "@type": "sc:Canvas",
+ "label": "161v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5091/",
+ "@type": "sc:Canvas",
+ "label": "162r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16818/",
+ "@type": "sc:Range",
+ "label": "Missa Admirabilis splendor: Kyrie eleison",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16818/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5090/",
+ "@type": "sc:Canvas",
+ "label": "161v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5091/",
+ "@type": "sc:Canvas",
+ "label": "162r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5092/",
+ "@type": "sc:Canvas",
+ "label": "162v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5093/",
+ "@type": "sc:Canvas",
+ "label": "163r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16819/",
+ "@type": "sc:Range",
+ "label": "Missa Admirabilis splendor: Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16819/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5092/",
+ "@type": "sc:Canvas",
+ "label": "162v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5093/",
+ "@type": "sc:Canvas",
+ "label": "163r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5094/",
+ "@type": "sc:Canvas",
+ "label": "163v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5095/",
+ "@type": "sc:Canvas",
+ "label": "164r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16820/",
+ "@type": "sc:Range",
+ "label": "Missa Admirabilis splendor: Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16820/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5097/",
+ "@type": "sc:Canvas",
+ "label": "164v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5098/",
+ "@type": "sc:Canvas",
+ "label": "165r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16821/",
+ "@type": "sc:Range",
+ "label": "Missa Admirabilis splendor: Sanctus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16821/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5099/",
+ "@type": "sc:Canvas",
+ "label": "165v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5100/",
+ "@type": "sc:Canvas",
+ "label": "166r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16822/",
+ "@type": "sc:Range",
+ "label": "Missa Admirabilis splendor: Agnus Dei",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16822/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5099/",
+ "@type": "sc:Canvas",
+ "label": "165v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5100/",
+ "@type": "sc:Canvas",
+ "label": "166r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5101/",
+ "@type": "sc:Canvas",
+ "label": "166v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5102/",
+ "@type": "sc:Canvas",
+ "label": "167r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16823/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16823/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5101/",
+ "@type": "sc:Canvas",
+ "label": "166v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5102/",
+ "@type": "sc:Canvas",
+ "label": "167r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5103/",
+ "@type": "sc:Canvas",
+ "label": "167v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5104/",
+ "@type": "sc:Canvas",
+ "label": "168r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16824/",
+ "@type": "sc:Range",
+ "label": "Patrem (partially texted)",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16824/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5105/",
+ "@type": "sc:Canvas",
+ "label": "168v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5106/",
+ "@type": "sc:Canvas",
+ "label": "169r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5107/",
+ "@type": "sc:Canvas",
+ "label": "169v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5108/",
+ "@type": "sc:Canvas",
+ "label": "170r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16825/",
+ "@type": "sc:Range",
+ "label": "Missa Spiritus et alme: Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16825/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5107/",
+ "@type": "sc:Canvas",
+ "label": "169v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5108/",
+ "@type": "sc:Canvas",
+ "label": "170r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6097/",
+ "@type": "sc:Range",
+ "label": "Benedicamus Domino",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6097/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5109/",
+ "@type": "sc:Canvas",
+ "label": "170v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5110/",
+ "@type": "sc:Canvas",
+ "label": "171r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5112/",
+ "@type": "sc:Canvas",
+ "label": "171v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16826/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16826/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5112/",
+ "@type": "sc:Canvas",
+ "label": "171v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5113/",
+ "@type": "sc:Canvas",
+ "label": "172r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16827/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16827/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5114/",
+ "@type": "sc:Canvas",
+ "label": "172v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5115/",
+ "@type": "sc:Canvas",
+ "label": "173r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5116/",
+ "@type": "sc:Canvas",
+ "label": "173v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16828/",
+ "@type": "sc:Range",
+ "label": "Missa O pulcherrima: Kyrie verbum incarnatum",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16828/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5116/",
+ "@type": "sc:Canvas",
+ "label": "173v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5117/",
+ "@type": "sc:Canvas",
+ "label": "174r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16829/",
+ "@type": "sc:Range",
+ "label": "Missa O pulcherrima: Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16829/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5118/",
+ "@type": "sc:Canvas",
+ "label": "174v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5119/",
+ "@type": "sc:Canvas",
+ "label": "175r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5120/",
+ "@type": "sc:Canvas",
+ "label": "175v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5121/",
+ "@type": "sc:Canvas",
+ "label": "176r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16830/",
+ "@type": "sc:Range",
+ "label": "Missa O pulcherrima: Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16830/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5120/",
+ "@type": "sc:Canvas",
+ "label": "175v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5121/",
+ "@type": "sc:Canvas",
+ "label": "176r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5122/",
+ "@type": "sc:Canvas",
+ "label": "176v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5123/",
+ "@type": "sc:Canvas",
+ "label": "177r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16831/",
+ "@type": "sc:Range",
+ "label": "Missa O pulcherrima: Sanctus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16831/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5122/",
+ "@type": "sc:Canvas",
+ "label": "176v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5123/",
+ "@type": "sc:Canvas",
+ "label": "177r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16832/",
+ "@type": "sc:Range",
+ "label": "Missa O pulcherrima: Agnus Dei",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16832/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5124/",
+ "@type": "sc:Canvas",
+ "label": "177v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5125/",
+ "@type": "sc:Canvas",
+ "label": "178r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5127/",
+ "@type": "sc:Canvas",
+ "label": "178v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5128/",
+ "@type": "sc:Canvas",
+ "label": "179r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16833/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16833/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5129/",
+ "@type": "sc:Canvas",
+ "label": "179v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5130/",
+ "@type": "sc:Canvas",
+ "label": "180r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16834/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16834/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5131/",
+ "@type": "sc:Canvas",
+ "label": "180v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5132/",
+ "@type": "sc:Canvas",
+ "label": "181r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16835/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16835/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5133/",
+ "@type": "sc:Canvas",
+ "label": "181v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5134/",
+ "@type": "sc:Canvas",
+ "label": "182r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16836/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16836/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5133/",
+ "@type": "sc:Canvas",
+ "label": "181v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5134/",
+ "@type": "sc:Canvas",
+ "label": "182r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16837/",
+ "@type": "sc:Range",
+ "label": "Se coeur damant (incipit texted)",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16837/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5135/",
+ "@type": "sc:Canvas",
+ "label": "182v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5136/",
+ "@type": "sc:Canvas",
+ "label": "183r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5137/",
+ "@type": "sc:Canvas",
+ "label": "183v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5138/",
+ "@type": "sc:Canvas",
+ "label": "184r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16838/",
+ "@type": "sc:Range",
+ "label": "Patrem",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16838/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5139/",
+ "@type": "sc:Canvas",
+ "label": "184v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5140/",
+ "@type": "sc:Canvas",
+ "label": "185r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16839/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16839/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5142/",
+ "@type": "sc:Canvas",
+ "label": "185v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5143/",
+ "@type": "sc:Canvas",
+ "label": "186r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5144/",
+ "@type": "sc:Canvas",
+ "label": "186v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5145/",
+ "@type": "sc:Canvas",
+ "label": "187r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16840/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16840/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5146/",
+ "@type": "sc:Canvas",
+ "label": "187v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5147/",
+ "@type": "sc:Canvas",
+ "label": "188r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16841/",
+ "@type": "sc:Range",
+ "label": "Kyrie eleison",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16841/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5146/",
+ "@type": "sc:Canvas",
+ "label": "187v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5147/",
+ "@type": "sc:Canvas",
+ "label": "188r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16842/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16842/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5148/",
+ "@type": "sc:Canvas",
+ "label": "188v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5149/",
+ "@type": "sc:Canvas",
+ "label": "189r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16843/",
+ "@type": "sc:Range",
+ "label": "Patrem omnipotentem [Credo]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16843/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5150/",
+ "@type": "sc:Canvas",
+ "label": "189v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5151/",
+ "@type": "sc:Canvas",
+ "label": "190r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16844/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria] [incipits]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16844/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5154/",
+ "@type": "sc:Canvas",
+ "label": "191v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5155/",
+ "@type": "sc:Canvas",
+ "label": "192r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16845/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16845/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5156/",
+ "@type": "sc:Canvas",
+ "label": "192v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5157/",
+ "@type": "sc:Canvas",
+ "label": "193r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16846/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16846/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5158/",
+ "@type": "sc:Canvas",
+ "label": "193v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5159/",
+ "@type": "sc:Canvas",
+ "label": "194r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16847/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16847/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5162/",
+ "@type": "sc:Canvas",
+ "label": "195v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5163/",
+ "@type": "sc:Canvas",
+ "label": "196r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6098/",
+ "@type": "sc:Range",
+ "label": "Salve sancta parens",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6098/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5162/",
+ "@type": "sc:Canvas",
+ "label": "195v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5163/",
+ "@type": "sc:Canvas",
+ "label": "196r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16848/",
+ "@type": "sc:Range",
+ "label": "Kyrie O sacra virgo",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16848/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5164/",
+ "@type": "sc:Canvas",
+ "label": "196v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5165/",
+ "@type": "sc:Canvas",
+ "label": "197r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16849/",
+ "@type": "sc:Range",
+ "label": "Missa Admirabilis splendor: Kyrie eleison",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16849/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5166/",
+ "@type": "sc:Canvas",
+ "label": "197v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5167/",
+ "@type": "sc:Canvas",
+ "label": "198r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5168/",
+ "@type": "sc:Canvas",
+ "label": "198v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5169/",
+ "@type": "sc:Canvas",
+ "label": "199r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16850/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16850/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5171/",
+ "@type": "sc:Canvas",
+ "label": "199v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5172/",
+ "@type": "sc:Canvas",
+ "label": "200r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5173/",
+ "@type": "sc:Canvas",
+ "label": "200v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5174/",
+ "@type": "sc:Canvas",
+ "label": "201r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16851/",
+ "@type": "sc:Range",
+ "label": "Magnificat anima mea Dominum sexti toni",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16851/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5175/",
+ "@type": "sc:Canvas",
+ "label": "201v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5176/",
+ "@type": "sc:Canvas",
+ "label": "202r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16852/",
+ "@type": "sc:Range",
+ "label": "Magnificat: Et exultavit spiritus meus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16852/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5177/",
+ "@type": "sc:Canvas",
+ "label": "202v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6099/",
+ "@type": "sc:Range",
+ "label": "Alma redemptoris mater",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6099/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5179/",
+ "@type": "sc:Canvas",
+ "label": "203v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5180/",
+ "@type": "sc:Canvas",
+ "label": "204r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5181/",
+ "@type": "sc:Canvas",
+ "label": "204v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5182/",
+ "@type": "sc:Canvas",
+ "label": "205r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16853/",
+ "@type": "sc:Range",
+ "label": "Et in terra pax [Gloria]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16853/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5181/",
+ "@type": "sc:Canvas",
+ "label": "204v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5182/",
+ "@type": "sc:Canvas",
+ "label": "205r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6100/",
+ "@type": "sc:Range",
+ "label": "Recordare [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6100/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5183/",
+ "@type": "sc:Canvas",
+ "label": "205v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5184/",
+ "@type": "sc:Canvas",
+ "label": "206r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6101/",
+ "@type": "sc:Range",
+ "label": "Ostendit mihi",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6101/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5186/",
+ "@type": "sc:Canvas",
+ "label": "206v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5187/",
+ "@type": "sc:Canvas",
+ "label": "207r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6102/",
+ "@type": "sc:Range",
+ "label": "Supremum est mortalibus bonum II: O sancta pax",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6102/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5188/",
+ "@type": "sc:Canvas",
+ "label": "207v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5189/",
+ "@type": "sc:Canvas",
+ "label": "208r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5190/",
+ "@type": "sc:Canvas",
+ "label": "208v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5191/",
+ "@type": "sc:Canvas",
+ "label": "209r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6103/",
+ "@type": "sc:Range",
+ "label": "Balsamus et munda / isti sunt agni novelli",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6103/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5190/",
+ "@type": "sc:Canvas",
+ "label": "208v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5191/",
+ "@type": "sc:Canvas",
+ "label": "209r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6104/",
+ "@type": "sc:Range",
+ "label": "Salve salus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6104/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5192/",
+ "@type": "sc:Canvas",
+ "label": "209v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5193/",
+ "@type": "sc:Canvas",
+ "label": "210r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5194/",
+ "@type": "sc:Canvas",
+ "label": "210v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6105/",
+ "@type": "sc:Range",
+ "label": "Tu nephanda prodigi / T: Emitat / Si inimicus meus / Emitat caelum",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6105/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5194/",
+ "@type": "sc:Canvas",
+ "label": "210v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5195/",
+ "@type": "sc:Canvas",
+ "label": "211r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6106/",
+ "@type": "sc:Range",
+ "label": "Ave fuit prima salus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6106/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5196/",
+ "@type": "sc:Canvas",
+ "label": "211v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5197/",
+ "@type": "sc:Canvas",
+ "label": "212r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6107/",
+ "@type": "sc:Range",
+ "label": "Inclita stella maris",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6107/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5198/",
+ "@type": "sc:Canvas",
+ "label": "212v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5199/",
+ "@type": "sc:Canvas",
+ "label": "213r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6108/",
+ "@type": "sc:Range",
+ "label": "Rite majorem Jacobum canimus / Artibus summis miseri reclusi",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6108/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5201/",
+ "@type": "sc:Canvas",
+ "label": "213v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5202/",
+ "@type": "sc:Canvas",
+ "label": "214r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6109/",
+ "@type": "sc:Range",
+ "label": "Surexit Christus hodie",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6109/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5203/",
+ "@type": "sc:Canvas",
+ "label": "214v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5204/",
+ "@type": "sc:Canvas",
+ "label": "215r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6110/",
+ "@type": "sc:Range",
+ "label": "Nova vobis gaudia / noua",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6110/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5205/",
+ "@type": "sc:Canvas",
+ "label": "215v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5206/",
+ "@type": "sc:Canvas",
+ "label": "216r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5207/",
+ "@type": "sc:Canvas",
+ "label": "216v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5208/",
+ "@type": "sc:Canvas",
+ "label": "217r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6111/",
+ "@type": "sc:Range",
+ "label": "Pulcra es amica",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6111/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5207/",
+ "@type": "sc:Canvas",
+ "label": "216v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5208/",
+ "@type": "sc:Canvas",
+ "label": "217r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6112/",
+ "@type": "sc:Range",
+ "label": "O pulc[h]er[r]ima mulierum",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6112/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5209/",
+ "@type": "sc:Canvas",
+ "label": "217v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5210/",
+ "@type": "sc:Canvas",
+ "label": "218r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6113/",
+ "@type": "sc:Range",
+ "label": "Salve regina mater misericordiae",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6113/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5209/",
+ "@type": "sc:Canvas",
+ "label": "217v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5210/",
+ "@type": "sc:Canvas",
+ "label": "218r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6114/",
+ "@type": "sc:Range",
+ "label": "In natali Domini [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6114/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5211/",
+ "@type": "sc:Canvas",
+ "label": "218v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5212/",
+ "@type": "sc:Canvas",
+ "label": "219r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6115/",
+ "@type": "sc:Range",
+ "label": "O lux et decus / Amen",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6115/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5213/",
+ "@type": "sc:Canvas",
+ "label": "219v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5214/",
+ "@type": "sc:Canvas",
+ "label": "220r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6116/",
+ "@type": "sc:Range",
+ "label": "Ave mater o Maria (last phrase only texted / partial text)",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6116/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5216/",
+ "@type": "sc:Canvas",
+ "label": "220v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5217/",
+ "@type": "sc:Canvas",
+ "label": "221r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6117/",
+ "@type": "sc:Range",
+ "label": "Descendi in ortum meum / partial text",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6117/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5216/",
+ "@type": "sc:Canvas",
+ "label": "220v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5217/",
+ "@type": "sc:Canvas",
+ "label": "221r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6118/",
+ "@type": "sc:Range",
+ "label": "Spes nostra salus [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6118/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5218/",
+ "@type": "sc:Canvas",
+ "label": "221v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5219/",
+ "@type": "sc:Canvas",
+ "label": "222r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6119/",
+ "@type": "sc:Range",
+ "label": "Benedicta es caelorum regina",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6119/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5220/",
+ "@type": "sc:Canvas",
+ "label": "222v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6120/",
+ "@type": "sc:Range",
+ "label": "Martires Dei incliti / Martires Dei incliti",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6120/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5222/",
+ "@type": "sc:Canvas",
+ "label": "223v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5223/",
+ "@type": "sc:Canvas",
+ "label": "224r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6121/",
+ "@type": "sc:Range",
+ "label": "Congruit mortalibus (partially texted)",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6121/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5224/",
+ "@type": "sc:Canvas",
+ "label": "224v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5225/",
+ "@type": "sc:Canvas",
+ "label": "225r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5226/",
+ "@type": "sc:Canvas",
+ "label": "225v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5227/",
+ "@type": "sc:Canvas",
+ "label": "226r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6122/",
+ "@type": "sc:Range",
+ "label": "Salve vere gratialis / Salve vere gratialis",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6122/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5228/",
+ "@type": "sc:Canvas",
+ "label": "226v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5229/",
+ "@type": "sc:Canvas",
+ "label": "227r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6123/",
+ "@type": "sc:Range",
+ "label": "In hac die celebri",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6123/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5231/",
+ "@type": "sc:Canvas",
+ "label": "227v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5232/",
+ "@type": "sc:Canvas",
+ "label": "228r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6124/",
+ "@type": "sc:Range",
+ "label": "Haec dies Quam fecit [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6124/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5233/",
+ "@type": "sc:Canvas",
+ "label": "228v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5234/",
+ "@type": "sc:Canvas",
+ "label": "229r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6125/",
+ "@type": "sc:Range",
+ "label": "Descendi in ortum / poma conualium si floruissent",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6125/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5235/",
+ "@type": "sc:Canvas",
+ "label": "229v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5236/",
+ "@type": "sc:Canvas",
+ "label": "230r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6126/",
+ "@type": "sc:Range",
+ "label": "Alma redemptoris mater",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6126/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5237/",
+ "@type": "sc:Canvas",
+ "label": "230v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5238/",
+ "@type": "sc:Canvas",
+ "label": "231r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5239/",
+ "@type": "sc:Canvas",
+ "label": "231v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6127/",
+ "@type": "sc:Range",
+ "label": "Gaude virgo mater / Gaude virgo mater [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6127/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5239/",
+ "@type": "sc:Canvas",
+ "label": "231v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5240/",
+ "@type": "sc:Canvas",
+ "label": "232r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16854/",
+ "@type": "sc:Range",
+ "label": "Dilectoza cortesia",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16854/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5241/",
+ "@type": "sc:Canvas",
+ "label": "232v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5242/",
+ "@type": "sc:Canvas",
+ "label": "233r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6128/",
+ "@type": "sc:Range",
+ "label": "Gaude tu baptista / Gaude tu baptista",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6128/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5243/",
+ "@type": "sc:Canvas",
+ "label": "233v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5244/",
+ "@type": "sc:Canvas",
+ "label": "234r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6129/",
+ "@type": "sc:Range",
+ "label": "Ave Jesu Christe",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6129/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5246/",
+ "@type": "sc:Canvas",
+ "label": "234v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5247/",
+ "@type": "sc:Canvas",
+ "label": "235r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6130/",
+ "@type": "sc:Range",
+ "label": "Tota pulchra es amica mea et macula",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6130/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5248/",
+ "@type": "sc:Canvas",
+ "label": "235v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6131/",
+ "@type": "sc:Range",
+ "label": "Imnizabo regi meo [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6131/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5249/",
+ "@type": "sc:Canvas",
+ "label": "236r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6132/",
+ "@type": "sc:Range",
+ "label": "Regina caeli laetare [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6132/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5250/",
+ "@type": "sc:Canvas",
+ "label": "236v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5251/",
+ "@type": "sc:Canvas",
+ "label": "237r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6133/",
+ "@type": "sc:Range",
+ "label": "Missus est Gabriel angelus ad Mariam",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6133/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5252/",
+ "@type": "sc:Canvas",
+ "label": "237v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5253/",
+ "@type": "sc:Canvas",
+ "label": "238r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16855/",
+ "@type": "sc:Range",
+ "label": "Virgene bella (partially texted: in sections 2 and 3)",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16855/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5254/",
+ "@type": "sc:Canvas",
+ "label": "238v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5255/",
+ "@type": "sc:Canvas",
+ "label": "239r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6134/",
+ "@type": "sc:Range",
+ "label": "Tota pulchra es amica mea et macula",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6134/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5256/",
+ "@type": "sc:Canvas",
+ "label": "239v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5257/",
+ "@type": "sc:Canvas",
+ "label": "240r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6135/",
+ "@type": "sc:Range",
+ "label": "Imera dat hodierno",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6135/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5258/",
+ "@type": "sc:Canvas",
+ "label": "240v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5259/",
+ "@type": "sc:Canvas",
+ "label": "241r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6136/",
+ "@type": "sc:Range",
+ "label": "Surge propera",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6136/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5260/",
+ "@type": "sc:Canvas",
+ "label": "241v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5261/",
+ "@type": "sc:Canvas",
+ "label": "242r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6137/",
+ "@type": "sc:Range",
+ "label": "Puer natus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6137/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5262/",
+ "@type": "sc:Canvas",
+ "label": "242v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5263/",
+ "@type": "sc:Canvas",
+ "label": "243r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6138/",
+ "@type": "sc:Range",
+ "label": "Carminibus festos / Carminibus festos",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6138/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5264/",
+ "@type": "sc:Canvas",
+ "label": "243v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5265/",
+ "@type": "sc:Canvas",
+ "label": "244r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6139/",
+ "@type": "sc:Range",
+ "label": "Ave gemma claritas",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6139/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5266/",
+ "@type": "sc:Canvas",
+ "label": "244v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5267/",
+ "@type": "sc:Canvas",
+ "label": "245r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6140/",
+ "@type": "sc:Range",
+ "label": "O felix flos florencia / O felix flos florencia / texted only in final section",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6140/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5268/",
+ "@type": "sc:Canvas",
+ "label": "245v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5269/",
+ "@type": "sc:Canvas",
+ "label": "246r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5270/",
+ "@type": "sc:Canvas",
+ "label": "246v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5271/",
+ "@type": "sc:Canvas",
+ "label": "247r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6141/",
+ "@type": "sc:Range",
+ "label": "Ad honorem sancte trinitatis",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6141/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5270/",
+ "@type": "sc:Canvas",
+ "label": "246v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5271/",
+ "@type": "sc:Canvas",
+ "label": "247r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6142/",
+ "@type": "sc:Range",
+ "label": "Ave verum corpus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6142/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5272/",
+ "@type": "sc:Canvas",
+ "label": "247v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5273/",
+ "@type": "sc:Canvas",
+ "label": "248r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5275/",
+ "@type": "sc:Canvas",
+ "label": "248v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6143/",
+ "@type": "sc:Range",
+ "label": "Sancte sebastiane",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6143/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5275/",
+ "@type": "sc:Canvas",
+ "label": "248v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5276/",
+ "@type": "sc:Canvas",
+ "label": "249r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6144/",
+ "@type": "sc:Range",
+ "label": "Ave verum corpus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6144/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5277/",
+ "@type": "sc:Canvas",
+ "label": "249v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5278/",
+ "@type": "sc:Canvas",
+ "label": "250r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6145/",
+ "@type": "sc:Range",
+ "label": "Jesu salvator saeculi / Quo vulneratus scelere",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6145/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5277/",
+ "@type": "sc:Canvas",
+ "label": "249v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5278/",
+ "@type": "sc:Canvas",
+ "label": "250r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16856/",
+ "@type": "sc:Range",
+ "label": "Ma seul amour et ma belle maistresse",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16856/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5279/",
+ "@type": "sc:Canvas",
+ "label": "250v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5280/",
+ "@type": "sc:Canvas",
+ "label": "251r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5281/",
+ "@type": "sc:Canvas",
+ "label": "251v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5282/",
+ "@type": "sc:Canvas",
+ "label": "252r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6146/",
+ "@type": "sc:Range",
+ "label": "Plaude decus mundi / Plaude decus mundi",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6146/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5283/",
+ "@type": "sc:Canvas",
+ "label": "252v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5284/",
+ "@type": "sc:Canvas",
+ "label": "253r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6147/",
+ "@type": "sc:Range",
+ "label": "O felix templum / O felix templum",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6147/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5285/",
+ "@type": "sc:Canvas",
+ "label": "253v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5286/",
+ "@type": "sc:Canvas",
+ "label": "254r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6148/",
+ "@type": "sc:Range",
+ "label": "Venite adoremus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6148/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5287/",
+ "@type": "sc:Canvas",
+ "label": "254v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5288/",
+ "@type": "sc:Canvas",
+ "label": "255r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6149/",
+ "@type": "sc:Range",
+ "label": "Sub Arturo plebs valata / Fons citharizantium ac organizantium / In omnem terram",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6149/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5290/",
+ "@type": "sc:Canvas",
+ "label": "255v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5291/",
+ "@type": "sc:Canvas",
+ "label": "256r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6150/",
+ "@type": "sc:Range",
+ "label": "Aurea flamigeri / Aurea flamigeri",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6150/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5292/",
+ "@type": "sc:Canvas",
+ "label": "256v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5293/",
+ "@type": "sc:Canvas",
+ "label": "257r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6151/",
+ "@type": "sc:Range",
+ "label": "Dominicus a dono",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6151/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5294/",
+ "@type": "sc:Canvas",
+ "label": "257v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5295/",
+ "@type": "sc:Canvas",
+ "label": "258r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6152/",
+ "@type": "sc:Range",
+ "label": "Jesus postquam monstraverat / Jesus postquam monstraverat",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6152/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5296/",
+ "@type": "sc:Canvas",
+ "label": "258v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5297/",
+ "@type": "sc:Canvas",
+ "label": "259r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6153/",
+ "@type": "sc:Range",
+ "label": "Ave verum corpus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6153/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5298/",
+ "@type": "sc:Canvas",
+ "label": "259v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5299/",
+ "@type": "sc:Canvas",
+ "label": "260r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6154/",
+ "@type": "sc:Range",
+ "label": "Plasmatoris humani / Plasmatoris humani",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6154/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5300/",
+ "@type": "sc:Canvas",
+ "label": "260v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5301/",
+ "@type": "sc:Canvas",
+ "label": "261r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6155/",
+ "@type": "sc:Range",
+ "label": "Alma redemptoris mater [1] [2a pars] et stella maris [3a pars] Virgo prius",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6155/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5302/",
+ "@type": "sc:Canvas",
+ "label": "261v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5303/",
+ "@type": "sc:Canvas",
+ "label": "262r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6156/",
+ "@type": "sc:Range",
+ "label": "Ave Regina caelorum [1]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6156/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5302/",
+ "@type": "sc:Canvas",
+ "label": "261v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5303/",
+ "@type": "sc:Canvas",
+ "label": "262r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16857/",
+ "@type": "sc:Range",
+ "label": "Mon seul vouloir",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16857/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5304/",
+ "@type": "sc:Canvas",
+ "label": "262v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5305/",
+ "@type": "sc:Canvas",
+ "label": "263r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5306/",
+ "@type": "sc:Canvas",
+ "label": "263v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6157/",
+ "@type": "sc:Range",
+ "label": "O Maria virgo davitica virginum flos / O Maria maris stella plena gratie",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6157/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5304/",
+ "@type": "sc:Canvas",
+ "label": "262v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16858/",
+ "@type": "sc:Range",
+ "label": "Et c'est assés pour m'esjouir",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16858/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5306/",
+ "@type": "sc:Canvas",
+ "label": "263v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5307/",
+ "@type": "sc:Canvas",
+ "label": "264r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6158/",
+ "@type": "sc:Range",
+ "label": "Ave Maria gratia plena / Ave Maria gratia plena",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6158/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5306/",
+ "@type": "sc:Canvas",
+ "label": "263v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5307/",
+ "@type": "sc:Canvas",
+ "label": "264r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16859/",
+ "@type": "sc:Range",
+ "label": "Par droit je suis bien complaindre et gemir",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16859/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5308/",
+ "@type": "sc:Canvas",
+ "label": "264v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5309/",
+ "@type": "sc:Canvas",
+ "label": "265r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6159/",
+ "@type": "sc:Range",
+ "label": "Cuius fructus ventris / Te Maria rogitassem",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6159/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5310/",
+ "@type": "sc:Canvas",
+ "label": "265v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5311/",
+ "@type": "sc:Canvas",
+ "label": "266r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6160/",
+ "@type": "sc:Range",
+ "label": "Salve regina [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6160/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5312/",
+ "@type": "sc:Canvas",
+ "label": "266v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5313/",
+ "@type": "sc:Canvas",
+ "label": "267r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6161/",
+ "@type": "sc:Range",
+ "label": "Ave mater pietatis texted for fermata passage / Ave mater pietatis [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6161/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5314/",
+ "@type": "sc:Canvas",
+ "label": "267v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5315/",
+ "@type": "sc:Canvas",
+ "label": "268r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6162/",
+ "@type": "sc:Range",
+ "label": "Flos florum fons ortorum",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6162/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5316/",
+ "@type": "sc:Canvas",
+ "label": "268v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5317/",
+ "@type": "sc:Canvas",
+ "label": "269r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6163/",
+ "@type": "sc:Range",
+ "label": "Anima mea liquefacta est",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6163/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5319/",
+ "@type": "sc:Canvas",
+ "label": "269v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5320/",
+ "@type": "sc:Canvas",
+ "label": "270r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6164/",
+ "@type": "sc:Range",
+ "label": "Ave virgo lux Maria [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6164/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5321/",
+ "@type": "sc:Canvas",
+ "label": "270v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5322/",
+ "@type": "sc:Canvas",
+ "label": "271r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6165/",
+ "@type": "sc:Range",
+ "label": "Apostolo glorioso / Apostolo glorioso",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6165/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5323/",
+ "@type": "sc:Canvas",
+ "label": "271v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5324/",
+ "@type": "sc:Canvas",
+ "label": "272r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6166/",
+ "@type": "sc:Range",
+ "label": "Regina caeli [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6166/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5324/",
+ "@type": "sc:Canvas",
+ "label": "272r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16860/",
+ "@type": "sc:Range",
+ "label": "Se vous scavies",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16860/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5325/",
+ "@type": "sc:Canvas",
+ "label": "272v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5326/",
+ "@type": "sc:Canvas",
+ "label": "273r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5327/",
+ "@type": "sc:Canvas",
+ "label": "273v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6167/",
+ "@type": "sc:Range",
+ "label": "Salve regina [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6167/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5327/",
+ "@type": "sc:Canvas",
+ "label": "273v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5328/",
+ "@type": "sc:Canvas",
+ "label": "274r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16861/",
+ "@type": "sc:Range",
+ "label": "Or vois-je bien",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16861/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5329/",
+ "@type": "sc:Canvas",
+ "label": "274v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5330/",
+ "@type": "sc:Canvas",
+ "label": "275r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6168/",
+ "@type": "sc:Range",
+ "label": "Pie pater Dominice",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6168/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5331/",
+ "@type": "sc:Canvas",
+ "label": "275v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5332/",
+ "@type": "sc:Canvas",
+ "label": "276r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6169/",
+ "@type": "sc:Range",
+ "label": "Ducalis sedes inclita/Stirps […] veneti",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6169/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5333/",
+ "@type": "sc:Canvas",
+ "label": "276v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5334/",
+ "@type": "sc:Canvas",
+ "label": "277r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6170/",
+ "@type": "sc:Range",
+ "label": "Vasilissa ergo gaude",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6170/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5335/",
+ "@type": "sc:Canvas",
+ "label": "277v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5336/",
+ "@type": "sc:Canvas",
+ "label": "278r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6171/",
+ "@type": "sc:Range",
+ "label": "Petrum marcello",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6171/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5337/",
+ "@type": "sc:Canvas",
+ "label": "278v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5338/",
+ "@type": "sc:Canvas",
+ "label": "279r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6172/",
+ "@type": "sc:Range",
+ "label": "Salve pater creator",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6172/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5339/",
+ "@type": "sc:Canvas",
+ "label": "279v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5340/",
+ "@type": "sc:Canvas",
+ "label": "280r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6173/",
+ "@type": "sc:Range",
+ "label": "Psallat chorus in novo carmine / Eximie pater egregie, rector / Aptatur",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6173/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5339/",
+ "@type": "sc:Canvas",
+ "label": "279v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5340/",
+ "@type": "sc:Canvas",
+ "label": "280r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16862/",
+ "@type": "sc:Range",
+ "label": "Par un regard",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16862/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5341/",
+ "@type": "sc:Canvas",
+ "label": "280v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5342/",
+ "@type": "sc:Canvas",
+ "label": "281r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6174/",
+ "@type": "sc:Range",
+ "label": "In pharaonis atrio [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6174/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5342/",
+ "@type": "sc:Canvas",
+ "label": "281r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16863/",
+ "@type": "sc:Range",
+ "label": "J'aime bien celui qui s'en va",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16863/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5343/",
+ "@type": "sc:Canvas",
+ "label": "281v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5344/",
+ "@type": "sc:Canvas",
+ "label": "282r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6175/",
+ "@type": "sc:Range",
+ "label": "Verbum tuum",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6175/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5345/",
+ "@type": "sc:Canvas",
+ "label": "282v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5346/",
+ "@type": "sc:Canvas",
+ "label": "283r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6176/",
+ "@type": "sc:Range",
+ "label": "Magne Deus potentiae",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6176/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5348/",
+ "@type": "sc:Canvas",
+ "label": "283v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5349/",
+ "@type": "sc:Canvas",
+ "label": "284r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6177/",
+ "@type": "sc:Range",
+ "label": "O flos in divo / O flos in divo",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6177/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5350/",
+ "@type": "sc:Canvas",
+ "label": "284v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5351/",
+ "@type": "sc:Canvas",
+ "label": "285r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6178/",
+ "@type": "sc:Range",
+ "label": "O virum omnimoda veneratione / O lux et decus tranensium / O beate Nicolae supplicum vota suscipe",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6178/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5352/",
+ "@type": "sc:Canvas",
+ "label": "285v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5353/",
+ "@type": "sc:Canvas",
+ "label": "286r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6179/",
+ "@type": "sc:Range",
+ "label": "O beatum incendium / O beatum incendium [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6179/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5354/",
+ "@type": "sc:Canvas",
+ "label": "286v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5355/",
+ "@type": "sc:Canvas",
+ "label": "287r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6180/",
+ "@type": "sc:Range",
+ "label": "O padua sidus preclarum",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6180/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5356/",
+ "@type": "sc:Canvas",
+ "label": "287v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5357/",
+ "@type": "sc:Canvas",
+ "label": "288r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6181/",
+ "@type": "sc:Range",
+ "label": "Venecie mundi splendor",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6181/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5358/",
+ "@type": "sc:Canvas",
+ "label": "288v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5359/",
+ "@type": "sc:Canvas",
+ "label": "289r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6182/",
+ "@type": "sc:Range",
+ "label": "O petre xpi discipuli / O petre xpi discipuli",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6182/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5360/",
+ "@type": "sc:Canvas",
+ "label": "289v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5361/",
+ "@type": "sc:Canvas",
+ "label": "290r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6183/",
+ "@type": "sc:Range",
+ "label": "Ut per te omnis",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6183/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5362/",
+ "@type": "sc:Canvas",
+ "label": "290v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5363/",
+ "@type": "sc:Canvas",
+ "label": "291r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6184/",
+ "@type": "sc:Range",
+ "label": "Summe summi tu patris",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6184/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5364/",
+ "@type": "sc:Canvas",
+ "label": "291v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5365/",
+ "@type": "sc:Canvas",
+ "label": "292r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6185/",
+ "@type": "sc:Range",
+ "label": "Prevalet simplicitas / Prevalet simplicitas",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6185/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5364/",
+ "@type": "sc:Canvas",
+ "label": "291v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5365/",
+ "@type": "sc:Canvas",
+ "label": "292r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6186/",
+ "@type": "sc:Range",
+ "label": "Caro mea vere est / Caro mea vere est",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6186/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5366/",
+ "@type": "sc:Canvas",
+ "label": "292v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5367/",
+ "@type": "sc:Canvas",
+ "label": "293r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6187/",
+ "@type": "sc:Range",
+ "label": "O gemma lux et speculum",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6187/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5368/",
+ "@type": "sc:Canvas",
+ "label": "293v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5369/",
+ "@type": "sc:Canvas",
+ "label": "294r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6188/",
+ "@type": "sc:Range",
+ "label": "O flos fragrans",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6188/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5370/",
+ "@type": "sc:Canvas",
+ "label": "294v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6189/",
+ "@type": "sc:Range",
+ "label": "Ave mater nostri redemptoris",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6189/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5370/",
+ "@type": "sc:Canvas",
+ "label": "294v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5371/",
+ "@type": "sc:Canvas",
+ "label": "295r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6190/",
+ "@type": "sc:Range",
+ "label": "Salve virgo regia [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6190/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5372/",
+ "@type": "sc:Canvas",
+ "label": "295v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5373/",
+ "@type": "sc:Canvas",
+ "label": "296r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6191/",
+ "@type": "sc:Range",
+ "label": "Te dignitas praesularis / O Martine",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6191/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5374/",
+ "@type": "sc:Canvas",
+ "label": "296v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6192/",
+ "@type": "sc:Range",
+ "label": "Gratulemur xpicole / Gratulemur xpicole / Gratulemur xpicole [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6192/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5374/",
+ "@type": "sc:Canvas",
+ "label": "296v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5375/",
+ "@type": "sc:Canvas",
+ "label": "297r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12698/",
+ "@type": "sc:Range",
+ "label": "Dilecto Jesu Christo [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12698/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5377/",
+ "@type": "sc:Canvas",
+ "label": "297v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5378/",
+ "@type": "sc:Canvas",
+ "label": "298r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6193/",
+ "@type": "sc:Range",
+ "label": "Introitus Recordare virgo mater [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6193/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5379/",
+ "@type": "sc:Canvas",
+ "label": "298v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5380/",
+ "@type": "sc:Canvas",
+ "label": "299r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6194/",
+ "@type": "sc:Range",
+ "label": "Excelsa civitas vincencia",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6194/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5381/",
+ "@type": "sc:Canvas",
+ "label": "299v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5382/",
+ "@type": "sc:Canvas",
+ "label": "300r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6195/",
+ "@type": "sc:Range",
+ "label": "Doctorum principem / Doctorum principem",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6195/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5383/",
+ "@type": "sc:Canvas",
+ "label": "300v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5384/",
+ "@type": "sc:Canvas",
+ "label": "301r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6196/",
+ "@type": "sc:Range",
+ "label": "Albane misse caelitus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6196/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5385/",
+ "@type": "sc:Canvas",
+ "label": "301v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5386/",
+ "@type": "sc:Canvas",
+ "label": "302r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6197/",
+ "@type": "sc:Range",
+ "label": "Sanctus itaque patriarcha / Sanctus itaque patriarcha",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6197/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5387/",
+ "@type": "sc:Canvas",
+ "label": "302v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5388/",
+ "@type": "sc:Canvas",
+ "label": "303r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6198/",
+ "@type": "sc:Range",
+ "label": "Summus secretarius",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6198/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5389/",
+ "@type": "sc:Canvas",
+ "label": "303v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6199/",
+ "@type": "sc:Range",
+ "label": "O quam mirabilis progenies",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6199/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5389/",
+ "@type": "sc:Canvas",
+ "label": "303v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5390/",
+ "@type": "sc:Canvas",
+ "label": "304r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6200/",
+ "@type": "sc:Range",
+ "label": "Alleluia. Katherina [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6200/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5392/",
+ "@type": "sc:Canvas",
+ "label": "304v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6201/",
+ "@type": "sc:Range",
+ "label": "Si nichil actuleris / Si nichil actuleris",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6201/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5392/",
+ "@type": "sc:Canvas",
+ "label": "304v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5393/",
+ "@type": "sc:Canvas",
+ "label": "305r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6202/",
+ "@type": "sc:Range",
+ "label": "Veni dilecte mi",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6202/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5394/",
+ "@type": "sc:Canvas",
+ "label": "305v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5395/",
+ "@type": "sc:Canvas",
+ "label": "306r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6203/",
+ "@type": "sc:Range",
+ "label": "Regina caeli laetare [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6203/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5396/",
+ "@type": "sc:Canvas",
+ "label": "306v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5397/",
+ "@type": "sc:Canvas",
+ "label": "307r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6204/",
+ "@type": "sc:Range",
+ "label": "Ave regina / Ave regina [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6204/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5398/",
+ "@type": "sc:Canvas",
+ "label": "307v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5399/",
+ "@type": "sc:Canvas",
+ "label": "308r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12699/",
+ "@type": "sc:Range",
+ "label": "Magne dies laetitiae",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12699/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5398/",
+ "@type": "sc:Canvas",
+ "label": "307v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5399/",
+ "@type": "sc:Canvas",
+ "label": "308r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6205/",
+ "@type": "sc:Range",
+ "label": "Verbum caro [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6205/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5400/",
+ "@type": "sc:Canvas",
+ "label": "308v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5401/",
+ "@type": "sc:Canvas",
+ "label": "309r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6206/",
+ "@type": "sc:Range",
+ "label": "O Maria maris stella / texted only for duet / partial text",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6206/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5401/",
+ "@type": "sc:Canvas",
+ "label": "309r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6207/",
+ "@type": "sc:Range",
+ "label": "Gaude flore virginali / Gaude flore virginali / Gaude flore virginali",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6207/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5402/",
+ "@type": "sc:Canvas",
+ "label": "309v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5403/",
+ "@type": "sc:Canvas",
+ "label": "310r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6208/",
+ "@type": "sc:Range",
+ "label": "O baptista mirabilis",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6208/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5402/",
+ "@type": "sc:Canvas",
+ "label": "309v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5403/",
+ "@type": "sc:Canvas",
+ "label": "310r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6209/",
+ "@type": "sc:Range",
+ "label": "In tua memoria / In tua memoria [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6209/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5404/",
+ "@type": "sc:Canvas",
+ "label": "310v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5405/",
+ "@type": "sc:Canvas",
+ "label": "311r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6210/",
+ "@type": "sc:Range",
+ "label": "Gaude felix padua",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6210/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5407/",
+ "@type": "sc:Canvas",
+ "label": "311v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5408/",
+ "@type": "sc:Canvas",
+ "label": "312r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6211/",
+ "@type": "sc:Range",
+ "label": "Beata Dei genitrix [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6211/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5409/",
+ "@type": "sc:Canvas",
+ "label": "312v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5410/",
+ "@type": "sc:Canvas",
+ "label": "313r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6212/",
+ "@type": "sc:Range",
+ "label": "Sub tuam protectionem [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6212/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5411/",
+ "@type": "sc:Canvas",
+ "label": "313v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5412/",
+ "@type": "sc:Canvas",
+ "label": "314r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6213/",
+ "@type": "sc:Range",
+ "label": "Quam pulchra es et quam decora",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6213/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5413/",
+ "@type": "sc:Canvas",
+ "label": "314v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5414/",
+ "@type": "sc:Canvas",
+ "label": "315r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6214/",
+ "@type": "sc:Range",
+ "label": "O beate sebastiane",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6214/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5413/",
+ "@type": "sc:Canvas",
+ "label": "314v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5414/",
+ "@type": "sc:Canvas",
+ "label": "315r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12700/",
+ "@type": "sc:Range",
+ "label": "Conditor alme siderum",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12700/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5415/",
+ "@type": "sc:Canvas",
+ "label": "315v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5416/",
+ "@type": "sc:Canvas",
+ "label": "316r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12701/",
+ "@type": "sc:Range",
+ "label": "Criste redemptor ... Ex patre",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12701/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5417/",
+ "@type": "sc:Canvas",
+ "label": "316v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5418/",
+ "@type": "sc:Canvas",
+ "label": "317r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12702/",
+ "@type": "sc:Range",
+ "label": "Christe redemptor omnium . Tu lumen tu splendor",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12702/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5418/",
+ "@type": "sc:Canvas",
+ "label": "317r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12149/",
+ "@type": "sc:Range",
+ "label": "Hostis Herodes impie (Ibant magi)",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12149/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5419/",
+ "@type": "sc:Canvas",
+ "label": "317v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12703/",
+ "@type": "sc:Range",
+ "label": "Ad caenam agni providi Cuius corpus sanctissimum [1a pars]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12703/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5420/",
+ "@type": "sc:Canvas",
+ "label": "318r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12704/",
+ "@type": "sc:Range",
+ "label": "Jesu nostra redemptio",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12704/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5422/",
+ "@type": "sc:Canvas",
+ "label": "318v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12705/",
+ "@type": "sc:Range",
+ "label": "Veni creator spiritus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12705/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5423/",
+ "@type": "sc:Canvas",
+ "label": "319r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12706/",
+ "@type": "sc:Range",
+ "label": "O lux beata",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12706/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5424/",
+ "@type": "sc:Canvas",
+ "label": "319v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12707/",
+ "@type": "sc:Range",
+ "label": "Lucis creator optime",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12707/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5425/",
+ "@type": "sc:Canvas",
+ "label": "320r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5426/",
+ "@type": "sc:Canvas",
+ "label": "320v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12708/",
+ "@type": "sc:Range",
+ "label": "Pange lingua gloriosi corporis misterium",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12708/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5427/",
+ "@type": "sc:Canvas",
+ "label": "321r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12709/",
+ "@type": "sc:Range",
+ "label": "Urbs beata Jerusalem. Nova veniens e caelo",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12709/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5428/",
+ "@type": "sc:Canvas",
+ "label": "321v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12710/",
+ "@type": "sc:Range",
+ "label": "Ave maris stella Sumens illud ave",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12710/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5429/",
+ "@type": "sc:Canvas",
+ "label": "322r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12711/",
+ "@type": "sc:Range",
+ "label": "Christe redemptor omnium/conserva (Beata quoque agmina)",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12711/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5430/",
+ "@type": "sc:Canvas",
+ "label": "322v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12712/",
+ "@type": "sc:Range",
+ "label": "Christe redemptor omnium/conserva (Beata quoque agmina)",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12712/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5431/",
+ "@type": "sc:Canvas",
+ "label": "323r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12713/",
+ "@type": "sc:Range",
+ "label": "Tibi Christe splendor Patris",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12713/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5432/",
+ "@type": "sc:Canvas",
+ "label": "323v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12714/",
+ "@type": "sc:Range",
+ "label": "Ut queant Iaxis (Nuntius celso veniens)",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12714/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5433/",
+ "@type": "sc:Canvas",
+ "label": "324r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12715/",
+ "@type": "sc:Range",
+ "label": "Aurea luce et decore roseo",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12715/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5434/",
+ "@type": "sc:Canvas",
+ "label": "324v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12716/",
+ "@type": "sc:Range",
+ "label": "Exultet caelum laudibus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12716/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5435/",
+ "@type": "sc:Canvas",
+ "label": "325r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12717/",
+ "@type": "sc:Range",
+ "label": "Deus tuorum militum (Hic nempe mundi gaudia)",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12717/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5437/",
+ "@type": "sc:Canvas",
+ "label": "325v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5438/",
+ "@type": "sc:Canvas",
+ "label": "326r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12718/",
+ "@type": "sc:Range",
+ "label": "Sanctorum meritis Hi sunt quos retinens",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12718/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5438/",
+ "@type": "sc:Canvas",
+ "label": "326r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12719/",
+ "@type": "sc:Range",
+ "label": "Iste confessor (Qui pius prudens)",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12719/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5439/",
+ "@type": "sc:Canvas",
+ "label": "326v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12720/",
+ "@type": "sc:Range",
+ "label": "Virginis proles",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12720/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5440/",
+ "@type": "sc:Canvas",
+ "label": "327r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/12721/",
+ "@type": "sc:Range",
+ "label": "Jesu corona virginum (Qui pascis inter lilia)",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/12721/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5441/",
+ "@type": "sc:Canvas",
+ "label": "327v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5442/",
+ "@type": "sc:Canvas",
+ "label": "328r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5443/",
+ "@type": "sc:Canvas",
+ "label": "328v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6215/",
+ "@type": "sc:Range",
+ "label": "Letabundus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6215/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5444/",
+ "@type": "sc:Canvas",
+ "label": "329r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5445/",
+ "@type": "sc:Canvas",
+ "label": "329v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5446/",
+ "@type": "sc:Canvas",
+ "label": "330r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6216/",
+ "@type": "sc:Range",
+ "label": "Veni sancte spiritus et emitte caelitus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6216/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5447/",
+ "@type": "sc:Canvas",
+ "label": "330v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5448/",
+ "@type": "sc:Canvas",
+ "label": "331r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5449/",
+ "@type": "sc:Canvas",
+ "label": "331v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5450/",
+ "@type": "sc:Canvas",
+ "label": "332r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5452/",
+ "@type": "sc:Canvas",
+ "label": "332v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5453/",
+ "@type": "sc:Canvas",
+ "label": "333r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16864/",
+ "@type": "sc:Range",
+ "label": "Magnificat anima mea Dominum",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16864/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5452/",
+ "@type": "sc:Canvas",
+ "label": "332v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5453/",
+ "@type": "sc:Canvas",
+ "label": "333r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5454/",
+ "@type": "sc:Canvas",
+ "label": "333v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5455/",
+ "@type": "sc:Canvas",
+ "label": "334r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16865/",
+ "@type": "sc:Range",
+ "label": "Magnificat: Et exultavit spiritus meus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16865/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5454/",
+ "@type": "sc:Canvas",
+ "label": "333v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5455/",
+ "@type": "sc:Canvas",
+ "label": "334r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16866/",
+ "@type": "sc:Range",
+ "label": "Magnificat: Et exultavit spiritus meus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16866/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5456/",
+ "@type": "sc:Canvas",
+ "label": "334v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5457/",
+ "@type": "sc:Canvas",
+ "label": "335r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16867/",
+ "@type": "sc:Range",
+ "label": "Magnificat anima mea Dominum",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16867/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5458/",
+ "@type": "sc:Canvas",
+ "label": "335v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5459/",
+ "@type": "sc:Canvas",
+ "label": "336r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/100291/",
+ "@type": "sc:Range",
+ "label": "Esurientes [Magnificat]",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/100291/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5460/",
+ "@type": "sc:Canvas",
+ "label": "336v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5463/",
+ "@type": "sc:Canvas",
+ "label": "338r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16868/",
+ "@type": "sc:Range",
+ "label": "Magnificat anima mea Dominum",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16868/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5460/",
+ "@type": "sc:Canvas",
+ "label": "336v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5461/",
+ "@type": "sc:Canvas",
+ "label": "337r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5462/",
+ "@type": "sc:Canvas",
+ "label": "337v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5463/",
+ "@type": "sc:Canvas",
+ "label": "338r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16869/",
+ "@type": "sc:Range",
+ "label": "Magnificat: Et exultavit spiritus meus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16869/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5464/",
+ "@type": "sc:Canvas",
+ "label": "338v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5465/",
+ "@type": "sc:Canvas",
+ "label": "339r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/16870/",
+ "@type": "sc:Range",
+ "label": "Magnificat [secundi toni]: Et exultavit spiritus meus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/16870/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5466/",
+ "@type": "sc:Canvas",
+ "label": "339v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5467/",
+ "@type": "sc:Canvas",
+ "label": "340r"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5468/",
+ "@type": "sc:Canvas",
+ "label": "340v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6217/",
+ "@type": "sc:Range",
+ "label": "Mittit ad virginem",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6217/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5469/",
+ "@type": "sc:Canvas",
+ "label": "341r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6218/",
+ "@type": "sc:Range",
+ "label": "O felix templum / O felix templum",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6218/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5470/",
+ "@type": "sc:Canvas",
+ "label": "341v"
+ },
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5471/",
+ "@type": "sc:Canvas",
+ "label": "342r"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6219/",
+ "@type": "sc:Range",
+ "label": "Venite adoremus",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6219/"
+ }
+ },
+ {
+ "members": [
+ {
+ "@id": "https://www.diamm.ac.uk/sources/117/canvas/5472/",
+ "@type": "sc:Canvas",
+ "label": "342v"
+ }
+ ],
+ "@id": "https://www.diamm.ac.uk/sources/117/range/6220/",
+ "@type": "sc:Range",
+ "label": "Sub Arturo plebs valata / Fons citharizantium ac organizantium / In omnem terram",
+ "service": {
+ "@context": "https://www.diamm.ac.uk/services/item",
+ "@id": "https://www.diamm.ac.uk/sources/117/item/6220/"
+ }
+ }
+ ],
+ "attribution": "Digital Image Archive of Medieval Music",
+ "logo": "https://www.diamm.ac.uk/static/images/diammlogo.png"
+}
\ No newline at end of file
diff --git a/test/manifests/iiifv3.json b/test/manifests/iiifv3.json
new file mode 100644
index 00000000..2b73b6ec
--- /dev/null
+++ b/test/manifests/iiifv3.json
@@ -0,0 +1,10965 @@
+{
+ "@context":[
+ "http://www.w3.org/ns/anno.jsonld",
+ "http://iiif.io/api/presentation/3/context.json"
+ ],
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/manifest/a4120d22-b62f-4b57-861d-43c839c790a0.json",
+ "type":"Manifest",
+ "label":{
+ "en":[
+ "Bodleian Library: MS. Canon. Misc. 213"
+ ]
+ },
+ "summary":"Songs and hymns (noted)",
+ "metadata":[
+ {
+ "label":{
+ "en":[
+ "Creator"
+ ]
+ },
+ "value":{
+ "en":[
+ "Various composers including Guillaume Dufay, Gilles Binchois, etc. [author]"
+ ]
+ }
+ },
+ {
+ "label":{
+ "en":[
+ "Language"
+ ]
+ },
+ "value":{
+ "en":[
+ "Latin"
+ ]
+ }
+ },
+ {
+ "label":{
+ "en":[
+ "Date Statement"
+ ]
+ },
+ "value":{
+ "en":[
+ "1401",
+ "1500"
+ ]
+ }
+ },
+ {
+ "label":{
+ "en":[
+ "Place of Origin"
+ ]
+ },
+ "value":{
+ "en":[
+ "Italian"
+ ]
+ }
+ },
+ {
+ "label":{
+ "en":[
+ "Catalogue Identifier"
+ ]
+ },
+ "value":{
+ "en":[
+ "Summary Catalogue 19689"
+ ]
+ }
+ },
+ {
+ "label":{
+ "en":[
+ "Record Created"
+ ]
+ },
+ "value":{
+ "en":[
+ "2018-02-27T10:24:52Z"
+ ]
+ }
+ },
+ {
+ "label":{
+ "en":[
+ "Holding Institution"
+ ]
+ },
+ "value":{
+ "en":[
+ "Bodleian Libraries, University of Oxford"
+ ]
+ }
+ },
+ {
+ "label":{
+ "en":[
+ "Collection"
+ ]
+ },
+ "value":{
+ "en":[
+ "Music",
+ "Western Manuscripts",
+ "Manuscripts"
+ ]
+ }
+ }
+ ],
+ "homepage":[
+ {
+ "id":"https://digital.bodleian.ox.ac.uk/inquire/p/a4120d22-b62f-4b57-861d-43c839c790a0",
+ "type":"Text",
+ "label":{
+ "en":[
+ "View on Digital Bodleian"
+ ]
+ },
+ "format":"text/html"
+ }
+ ],
+ "logo":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b83fe9b4-3ffb-4890-aa3f-7d551dfd8b38/full/256,/0/default.jpg",
+ "type":"Image",
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b83fe9b4-3ffb-4890-aa3f-7d551dfd8b38"
+ }
+ }
+ ],
+ "thumbnail":[
+ {
+ "@id":"https://iiif.bodleian.ox.ac.uk/iiif/image/afad6535-f141-404e-a497-207530420221/full/256,/0/default.jpg",
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "@id":"https://iiif.bodleian.ox.ac.uk/iiif/image/afad6535-f141-404e-a497-207530420221"
+ }
+ }
+ ],
+ "requiredStatement":{
+ "label":{
+ "en":[
+ "Terms of Use"
+ ]
+ },
+ "value":{
+ "en":[
+ "Terms of use: http://digital.bodleian.ox.ac.uk/terms.html"
+ ]
+ }
+ },
+ "partOf":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/collection/music",
+ "type":"Collection",
+ "label":{
+ "en":[
+ "Music"
+ ]
+ }
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/collection/western-manuscripts",
+ "type":"Collection",
+ "label":{
+ "en":[
+ "Western Manuscripts"
+ ]
+ }
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/collection/manuscripts",
+ "type":"Collection",
+ "label":{
+ "en":[
+ "Manuscripts"
+ ]
+ }
+ }
+ ],
+ "behaviour":[
+ "paged"
+ ],
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/afad6535-f141-404e-a497-207530420221.json",
+ "type":"Canvas",
+ "label":"Upper board",
+ "width":5428,
+ "height":6444,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/afad6535-f141-404e-a497-207530420221.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/afad6535-f141-404e-a497-207530420221.json",
+ "body":{
+ "type": "Choice",
+ "items": [{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/afad6535-f141-404e-a497-207530420221",
+ "type":"Image",
+ "format":"image/jpeg",
+ "label": "Primary Colour",
+ "width":5428,
+ "height":6444,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/afad6535-f141-404e-a497-207530420221"
+ }
+ }, {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/797d3cbc-f3f9-4c82-9fa0-09108d395775",
+ "type":"Image",
+ "format":"image/jpeg",
+ "label": "Ultraviolet (Not really, Just a test)",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/797d3cbc-f3f9-4c82-9fa0-09108d395775"
+ }
+ }]
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/797d3cbc-f3f9-4c82-9fa0-09108d395775.json",
+ "type":"Canvas",
+ "label":"Inside upper board",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/797d3cbc-f3f9-4c82-9fa0-09108d395775.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/797d3cbc-f3f9-4c82-9fa0-09108d395775.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/797d3cbc-f3f9-4c82-9fa0-09108d395775",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/797d3cbc-f3f9-4c82-9fa0-09108d395775"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/042b7b1b-b165-49a6-bf97-b5944d49e89d.json",
+ "type":"Canvas",
+ "label":"fol. i r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/042b7b1b-b165-49a6-bf97-b5944d49e89d.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/042b7b1b-b165-49a6-bf97-b5944d49e89d.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/042b7b1b-b165-49a6-bf97-b5944d49e89d",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/042b7b1b-b165-49a6-bf97-b5944d49e89d"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d41dc9ba-efec-46a9-9231-c7ceecba607e.json",
+ "type":"Canvas",
+ "label":"fol. i v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/d41dc9ba-efec-46a9-9231-c7ceecba607e.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d41dc9ba-efec-46a9-9231-c7ceecba607e.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d41dc9ba-efec-46a9-9231-c7ceecba607e",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d41dc9ba-efec-46a9-9231-c7ceecba607e"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b9f0b9e9-e8c2-4f9c-a5b2-2848bd8e7d3c.json",
+ "type":"Canvas",
+ "label":"fol. ii r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/b9f0b9e9-e8c2-4f9c-a5b2-2848bd8e7d3c.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b9f0b9e9-e8c2-4f9c-a5b2-2848bd8e7d3c.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b9f0b9e9-e8c2-4f9c-a5b2-2848bd8e7d3c",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b9f0b9e9-e8c2-4f9c-a5b2-2848bd8e7d3c"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6c413931-c1c2-43bd-927c-80cce7592dfa.json",
+ "type":"Canvas",
+ "label":"fol. ii v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/6c413931-c1c2-43bd-927c-80cce7592dfa.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6c413931-c1c2-43bd-927c-80cce7592dfa.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/6c413931-c1c2-43bd-927c-80cce7592dfa",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/6c413931-c1c2-43bd-927c-80cce7592dfa"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/80662a77-1f69-4718-9a0d-37389c6e1642.json",
+ "type":"Canvas",
+ "label":"fol. iii r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/80662a77-1f69-4718-9a0d-37389c6e1642.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/80662a77-1f69-4718-9a0d-37389c6e1642.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/80662a77-1f69-4718-9a0d-37389c6e1642",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/80662a77-1f69-4718-9a0d-37389c6e1642"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/bbbeb343-882a-465c-9e9f-71022d998ed2.json",
+ "type":"Canvas",
+ "label":"fol. iii v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/bbbeb343-882a-465c-9e9f-71022d998ed2.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/bbbeb343-882a-465c-9e9f-71022d998ed2.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/bbbeb343-882a-465c-9e9f-71022d998ed2",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/bbbeb343-882a-465c-9e9f-71022d998ed2"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b0b3d72d-315d-4dc6-aad0-f615b8ee74f7.json",
+ "type":"Canvas",
+ "label":"fol. iv r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/b0b3d72d-315d-4dc6-aad0-f615b8ee74f7.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b0b3d72d-315d-4dc6-aad0-f615b8ee74f7.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b0b3d72d-315d-4dc6-aad0-f615b8ee74f7",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b0b3d72d-315d-4dc6-aad0-f615b8ee74f7"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/74c20173-e32e-4b62-b994-595a61fb6bf0.json",
+ "type":"Canvas",
+ "label":"fol. iv v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/74c20173-e32e-4b62-b994-595a61fb6bf0.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/74c20173-e32e-4b62-b994-595a61fb6bf0.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/74c20173-e32e-4b62-b994-595a61fb6bf0",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/74c20173-e32e-4b62-b994-595a61fb6bf0"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ab7412b4-d4c3-468f-9b2b-69614c2446ea.json",
+ "type":"Canvas",
+ "label":"fol. v r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/ab7412b4-d4c3-468f-9b2b-69614c2446ea.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ab7412b4-d4c3-468f-9b2b-69614c2446ea.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/ab7412b4-d4c3-468f-9b2b-69614c2446ea",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/ab7412b4-d4c3-468f-9b2b-69614c2446ea"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/964a96df-c6bc-4459-a56d-b4880860f83a.json",
+ "type":"Canvas",
+ "label":"fol. v v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/964a96df-c6bc-4459-a56d-b4880860f83a.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/964a96df-c6bc-4459-a56d-b4880860f83a.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/964a96df-c6bc-4459-a56d-b4880860f83a",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/964a96df-c6bc-4459-a56d-b4880860f83a"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7448e4cf-97f1-4b56-97ef-89d933761bff.json",
+ "type":"Canvas",
+ "label":"fol. 1r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/7448e4cf-97f1-4b56-97ef-89d933761bff.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7448e4cf-97f1-4b56-97ef-89d933761bff.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/7448e4cf-97f1-4b56-97ef-89d933761bff",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/7448e4cf-97f1-4b56-97ef-89d933761bff"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/45d5ff8c-075d-44f7-9bee-fbee11cce4f1.json",
+ "type":"Canvas",
+ "label":"fol. 1v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/45d5ff8c-075d-44f7-9bee-fbee11cce4f1.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/45d5ff8c-075d-44f7-9bee-fbee11cce4f1.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/45d5ff8c-075d-44f7-9bee-fbee11cce4f1",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/45d5ff8c-075d-44f7-9bee-fbee11cce4f1"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1d5861d1-d36c-4ea8-8df4-96c5316311fa.json",
+ "type":"Canvas",
+ "label":"fol. 2r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/1d5861d1-d36c-4ea8-8df4-96c5316311fa.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1d5861d1-d36c-4ea8-8df4-96c5316311fa.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/1d5861d1-d36c-4ea8-8df4-96c5316311fa",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/1d5861d1-d36c-4ea8-8df4-96c5316311fa"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/aebd4b06-a946-4099-b6bf-0f7c2a5eb9b9.json",
+ "type":"Canvas",
+ "label":"fol. 2v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/aebd4b06-a946-4099-b6bf-0f7c2a5eb9b9.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/aebd4b06-a946-4099-b6bf-0f7c2a5eb9b9.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/aebd4b06-a946-4099-b6bf-0f7c2a5eb9b9",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/aebd4b06-a946-4099-b6bf-0f7c2a5eb9b9"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/df8c9098-05d1-46ba-a556-7dc16bb127fb.json",
+ "type":"Canvas",
+ "label":"fol. 3r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/df8c9098-05d1-46ba-a556-7dc16bb127fb.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/df8c9098-05d1-46ba-a556-7dc16bb127fb.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/df8c9098-05d1-46ba-a556-7dc16bb127fb",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/df8c9098-05d1-46ba-a556-7dc16bb127fb"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b561eb03-775e-41e9-b85c-9e67c2a5d680.json",
+ "type":"Canvas",
+ "label":"fol. 3v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/b561eb03-775e-41e9-b85c-9e67c2a5d680.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b561eb03-775e-41e9-b85c-9e67c2a5d680.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b561eb03-775e-41e9-b85c-9e67c2a5d680",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b561eb03-775e-41e9-b85c-9e67c2a5d680"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6db36cfb-b893-435b-88e9-91ec27b5a3b9.json",
+ "type":"Canvas",
+ "label":"fol. 4r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/6db36cfb-b893-435b-88e9-91ec27b5a3b9.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6db36cfb-b893-435b-88e9-91ec27b5a3b9.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/6db36cfb-b893-435b-88e9-91ec27b5a3b9",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/6db36cfb-b893-435b-88e9-91ec27b5a3b9"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b55b9e95-71ec-4602-9745-b12c5ef91be4.json",
+ "type":"Canvas",
+ "label":"fol. 4v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/b55b9e95-71ec-4602-9745-b12c5ef91be4.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b55b9e95-71ec-4602-9745-b12c5ef91be4.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b55b9e95-71ec-4602-9745-b12c5ef91be4",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b55b9e95-71ec-4602-9745-b12c5ef91be4"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0f2c5554-ba34-46ec-9048-905d8a2fbeb5.json",
+ "type":"Canvas",
+ "label":"fol. 5r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/0f2c5554-ba34-46ec-9048-905d8a2fbeb5.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0f2c5554-ba34-46ec-9048-905d8a2fbeb5.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/0f2c5554-ba34-46ec-9048-905d8a2fbeb5",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/0f2c5554-ba34-46ec-9048-905d8a2fbeb5"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2152a20a-e2cb-47b7-b864-abc630d1903a.json",
+ "type":"Canvas",
+ "label":"fol. 5v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/2152a20a-e2cb-47b7-b864-abc630d1903a.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2152a20a-e2cb-47b7-b864-abc630d1903a.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/2152a20a-e2cb-47b7-b864-abc630d1903a",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/2152a20a-e2cb-47b7-b864-abc630d1903a"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/48a31253-3e27-4194-b300-fe5569932f46.json",
+ "type":"Canvas",
+ "label":"fol. 6r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/48a31253-3e27-4194-b300-fe5569932f46.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/48a31253-3e27-4194-b300-fe5569932f46.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/48a31253-3e27-4194-b300-fe5569932f46",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/48a31253-3e27-4194-b300-fe5569932f46"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c1ee9124-fa1e-4c44-9b73-e36b6d6d572f.json",
+ "type":"Canvas",
+ "label":"fol. 6v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/c1ee9124-fa1e-4c44-9b73-e36b6d6d572f.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c1ee9124-fa1e-4c44-9b73-e36b6d6d572f.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c1ee9124-fa1e-4c44-9b73-e36b6d6d572f",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c1ee9124-fa1e-4c44-9b73-e36b6d6d572f"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b7c2bf85-889a-4160-b564-841145394a73.json",
+ "type":"Canvas",
+ "label":"fol. 7r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/b7c2bf85-889a-4160-b564-841145394a73.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b7c2bf85-889a-4160-b564-841145394a73.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b7c2bf85-889a-4160-b564-841145394a73",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b7c2bf85-889a-4160-b564-841145394a73"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d5e7aef3-f2ee-41fb-9db7-076af836adf2.json",
+ "type":"Canvas",
+ "label":"fol. 7v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/d5e7aef3-f2ee-41fb-9db7-076af836adf2.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d5e7aef3-f2ee-41fb-9db7-076af836adf2.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d5e7aef3-f2ee-41fb-9db7-076af836adf2",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d5e7aef3-f2ee-41fb-9db7-076af836adf2"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d6fa5889-5152-4589-9b2d-50311866917d.json",
+ "type":"Canvas",
+ "label":"fol. 8r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/d6fa5889-5152-4589-9b2d-50311866917d.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d6fa5889-5152-4589-9b2d-50311866917d.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d6fa5889-5152-4589-9b2d-50311866917d",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d6fa5889-5152-4589-9b2d-50311866917d"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ab352234-428f-4af6-a52d-738c50e260c8.json",
+ "type":"Canvas",
+ "label":"fol. 8v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/ab352234-428f-4af6-a52d-738c50e260c8.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ab352234-428f-4af6-a52d-738c50e260c8.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/ab352234-428f-4af6-a52d-738c50e260c8",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/ab352234-428f-4af6-a52d-738c50e260c8"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f93279af-5947-402e-9d11-f64231886c0a.json",
+ "type":"Canvas",
+ "label":"fol. 9r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/f93279af-5947-402e-9d11-f64231886c0a.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f93279af-5947-402e-9d11-f64231886c0a.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f93279af-5947-402e-9d11-f64231886c0a",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f93279af-5947-402e-9d11-f64231886c0a"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/65a65810-03ed-455a-81b3-47a96ed2d89d.json",
+ "type":"Canvas",
+ "label":"fol. 9v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/65a65810-03ed-455a-81b3-47a96ed2d89d.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/65a65810-03ed-455a-81b3-47a96ed2d89d.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/65a65810-03ed-455a-81b3-47a96ed2d89d",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/65a65810-03ed-455a-81b3-47a96ed2d89d"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f9b562aa-5d30-4e1e-9e76-3f78b56bbbc0.json",
+ "type":"Canvas",
+ "label":"fol. 10r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/f9b562aa-5d30-4e1e-9e76-3f78b56bbbc0.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f9b562aa-5d30-4e1e-9e76-3f78b56bbbc0.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f9b562aa-5d30-4e1e-9e76-3f78b56bbbc0",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f9b562aa-5d30-4e1e-9e76-3f78b56bbbc0"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7b4d6310-b0bb-4ea4-ad98-478490405e5f.json",
+ "type":"Canvas",
+ "label":"fol. 10v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/7b4d6310-b0bb-4ea4-ad98-478490405e5f.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7b4d6310-b0bb-4ea4-ad98-478490405e5f.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/7b4d6310-b0bb-4ea4-ad98-478490405e5f",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/7b4d6310-b0bb-4ea4-ad98-478490405e5f"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/729715fc-7941-4d47-8a53-91e929a7d60d.json",
+ "type":"Canvas",
+ "label":"fol. 11r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/729715fc-7941-4d47-8a53-91e929a7d60d.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/729715fc-7941-4d47-8a53-91e929a7d60d.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/729715fc-7941-4d47-8a53-91e929a7d60d",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/729715fc-7941-4d47-8a53-91e929a7d60d"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/660e3194-a6a4-4a60-aece-436a71d20071.json",
+ "type":"Canvas",
+ "label":"fol. 11v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/660e3194-a6a4-4a60-aece-436a71d20071.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/660e3194-a6a4-4a60-aece-436a71d20071.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/660e3194-a6a4-4a60-aece-436a71d20071",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/660e3194-a6a4-4a60-aece-436a71d20071"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/acccb9f9-473e-4c7c-b9a7-529eb1782158.json",
+ "type":"Canvas",
+ "label":"fol. 12r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/acccb9f9-473e-4c7c-b9a7-529eb1782158.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/acccb9f9-473e-4c7c-b9a7-529eb1782158.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/acccb9f9-473e-4c7c-b9a7-529eb1782158",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/acccb9f9-473e-4c7c-b9a7-529eb1782158"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9e51909a-c802-42e8-b12c-98a234246a68.json",
+ "type":"Canvas",
+ "label":"fol. 12v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/9e51909a-c802-42e8-b12c-98a234246a68.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9e51909a-c802-42e8-b12c-98a234246a68.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9e51909a-c802-42e8-b12c-98a234246a68",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9e51909a-c802-42e8-b12c-98a234246a68"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/67285312-5158-43fb-9639-cba732372a9f.json",
+ "type":"Canvas",
+ "label":"fol. 13r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/67285312-5158-43fb-9639-cba732372a9f.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/67285312-5158-43fb-9639-cba732372a9f.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/67285312-5158-43fb-9639-cba732372a9f",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/67285312-5158-43fb-9639-cba732372a9f"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4eb3f79a-4be3-4544-8cbd-9d42b556e8d4.json",
+ "type":"Canvas",
+ "label":"fol. 13v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/4eb3f79a-4be3-4544-8cbd-9d42b556e8d4.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4eb3f79a-4be3-4544-8cbd-9d42b556e8d4.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/4eb3f79a-4be3-4544-8cbd-9d42b556e8d4",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/4eb3f79a-4be3-4544-8cbd-9d42b556e8d4"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8019239f-628c-4c89-a266-3ae52b0bf6d8.json",
+ "type":"Canvas",
+ "label":"fol. 14r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/8019239f-628c-4c89-a266-3ae52b0bf6d8.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8019239f-628c-4c89-a266-3ae52b0bf6d8.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8019239f-628c-4c89-a266-3ae52b0bf6d8",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8019239f-628c-4c89-a266-3ae52b0bf6d8"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/cb92bbe9-35af-465a-a1a1-85530f71fd0f.json",
+ "type":"Canvas",
+ "label":"fol. 14v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/cb92bbe9-35af-465a-a1a1-85530f71fd0f.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/cb92bbe9-35af-465a-a1a1-85530f71fd0f.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/cb92bbe9-35af-465a-a1a1-85530f71fd0f",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/cb92bbe9-35af-465a-a1a1-85530f71fd0f"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/39a5d7a8-8a2b-4b64-b8b2-25dbba301151.json",
+ "type":"Canvas",
+ "label":"fol. 15r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/39a5d7a8-8a2b-4b64-b8b2-25dbba301151.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/39a5d7a8-8a2b-4b64-b8b2-25dbba301151.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/39a5d7a8-8a2b-4b64-b8b2-25dbba301151",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/39a5d7a8-8a2b-4b64-b8b2-25dbba301151"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/44b61821-29c5-4372-85a9-3e6f6ad7aee2.json",
+ "type":"Canvas",
+ "label":"fol. 15v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/44b61821-29c5-4372-85a9-3e6f6ad7aee2.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/44b61821-29c5-4372-85a9-3e6f6ad7aee2.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/44b61821-29c5-4372-85a9-3e6f6ad7aee2",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/44b61821-29c5-4372-85a9-3e6f6ad7aee2"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d926f23d-8dd7-4f06-b0db-34c751f8da18.json",
+ "type":"Canvas",
+ "label":"fol. 16r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/d926f23d-8dd7-4f06-b0db-34c751f8da18.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d926f23d-8dd7-4f06-b0db-34c751f8da18.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d926f23d-8dd7-4f06-b0db-34c751f8da18",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d926f23d-8dd7-4f06-b0db-34c751f8da18"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/af9a67c4-781e-4678-a253-f15a69f88bcb.json",
+ "type":"Canvas",
+ "label":"fol. 16v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/af9a67c4-781e-4678-a253-f15a69f88bcb.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/af9a67c4-781e-4678-a253-f15a69f88bcb.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/af9a67c4-781e-4678-a253-f15a69f88bcb",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/af9a67c4-781e-4678-a253-f15a69f88bcb"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/52ad4b81-0392-48c5-9927-18c447c6c379.json",
+ "type":"Canvas",
+ "label":"fol. 17r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/52ad4b81-0392-48c5-9927-18c447c6c379.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/52ad4b81-0392-48c5-9927-18c447c6c379.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/52ad4b81-0392-48c5-9927-18c447c6c379",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/52ad4b81-0392-48c5-9927-18c447c6c379"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/23f11ecb-2373-4445-b632-f103532f1330.json",
+ "type":"Canvas",
+ "label":"fol. 17v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/23f11ecb-2373-4445-b632-f103532f1330.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/23f11ecb-2373-4445-b632-f103532f1330.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/23f11ecb-2373-4445-b632-f103532f1330",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/23f11ecb-2373-4445-b632-f103532f1330"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/dbdfe2a4-8cff-457f-9e40-938197b111e8.json",
+ "type":"Canvas",
+ "label":"fol. 18r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/dbdfe2a4-8cff-457f-9e40-938197b111e8.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/dbdfe2a4-8cff-457f-9e40-938197b111e8.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/dbdfe2a4-8cff-457f-9e40-938197b111e8",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/dbdfe2a4-8cff-457f-9e40-938197b111e8"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/dce4c5ef-1f84-4a02-951e-a23f15025389.json",
+ "type":"Canvas",
+ "label":"fol. 18v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/dce4c5ef-1f84-4a02-951e-a23f15025389.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/dce4c5ef-1f84-4a02-951e-a23f15025389.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/dce4c5ef-1f84-4a02-951e-a23f15025389",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/dce4c5ef-1f84-4a02-951e-a23f15025389"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/feb5f14a-b97d-4a6a-9687-f55a3cfb0466.json",
+ "type":"Canvas",
+ "label":"fol. 19r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/feb5f14a-b97d-4a6a-9687-f55a3cfb0466.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/feb5f14a-b97d-4a6a-9687-f55a3cfb0466.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/feb5f14a-b97d-4a6a-9687-f55a3cfb0466",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/feb5f14a-b97d-4a6a-9687-f55a3cfb0466"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6617ac2a-ee81-48a7-a6a8-9cd70a4987be.json",
+ "type":"Canvas",
+ "label":"fol. 19v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/6617ac2a-ee81-48a7-a6a8-9cd70a4987be.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6617ac2a-ee81-48a7-a6a8-9cd70a4987be.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/6617ac2a-ee81-48a7-a6a8-9cd70a4987be",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/6617ac2a-ee81-48a7-a6a8-9cd70a4987be"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0d8a0e96-cd3a-4b99-9d34-b314c56707c1.json",
+ "type":"Canvas",
+ "label":"fol. 20r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/0d8a0e96-cd3a-4b99-9d34-b314c56707c1.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0d8a0e96-cd3a-4b99-9d34-b314c56707c1.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/0d8a0e96-cd3a-4b99-9d34-b314c56707c1",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/0d8a0e96-cd3a-4b99-9d34-b314c56707c1"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8f7fe062-8be4-4582-ae3c-edfc1ace6b72.json",
+ "type":"Canvas",
+ "label":"fol. 20v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/8f7fe062-8be4-4582-ae3c-edfc1ace6b72.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8f7fe062-8be4-4582-ae3c-edfc1ace6b72.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8f7fe062-8be4-4582-ae3c-edfc1ace6b72",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8f7fe062-8be4-4582-ae3c-edfc1ace6b72"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b4f9b8cf-747f-4432-8287-b6aa471ceaca.json",
+ "type":"Canvas",
+ "label":"fol. 21r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/b4f9b8cf-747f-4432-8287-b6aa471ceaca.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b4f9b8cf-747f-4432-8287-b6aa471ceaca.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b4f9b8cf-747f-4432-8287-b6aa471ceaca",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b4f9b8cf-747f-4432-8287-b6aa471ceaca"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/645abc0c-b005-48e6-9abe-1659bbd23c74.json",
+ "type":"Canvas",
+ "label":"fol. 21v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/645abc0c-b005-48e6-9abe-1659bbd23c74.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/645abc0c-b005-48e6-9abe-1659bbd23c74.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/645abc0c-b005-48e6-9abe-1659bbd23c74",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/645abc0c-b005-48e6-9abe-1659bbd23c74"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/487bd2a5-c828-40e8-b235-8f91503000b9.json",
+ "type":"Canvas",
+ "label":"fol. 22r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/487bd2a5-c828-40e8-b235-8f91503000b9.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/487bd2a5-c828-40e8-b235-8f91503000b9.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/487bd2a5-c828-40e8-b235-8f91503000b9",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/487bd2a5-c828-40e8-b235-8f91503000b9"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e8d69bbe-106a-40de-a664-0d8ad62b9971.json",
+ "type":"Canvas",
+ "label":"fol. 22v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/e8d69bbe-106a-40de-a664-0d8ad62b9971.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e8d69bbe-106a-40de-a664-0d8ad62b9971.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e8d69bbe-106a-40de-a664-0d8ad62b9971",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e8d69bbe-106a-40de-a664-0d8ad62b9971"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d8750bbe-665a-4ef1-8972-18b861404234.json",
+ "type":"Canvas",
+ "label":"fol. 23r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/d8750bbe-665a-4ef1-8972-18b861404234.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d8750bbe-665a-4ef1-8972-18b861404234.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d8750bbe-665a-4ef1-8972-18b861404234",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d8750bbe-665a-4ef1-8972-18b861404234"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/a7ced05e-e39f-4d4c-b632-fcb295ba7b94.json",
+ "type":"Canvas",
+ "label":"fol. 23v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/a7ced05e-e39f-4d4c-b632-fcb295ba7b94.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/a7ced05e-e39f-4d4c-b632-fcb295ba7b94.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/a7ced05e-e39f-4d4c-b632-fcb295ba7b94",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/a7ced05e-e39f-4d4c-b632-fcb295ba7b94"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/772a9be1-d0d5-4455-9267-23af1b0a2064.json",
+ "type":"Canvas",
+ "label":"fol. 24r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/772a9be1-d0d5-4455-9267-23af1b0a2064.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/772a9be1-d0d5-4455-9267-23af1b0a2064.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/772a9be1-d0d5-4455-9267-23af1b0a2064",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/772a9be1-d0d5-4455-9267-23af1b0a2064"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ff56505b-e1dc-40a4-82ae-52d5abbf96be.json",
+ "type":"Canvas",
+ "label":"fol. 24v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/ff56505b-e1dc-40a4-82ae-52d5abbf96be.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ff56505b-e1dc-40a4-82ae-52d5abbf96be.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/ff56505b-e1dc-40a4-82ae-52d5abbf96be",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/ff56505b-e1dc-40a4-82ae-52d5abbf96be"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/34eb9ca0-4270-4303-a345-010e94c34c4c.json",
+ "type":"Canvas",
+ "label":"fol. 25r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/34eb9ca0-4270-4303-a345-010e94c34c4c.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/34eb9ca0-4270-4303-a345-010e94c34c4c.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/34eb9ca0-4270-4303-a345-010e94c34c4c",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/34eb9ca0-4270-4303-a345-010e94c34c4c"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b188b953-860b-4b7f-99fd-92759da2e0dc.json",
+ "type":"Canvas",
+ "label":"fol. 25v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/b188b953-860b-4b7f-99fd-92759da2e0dc.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b188b953-860b-4b7f-99fd-92759da2e0dc.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b188b953-860b-4b7f-99fd-92759da2e0dc",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b188b953-860b-4b7f-99fd-92759da2e0dc"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c45af702-b631-4c99-9cbb-2bae270f0010.json",
+ "type":"Canvas",
+ "label":"fol. 26r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/c45af702-b631-4c99-9cbb-2bae270f0010.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c45af702-b631-4c99-9cbb-2bae270f0010.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c45af702-b631-4c99-9cbb-2bae270f0010",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c45af702-b631-4c99-9cbb-2bae270f0010"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4913ab2e-783b-4ebe-8beb-6c80ca9ec0d0.json",
+ "type":"Canvas",
+ "label":"fol. 26v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/4913ab2e-783b-4ebe-8beb-6c80ca9ec0d0.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4913ab2e-783b-4ebe-8beb-6c80ca9ec0d0.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/4913ab2e-783b-4ebe-8beb-6c80ca9ec0d0",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/4913ab2e-783b-4ebe-8beb-6c80ca9ec0d0"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/10ca150c-d75c-4947-97ab-27fe661fe1ce.json",
+ "type":"Canvas",
+ "label":"fol. 27r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/10ca150c-d75c-4947-97ab-27fe661fe1ce.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/10ca150c-d75c-4947-97ab-27fe661fe1ce.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/10ca150c-d75c-4947-97ab-27fe661fe1ce",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/10ca150c-d75c-4947-97ab-27fe661fe1ce"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/03a15174-1966-4efd-9a7f-a955d43b997c.json",
+ "type":"Canvas",
+ "label":"fol. 27v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/03a15174-1966-4efd-9a7f-a955d43b997c.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/03a15174-1966-4efd-9a7f-a955d43b997c.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/03a15174-1966-4efd-9a7f-a955d43b997c",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/03a15174-1966-4efd-9a7f-a955d43b997c"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c82355e6-1749-45f6-90d8-d7df566f8818.json",
+ "type":"Canvas",
+ "label":"fol. 28r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/c82355e6-1749-45f6-90d8-d7df566f8818.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c82355e6-1749-45f6-90d8-d7df566f8818.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c82355e6-1749-45f6-90d8-d7df566f8818",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c82355e6-1749-45f6-90d8-d7df566f8818"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6dea8037-41e0-4b2f-ac4c-a6e00306858c.json",
+ "type":"Canvas",
+ "label":"fol. 28v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/6dea8037-41e0-4b2f-ac4c-a6e00306858c.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6dea8037-41e0-4b2f-ac4c-a6e00306858c.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/6dea8037-41e0-4b2f-ac4c-a6e00306858c",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/6dea8037-41e0-4b2f-ac4c-a6e00306858c"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8aea56fb-05bd-49c6-aad7-bbd8c7ebdfc7.json",
+ "type":"Canvas",
+ "label":"fol. 29r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/8aea56fb-05bd-49c6-aad7-bbd8c7ebdfc7.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8aea56fb-05bd-49c6-aad7-bbd8c7ebdfc7.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8aea56fb-05bd-49c6-aad7-bbd8c7ebdfc7",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8aea56fb-05bd-49c6-aad7-bbd8c7ebdfc7"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/742ab4ac-5459-48df-803c-bfcff7d0f68e.json",
+ "type":"Canvas",
+ "label":"fol. 29v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/742ab4ac-5459-48df-803c-bfcff7d0f68e.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/742ab4ac-5459-48df-803c-bfcff7d0f68e.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/742ab4ac-5459-48df-803c-bfcff7d0f68e",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/742ab4ac-5459-48df-803c-bfcff7d0f68e"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3e904d06-41e5-4156-a256-399038e499a3.json",
+ "type":"Canvas",
+ "label":"fol. 30r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/3e904d06-41e5-4156-a256-399038e499a3.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3e904d06-41e5-4156-a256-399038e499a3.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3e904d06-41e5-4156-a256-399038e499a3",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3e904d06-41e5-4156-a256-399038e499a3"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/25c55c2d-a168-49fb-9f41-23f405e36357.json",
+ "type":"Canvas",
+ "label":"fol. 30v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/25c55c2d-a168-49fb-9f41-23f405e36357.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/25c55c2d-a168-49fb-9f41-23f405e36357.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/25c55c2d-a168-49fb-9f41-23f405e36357",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/25c55c2d-a168-49fb-9f41-23f405e36357"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e1782c78-943f-4424-933e-c0c9e8ec8da1.json",
+ "type":"Canvas",
+ "label":"fol. 31r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/e1782c78-943f-4424-933e-c0c9e8ec8da1.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e1782c78-943f-4424-933e-c0c9e8ec8da1.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e1782c78-943f-4424-933e-c0c9e8ec8da1",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e1782c78-943f-4424-933e-c0c9e8ec8da1"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b9453e0b-b26f-4c90-9c36-f6d4277775cc.json",
+ "type":"Canvas",
+ "label":"fol. 31v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/b9453e0b-b26f-4c90-9c36-f6d4277775cc.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b9453e0b-b26f-4c90-9c36-f6d4277775cc.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b9453e0b-b26f-4c90-9c36-f6d4277775cc",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b9453e0b-b26f-4c90-9c36-f6d4277775cc"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/bb233de9-6cea-41e9-90c7-9fac60f6ec3e.json",
+ "type":"Canvas",
+ "label":"fol. 32r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/bb233de9-6cea-41e9-90c7-9fac60f6ec3e.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/bb233de9-6cea-41e9-90c7-9fac60f6ec3e.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/bb233de9-6cea-41e9-90c7-9fac60f6ec3e",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/bb233de9-6cea-41e9-90c7-9fac60f6ec3e"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/cb65073e-d707-4b60-9c83-3b5fe37e8ce5.json",
+ "type":"Canvas",
+ "label":"fol. 32v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/cb65073e-d707-4b60-9c83-3b5fe37e8ce5.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/cb65073e-d707-4b60-9c83-3b5fe37e8ce5.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/cb65073e-d707-4b60-9c83-3b5fe37e8ce5",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/cb65073e-d707-4b60-9c83-3b5fe37e8ce5"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e6effe1c-bfa1-4511-81a0-b98fdd528fda.json",
+ "type":"Canvas",
+ "label":"fol. 33r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/e6effe1c-bfa1-4511-81a0-b98fdd528fda.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e6effe1c-bfa1-4511-81a0-b98fdd528fda.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e6effe1c-bfa1-4511-81a0-b98fdd528fda",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e6effe1c-bfa1-4511-81a0-b98fdd528fda"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7b07486c-adb4-47bb-be47-f4700475bf21.json",
+ "type":"Canvas",
+ "label":"fol. 33v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/7b07486c-adb4-47bb-be47-f4700475bf21.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7b07486c-adb4-47bb-be47-f4700475bf21.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/7b07486c-adb4-47bb-be47-f4700475bf21",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/7b07486c-adb4-47bb-be47-f4700475bf21"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/73bced49-8e7a-40f9-b743-4db90d78a1b0.json",
+ "type":"Canvas",
+ "label":"fol. 34r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/73bced49-8e7a-40f9-b743-4db90d78a1b0.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/73bced49-8e7a-40f9-b743-4db90d78a1b0.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/73bced49-8e7a-40f9-b743-4db90d78a1b0",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/73bced49-8e7a-40f9-b743-4db90d78a1b0"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/848f63c6-b718-48f7-a6e2-063a9a9112fe.json",
+ "type":"Canvas",
+ "label":"fol. 34v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/848f63c6-b718-48f7-a6e2-063a9a9112fe.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/848f63c6-b718-48f7-a6e2-063a9a9112fe.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/848f63c6-b718-48f7-a6e2-063a9a9112fe",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/848f63c6-b718-48f7-a6e2-063a9a9112fe"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2bc47dd8-379c-4b3d-8f2a-cad9dc320480.json",
+ "type":"Canvas",
+ "label":"fol. 35r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/2bc47dd8-379c-4b3d-8f2a-cad9dc320480.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2bc47dd8-379c-4b3d-8f2a-cad9dc320480.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/2bc47dd8-379c-4b3d-8f2a-cad9dc320480",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/2bc47dd8-379c-4b3d-8f2a-cad9dc320480"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9abe2aa6-290a-4743-a4d6-6c5d57eb1287.json",
+ "type":"Canvas",
+ "label":"fol. 35v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/9abe2aa6-290a-4743-a4d6-6c5d57eb1287.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9abe2aa6-290a-4743-a4d6-6c5d57eb1287.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9abe2aa6-290a-4743-a4d6-6c5d57eb1287",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9abe2aa6-290a-4743-a4d6-6c5d57eb1287"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/a211289d-a58a-41bc-9571-5d5f735b132a.json",
+ "type":"Canvas",
+ "label":"fol. 36r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/a211289d-a58a-41bc-9571-5d5f735b132a.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/a211289d-a58a-41bc-9571-5d5f735b132a.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/a211289d-a58a-41bc-9571-5d5f735b132a",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/a211289d-a58a-41bc-9571-5d5f735b132a"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3c1a3673-361d-4256-88c7-cd9bc8c75a54.json",
+ "type":"Canvas",
+ "label":"fol. 36v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/3c1a3673-361d-4256-88c7-cd9bc8c75a54.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3c1a3673-361d-4256-88c7-cd9bc8c75a54.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3c1a3673-361d-4256-88c7-cd9bc8c75a54",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3c1a3673-361d-4256-88c7-cd9bc8c75a54"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/42bcfac8-97dc-4290-b9f8-fdea45fc0ef2.json",
+ "type":"Canvas",
+ "label":"fol. 37r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/42bcfac8-97dc-4290-b9f8-fdea45fc0ef2.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/42bcfac8-97dc-4290-b9f8-fdea45fc0ef2.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/42bcfac8-97dc-4290-b9f8-fdea45fc0ef2",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/42bcfac8-97dc-4290-b9f8-fdea45fc0ef2"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/5f0c64e8-0fcb-488e-a114-1e5d5cc03f6c.json",
+ "type":"Canvas",
+ "label":"fol. 37v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/5f0c64e8-0fcb-488e-a114-1e5d5cc03f6c.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/5f0c64e8-0fcb-488e-a114-1e5d5cc03f6c.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/5f0c64e8-0fcb-488e-a114-1e5d5cc03f6c",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/5f0c64e8-0fcb-488e-a114-1e5d5cc03f6c"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/43d7f020-acd5-494d-a15c-45a3b1af6f6d.json",
+ "type":"Canvas",
+ "label":"fol. 38r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/43d7f020-acd5-494d-a15c-45a3b1af6f6d.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/43d7f020-acd5-494d-a15c-45a3b1af6f6d.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/43d7f020-acd5-494d-a15c-45a3b1af6f6d",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/43d7f020-acd5-494d-a15c-45a3b1af6f6d"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b011fe03-2dcf-4f14-afee-982de8b50dea.json",
+ "type":"Canvas",
+ "label":"fol. 38v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/b011fe03-2dcf-4f14-afee-982de8b50dea.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b011fe03-2dcf-4f14-afee-982de8b50dea.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b011fe03-2dcf-4f14-afee-982de8b50dea",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b011fe03-2dcf-4f14-afee-982de8b50dea"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9a82001b-5aff-4650-80b3-c1480f120188.json",
+ "type":"Canvas",
+ "label":"fol. 39r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/9a82001b-5aff-4650-80b3-c1480f120188.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9a82001b-5aff-4650-80b3-c1480f120188.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9a82001b-5aff-4650-80b3-c1480f120188",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9a82001b-5aff-4650-80b3-c1480f120188"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e642d7e0-120f-4db1-a8ea-34028f3ce1cd.json",
+ "type":"Canvas",
+ "label":"fol. 39v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/e642d7e0-120f-4db1-a8ea-34028f3ce1cd.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e642d7e0-120f-4db1-a8ea-34028f3ce1cd.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e642d7e0-120f-4db1-a8ea-34028f3ce1cd",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e642d7e0-120f-4db1-a8ea-34028f3ce1cd"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e7ea9e39-22f9-494f-8795-cab058b67649.json",
+ "type":"Canvas",
+ "label":"fol. 40r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/e7ea9e39-22f9-494f-8795-cab058b67649.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e7ea9e39-22f9-494f-8795-cab058b67649.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e7ea9e39-22f9-494f-8795-cab058b67649",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e7ea9e39-22f9-494f-8795-cab058b67649"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b14e1791-a956-4802-873f-51d464ef023e.json",
+ "type":"Canvas",
+ "label":"fol. 40v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/b14e1791-a956-4802-873f-51d464ef023e.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b14e1791-a956-4802-873f-51d464ef023e.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b14e1791-a956-4802-873f-51d464ef023e",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b14e1791-a956-4802-873f-51d464ef023e"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d37e12f9-a0a5-49e9-92e6-ba0c76976f8a.json",
+ "type":"Canvas",
+ "label":"fol. 41r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/d37e12f9-a0a5-49e9-92e6-ba0c76976f8a.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d37e12f9-a0a5-49e9-92e6-ba0c76976f8a.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d37e12f9-a0a5-49e9-92e6-ba0c76976f8a",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d37e12f9-a0a5-49e9-92e6-ba0c76976f8a"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/17d6eb57-36cd-4410-b9f8-cb78c2016cf7.json",
+ "type":"Canvas",
+ "label":"fol. 41v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/17d6eb57-36cd-4410-b9f8-cb78c2016cf7.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/17d6eb57-36cd-4410-b9f8-cb78c2016cf7.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/17d6eb57-36cd-4410-b9f8-cb78c2016cf7",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/17d6eb57-36cd-4410-b9f8-cb78c2016cf7"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/518a47a7-171b-47ed-92ba-36e8c93d47a2.json",
+ "type":"Canvas",
+ "label":"fol. 42r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/518a47a7-171b-47ed-92ba-36e8c93d47a2.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/518a47a7-171b-47ed-92ba-36e8c93d47a2.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/518a47a7-171b-47ed-92ba-36e8c93d47a2",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/518a47a7-171b-47ed-92ba-36e8c93d47a2"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/93e0c1b6-294f-48e0-8c3a-b9adb06dee83.json",
+ "type":"Canvas",
+ "label":"fol. 42v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/93e0c1b6-294f-48e0-8c3a-b9adb06dee83.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/93e0c1b6-294f-48e0-8c3a-b9adb06dee83.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/93e0c1b6-294f-48e0-8c3a-b9adb06dee83",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/93e0c1b6-294f-48e0-8c3a-b9adb06dee83"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c7917868-3c99-4b48-ac90-14bd6c72ef38.json",
+ "type":"Canvas",
+ "label":"fol. 43r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/c7917868-3c99-4b48-ac90-14bd6c72ef38.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c7917868-3c99-4b48-ac90-14bd6c72ef38.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c7917868-3c99-4b48-ac90-14bd6c72ef38",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c7917868-3c99-4b48-ac90-14bd6c72ef38"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d6200057-df91-4a9c-8875-542684ec6bbb.json",
+ "type":"Canvas",
+ "label":"fol. 43v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/d6200057-df91-4a9c-8875-542684ec6bbb.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d6200057-df91-4a9c-8875-542684ec6bbb.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d6200057-df91-4a9c-8875-542684ec6bbb",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d6200057-df91-4a9c-8875-542684ec6bbb"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/5887ebcf-bb15-4fe9-81b4-a48ba6c6d7a1.json",
+ "type":"Canvas",
+ "label":"fol. 44r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/5887ebcf-bb15-4fe9-81b4-a48ba6c6d7a1.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/5887ebcf-bb15-4fe9-81b4-a48ba6c6d7a1.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/5887ebcf-bb15-4fe9-81b4-a48ba6c6d7a1",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/5887ebcf-bb15-4fe9-81b4-a48ba6c6d7a1"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9858a99f-c691-4bfe-aa34-131975ff1991.json",
+ "type":"Canvas",
+ "label":"fol. 44v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/9858a99f-c691-4bfe-aa34-131975ff1991.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9858a99f-c691-4bfe-aa34-131975ff1991.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9858a99f-c691-4bfe-aa34-131975ff1991",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9858a99f-c691-4bfe-aa34-131975ff1991"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3d5774ae-d0ae-47b0-a57d-d6ba1cfa00bc.json",
+ "type":"Canvas",
+ "label":"fol. 45r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/3d5774ae-d0ae-47b0-a57d-d6ba1cfa00bc.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3d5774ae-d0ae-47b0-a57d-d6ba1cfa00bc.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3d5774ae-d0ae-47b0-a57d-d6ba1cfa00bc",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3d5774ae-d0ae-47b0-a57d-d6ba1cfa00bc"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/5b9ba09a-0e35-457a-8d09-dee2b70c963c.json",
+ "type":"Canvas",
+ "label":"fol. 45v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/5b9ba09a-0e35-457a-8d09-dee2b70c963c.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/5b9ba09a-0e35-457a-8d09-dee2b70c963c.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/5b9ba09a-0e35-457a-8d09-dee2b70c963c",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/5b9ba09a-0e35-457a-8d09-dee2b70c963c"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/002d69f7-59ef-4041-8f9a-adbaf9356813.json",
+ "type":"Canvas",
+ "label":"fol. 46r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/002d69f7-59ef-4041-8f9a-adbaf9356813.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/002d69f7-59ef-4041-8f9a-adbaf9356813.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/002d69f7-59ef-4041-8f9a-adbaf9356813",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/002d69f7-59ef-4041-8f9a-adbaf9356813"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/86ad8b53-7f69-4d4c-9901-735d8e4018ff.json",
+ "type":"Canvas",
+ "label":"fol. 46v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/86ad8b53-7f69-4d4c-9901-735d8e4018ff.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/86ad8b53-7f69-4d4c-9901-735d8e4018ff.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/86ad8b53-7f69-4d4c-9901-735d8e4018ff",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/86ad8b53-7f69-4d4c-9901-735d8e4018ff"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c3bc794d-0c7c-4441-943c-558c14419744.json",
+ "type":"Canvas",
+ "label":"fol. 47r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/c3bc794d-0c7c-4441-943c-558c14419744.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c3bc794d-0c7c-4441-943c-558c14419744.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c3bc794d-0c7c-4441-943c-558c14419744",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c3bc794d-0c7c-4441-943c-558c14419744"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/817a8bd7-682b-460b-a557-fad28ea087ef.json",
+ "type":"Canvas",
+ "label":"fol. 47v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/817a8bd7-682b-460b-a557-fad28ea087ef.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/817a8bd7-682b-460b-a557-fad28ea087ef.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/817a8bd7-682b-460b-a557-fad28ea087ef",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/817a8bd7-682b-460b-a557-fad28ea087ef"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/864a5503-4607-419b-9100-554042f0a3d5.json",
+ "type":"Canvas",
+ "label":"fol. 48r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/864a5503-4607-419b-9100-554042f0a3d5.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/864a5503-4607-419b-9100-554042f0a3d5.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/864a5503-4607-419b-9100-554042f0a3d5",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/864a5503-4607-419b-9100-554042f0a3d5"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/631f053a-7f61-4b88-b1dd-cd4f9f132add.json",
+ "type":"Canvas",
+ "label":"fol. 48v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/631f053a-7f61-4b88-b1dd-cd4f9f132add.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/631f053a-7f61-4b88-b1dd-cd4f9f132add.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/631f053a-7f61-4b88-b1dd-cd4f9f132add",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/631f053a-7f61-4b88-b1dd-cd4f9f132add"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3939c458-ffb2-462c-bdad-b79afd08a886.json",
+ "type":"Canvas",
+ "label":"fol. 49r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/3939c458-ffb2-462c-bdad-b79afd08a886.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3939c458-ffb2-462c-bdad-b79afd08a886.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3939c458-ffb2-462c-bdad-b79afd08a886",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3939c458-ffb2-462c-bdad-b79afd08a886"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/828195f1-db38-409f-85d4-a9bc4815cf76.json",
+ "type":"Canvas",
+ "label":"fol. 49v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/828195f1-db38-409f-85d4-a9bc4815cf76.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/828195f1-db38-409f-85d4-a9bc4815cf76.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/828195f1-db38-409f-85d4-a9bc4815cf76",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/828195f1-db38-409f-85d4-a9bc4815cf76"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3d5401a0-972a-4c70-8ecf-72c526d32e64.json",
+ "type":"Canvas",
+ "label":"fol. 50r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/3d5401a0-972a-4c70-8ecf-72c526d32e64.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3d5401a0-972a-4c70-8ecf-72c526d32e64.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3d5401a0-972a-4c70-8ecf-72c526d32e64",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3d5401a0-972a-4c70-8ecf-72c526d32e64"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3c83884f-fb03-4afe-93a7-6eed4ec4f3ae.json",
+ "type":"Canvas",
+ "label":"fol. 50v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/3c83884f-fb03-4afe-93a7-6eed4ec4f3ae.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3c83884f-fb03-4afe-93a7-6eed4ec4f3ae.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3c83884f-fb03-4afe-93a7-6eed4ec4f3ae",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3c83884f-fb03-4afe-93a7-6eed4ec4f3ae"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f54aeaab-a9f7-4a1d-8bba-220a8cd66cf9.json",
+ "type":"Canvas",
+ "label":"fol. 51r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/f54aeaab-a9f7-4a1d-8bba-220a8cd66cf9.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f54aeaab-a9f7-4a1d-8bba-220a8cd66cf9.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f54aeaab-a9f7-4a1d-8bba-220a8cd66cf9",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f54aeaab-a9f7-4a1d-8bba-220a8cd66cf9"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/67ce0e3b-f56c-4520-8dd8-a4b5091e63d0.json",
+ "type":"Canvas",
+ "label":"fol. 51v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/67ce0e3b-f56c-4520-8dd8-a4b5091e63d0.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/67ce0e3b-f56c-4520-8dd8-a4b5091e63d0.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/67ce0e3b-f56c-4520-8dd8-a4b5091e63d0",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/67ce0e3b-f56c-4520-8dd8-a4b5091e63d0"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b072dc64-688a-4e49-b859-731bd90a4d51.json",
+ "type":"Canvas",
+ "label":"fol. 52r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/b072dc64-688a-4e49-b859-731bd90a4d51.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b072dc64-688a-4e49-b859-731bd90a4d51.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b072dc64-688a-4e49-b859-731bd90a4d51",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b072dc64-688a-4e49-b859-731bd90a4d51"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/a15c8cc6-0fde-4280-9c89-1b310442b4dc.json",
+ "type":"Canvas",
+ "label":"fol. 52v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/a15c8cc6-0fde-4280-9c89-1b310442b4dc.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/a15c8cc6-0fde-4280-9c89-1b310442b4dc.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/a15c8cc6-0fde-4280-9c89-1b310442b4dc",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/a15c8cc6-0fde-4280-9c89-1b310442b4dc"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f051b053-8038-4597-9fd1-6527c2b35520.json",
+ "type":"Canvas",
+ "label":"fol. 53r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/f051b053-8038-4597-9fd1-6527c2b35520.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f051b053-8038-4597-9fd1-6527c2b35520.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f051b053-8038-4597-9fd1-6527c2b35520",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f051b053-8038-4597-9fd1-6527c2b35520"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e3ea245a-2f0a-4dc1-b093-574c05d787db.json",
+ "type":"Canvas",
+ "label":"fol. 53v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/e3ea245a-2f0a-4dc1-b093-574c05d787db.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e3ea245a-2f0a-4dc1-b093-574c05d787db.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e3ea245a-2f0a-4dc1-b093-574c05d787db",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e3ea245a-2f0a-4dc1-b093-574c05d787db"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8bd5c5b5-c7ec-47b9-ae09-1773607f40a4.json",
+ "type":"Canvas",
+ "label":"fol. 54r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/8bd5c5b5-c7ec-47b9-ae09-1773607f40a4.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8bd5c5b5-c7ec-47b9-ae09-1773607f40a4.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8bd5c5b5-c7ec-47b9-ae09-1773607f40a4",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8bd5c5b5-c7ec-47b9-ae09-1773607f40a4"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/072d525b-7786-4cef-a926-7310e9591643.json",
+ "type":"Canvas",
+ "label":"fol. 54v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/072d525b-7786-4cef-a926-7310e9591643.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/072d525b-7786-4cef-a926-7310e9591643.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/072d525b-7786-4cef-a926-7310e9591643",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/072d525b-7786-4cef-a926-7310e9591643"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/50ccf679-a130-487b-b8e5-67692e39c374.json",
+ "type":"Canvas",
+ "label":"fol. 55r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/50ccf679-a130-487b-b8e5-67692e39c374.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/50ccf679-a130-487b-b8e5-67692e39c374.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/50ccf679-a130-487b-b8e5-67692e39c374",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/50ccf679-a130-487b-b8e5-67692e39c374"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8834ce15-64b6-4bfc-84c1-5752f7db0052.json",
+ "type":"Canvas",
+ "label":"fol. 55v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/8834ce15-64b6-4bfc-84c1-5752f7db0052.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8834ce15-64b6-4bfc-84c1-5752f7db0052.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8834ce15-64b6-4bfc-84c1-5752f7db0052",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8834ce15-64b6-4bfc-84c1-5752f7db0052"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/dbed7148-a143-42df-845d-50ddc24a6a1e.json",
+ "type":"Canvas",
+ "label":"fol. 56r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/dbed7148-a143-42df-845d-50ddc24a6a1e.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/dbed7148-a143-42df-845d-50ddc24a6a1e.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/dbed7148-a143-42df-845d-50ddc24a6a1e",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/dbed7148-a143-42df-845d-50ddc24a6a1e"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/fbeb4b2d-9999-4a56-9eb0-d947b060af1d.json",
+ "type":"Canvas",
+ "label":"fol. 56v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/fbeb4b2d-9999-4a56-9eb0-d947b060af1d.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/fbeb4b2d-9999-4a56-9eb0-d947b060af1d.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/fbeb4b2d-9999-4a56-9eb0-d947b060af1d",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/fbeb4b2d-9999-4a56-9eb0-d947b060af1d"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b09f7f92-cc26-4243-a272-f4006c025474.json",
+ "type":"Canvas",
+ "label":"fol. 57r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/b09f7f92-cc26-4243-a272-f4006c025474.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b09f7f92-cc26-4243-a272-f4006c025474.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b09f7f92-cc26-4243-a272-f4006c025474",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b09f7f92-cc26-4243-a272-f4006c025474"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9a6829ac-fdb8-447d-9cf9-5b12dea0ebdd.json",
+ "type":"Canvas",
+ "label":"fol. 57v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/9a6829ac-fdb8-447d-9cf9-5b12dea0ebdd.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9a6829ac-fdb8-447d-9cf9-5b12dea0ebdd.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9a6829ac-fdb8-447d-9cf9-5b12dea0ebdd",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9a6829ac-fdb8-447d-9cf9-5b12dea0ebdd"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e61c2399-5aa3-43e4-8b0c-f0af15ef9cff.json",
+ "type":"Canvas",
+ "label":"fol. 58r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/e61c2399-5aa3-43e4-8b0c-f0af15ef9cff.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e61c2399-5aa3-43e4-8b0c-f0af15ef9cff.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e61c2399-5aa3-43e4-8b0c-f0af15ef9cff",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e61c2399-5aa3-43e4-8b0c-f0af15ef9cff"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2638e9fc-e245-4473-b4b4-8c5dc322dba2.json",
+ "type":"Canvas",
+ "label":"fol. 58v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/2638e9fc-e245-4473-b4b4-8c5dc322dba2.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2638e9fc-e245-4473-b4b4-8c5dc322dba2.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/2638e9fc-e245-4473-b4b4-8c5dc322dba2",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/2638e9fc-e245-4473-b4b4-8c5dc322dba2"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/315767a2-b5bb-48aa-9c24-5dcc857a6bf5.json",
+ "type":"Canvas",
+ "label":"fol. 59r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/315767a2-b5bb-48aa-9c24-5dcc857a6bf5.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/315767a2-b5bb-48aa-9c24-5dcc857a6bf5.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/315767a2-b5bb-48aa-9c24-5dcc857a6bf5",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/315767a2-b5bb-48aa-9c24-5dcc857a6bf5"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7f32f88d-1f99-474f-94f3-2ef7103c0bb1.json",
+ "type":"Canvas",
+ "label":"fol. 59v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/7f32f88d-1f99-474f-94f3-2ef7103c0bb1.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7f32f88d-1f99-474f-94f3-2ef7103c0bb1.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/7f32f88d-1f99-474f-94f3-2ef7103c0bb1",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/7f32f88d-1f99-474f-94f3-2ef7103c0bb1"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/605f64f9-b78b-45d6-b86d-2b63c7f5dde1.json",
+ "type":"Canvas",
+ "label":"fol. 60r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/605f64f9-b78b-45d6-b86d-2b63c7f5dde1.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/605f64f9-b78b-45d6-b86d-2b63c7f5dde1.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/605f64f9-b78b-45d6-b86d-2b63c7f5dde1",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/605f64f9-b78b-45d6-b86d-2b63c7f5dde1"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6c88c045-18be-436b-903f-c71fb81c258d.json",
+ "type":"Canvas",
+ "label":"fol. 60v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/6c88c045-18be-436b-903f-c71fb81c258d.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6c88c045-18be-436b-903f-c71fb81c258d.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/6c88c045-18be-436b-903f-c71fb81c258d",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/6c88c045-18be-436b-903f-c71fb81c258d"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/56c1ff67-2f64-40da-a398-f6b109f14ece.json",
+ "type":"Canvas",
+ "label":"fol. 61r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/56c1ff67-2f64-40da-a398-f6b109f14ece.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/56c1ff67-2f64-40da-a398-f6b109f14ece.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/56c1ff67-2f64-40da-a398-f6b109f14ece",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/56c1ff67-2f64-40da-a398-f6b109f14ece"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/87ec8879-bf54-4725-819a-1adea76a2b15.json",
+ "type":"Canvas",
+ "label":"fol. 61v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/87ec8879-bf54-4725-819a-1adea76a2b15.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/87ec8879-bf54-4725-819a-1adea76a2b15.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/87ec8879-bf54-4725-819a-1adea76a2b15",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/87ec8879-bf54-4725-819a-1adea76a2b15"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ae6a9944-7eaf-49be-9aa8-8077906b2c7b.json",
+ "type":"Canvas",
+ "label":"fol. 62r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/ae6a9944-7eaf-49be-9aa8-8077906b2c7b.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ae6a9944-7eaf-49be-9aa8-8077906b2c7b.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/ae6a9944-7eaf-49be-9aa8-8077906b2c7b",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/ae6a9944-7eaf-49be-9aa8-8077906b2c7b"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/72ed5324-3b48-49ed-9367-2b317a90a25a.json",
+ "type":"Canvas",
+ "label":"fol. 62v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/72ed5324-3b48-49ed-9367-2b317a90a25a.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/72ed5324-3b48-49ed-9367-2b317a90a25a.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/72ed5324-3b48-49ed-9367-2b317a90a25a",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/72ed5324-3b48-49ed-9367-2b317a90a25a"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c90a2345-4ef1-466d-9ebe-a71c77a7d44d.json",
+ "type":"Canvas",
+ "label":"fol. 63r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/c90a2345-4ef1-466d-9ebe-a71c77a7d44d.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c90a2345-4ef1-466d-9ebe-a71c77a7d44d.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c90a2345-4ef1-466d-9ebe-a71c77a7d44d",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c90a2345-4ef1-466d-9ebe-a71c77a7d44d"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/40dc6af1-8dd1-4005-85cc-cda5ced4ac38.json",
+ "type":"Canvas",
+ "label":"fol. 63v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/40dc6af1-8dd1-4005-85cc-cda5ced4ac38.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/40dc6af1-8dd1-4005-85cc-cda5ced4ac38.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/40dc6af1-8dd1-4005-85cc-cda5ced4ac38",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/40dc6af1-8dd1-4005-85cc-cda5ced4ac38"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/296a75e3-df33-4479-9b9f-ee09b474dbc3.json",
+ "type":"Canvas",
+ "label":"fol. 64r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/296a75e3-df33-4479-9b9f-ee09b474dbc3.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/296a75e3-df33-4479-9b9f-ee09b474dbc3.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/296a75e3-df33-4479-9b9f-ee09b474dbc3",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/296a75e3-df33-4479-9b9f-ee09b474dbc3"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d78869d4-5826-4ba1-8fb5-8f5b6a6af8ce.json",
+ "type":"Canvas",
+ "label":"fol. 64v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/d78869d4-5826-4ba1-8fb5-8f5b6a6af8ce.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d78869d4-5826-4ba1-8fb5-8f5b6a6af8ce.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d78869d4-5826-4ba1-8fb5-8f5b6a6af8ce",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d78869d4-5826-4ba1-8fb5-8f5b6a6af8ce"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/528e1542-160b-4629-a996-a762975ff81b.json",
+ "type":"Canvas",
+ "label":"fol. 65r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/528e1542-160b-4629-a996-a762975ff81b.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/528e1542-160b-4629-a996-a762975ff81b.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/528e1542-160b-4629-a996-a762975ff81b",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/528e1542-160b-4629-a996-a762975ff81b"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/252d22ad-bacb-4b4f-b24c-5fee273d5fde.json",
+ "type":"Canvas",
+ "label":"fol. 65v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/252d22ad-bacb-4b4f-b24c-5fee273d5fde.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/252d22ad-bacb-4b4f-b24c-5fee273d5fde.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/252d22ad-bacb-4b4f-b24c-5fee273d5fde",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/252d22ad-bacb-4b4f-b24c-5fee273d5fde"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/641514b6-cfa5-4ba7-8c01-0f7ebe9de86a.json",
+ "type":"Canvas",
+ "label":"fol. 66r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/641514b6-cfa5-4ba7-8c01-0f7ebe9de86a.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/641514b6-cfa5-4ba7-8c01-0f7ebe9de86a.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/641514b6-cfa5-4ba7-8c01-0f7ebe9de86a",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/641514b6-cfa5-4ba7-8c01-0f7ebe9de86a"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c5dfb7bf-7ecc-4972-96ea-8e7aacd45917.json",
+ "type":"Canvas",
+ "label":"fol. 66v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/c5dfb7bf-7ecc-4972-96ea-8e7aacd45917.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c5dfb7bf-7ecc-4972-96ea-8e7aacd45917.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c5dfb7bf-7ecc-4972-96ea-8e7aacd45917",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c5dfb7bf-7ecc-4972-96ea-8e7aacd45917"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/60776fee-60e7-4088-9c3b-a02ede2da030.json",
+ "type":"Canvas",
+ "label":"fol. 67r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/60776fee-60e7-4088-9c3b-a02ede2da030.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/60776fee-60e7-4088-9c3b-a02ede2da030.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/60776fee-60e7-4088-9c3b-a02ede2da030",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/60776fee-60e7-4088-9c3b-a02ede2da030"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7e352491-a25c-4be2-8cd1-6fba09c738dd.json",
+ "type":"Canvas",
+ "label":"fol. 67v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/7e352491-a25c-4be2-8cd1-6fba09c738dd.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7e352491-a25c-4be2-8cd1-6fba09c738dd.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/7e352491-a25c-4be2-8cd1-6fba09c738dd",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/7e352491-a25c-4be2-8cd1-6fba09c738dd"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4ed20c7c-41f7-479b-a3fe-d57305dd5671.json",
+ "type":"Canvas",
+ "label":"fol. 68r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/4ed20c7c-41f7-479b-a3fe-d57305dd5671.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4ed20c7c-41f7-479b-a3fe-d57305dd5671.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/4ed20c7c-41f7-479b-a3fe-d57305dd5671",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/4ed20c7c-41f7-479b-a3fe-d57305dd5671"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/93d0760f-5d3d-432f-9e2c-aef63fe10633.json",
+ "type":"Canvas",
+ "label":"fol. 68v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/93d0760f-5d3d-432f-9e2c-aef63fe10633.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/93d0760f-5d3d-432f-9e2c-aef63fe10633.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/93d0760f-5d3d-432f-9e2c-aef63fe10633",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/93d0760f-5d3d-432f-9e2c-aef63fe10633"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0de84d4b-e360-4757-bdf1-49038423c1d2.json",
+ "type":"Canvas",
+ "label":"fol. 69r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/0de84d4b-e360-4757-bdf1-49038423c1d2.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0de84d4b-e360-4757-bdf1-49038423c1d2.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/0de84d4b-e360-4757-bdf1-49038423c1d2",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/0de84d4b-e360-4757-bdf1-49038423c1d2"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/de794763-67eb-4698-af46-c0f4e567890b.json",
+ "type":"Canvas",
+ "label":"fol. 69v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/de794763-67eb-4698-af46-c0f4e567890b.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/de794763-67eb-4698-af46-c0f4e567890b.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/de794763-67eb-4698-af46-c0f4e567890b",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/de794763-67eb-4698-af46-c0f4e567890b"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0c8697b3-cc9d-4065-a157-ba66c34cbc8e.json",
+ "type":"Canvas",
+ "label":"fol. 70r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/0c8697b3-cc9d-4065-a157-ba66c34cbc8e.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0c8697b3-cc9d-4065-a157-ba66c34cbc8e.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/0c8697b3-cc9d-4065-a157-ba66c34cbc8e",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/0c8697b3-cc9d-4065-a157-ba66c34cbc8e"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/eaaae3c3-f5d0-4afd-b66f-8fb6307b9035.json",
+ "type":"Canvas",
+ "label":"fol. 70v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/eaaae3c3-f5d0-4afd-b66f-8fb6307b9035.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/eaaae3c3-f5d0-4afd-b66f-8fb6307b9035.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/eaaae3c3-f5d0-4afd-b66f-8fb6307b9035",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/eaaae3c3-f5d0-4afd-b66f-8fb6307b9035"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/82a6c26b-d7af-4b21-b21d-ec12748eff60.json",
+ "type":"Canvas",
+ "label":"fol. 71r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/82a6c26b-d7af-4b21-b21d-ec12748eff60.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/82a6c26b-d7af-4b21-b21d-ec12748eff60.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/82a6c26b-d7af-4b21-b21d-ec12748eff60",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/82a6c26b-d7af-4b21-b21d-ec12748eff60"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6fb1efde-087d-4dfe-9fc1-19011160b7d9.json",
+ "type":"Canvas",
+ "label":"fol. 71v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/6fb1efde-087d-4dfe-9fc1-19011160b7d9.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6fb1efde-087d-4dfe-9fc1-19011160b7d9.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/6fb1efde-087d-4dfe-9fc1-19011160b7d9",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/6fb1efde-087d-4dfe-9fc1-19011160b7d9"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6d845d20-3447-4375-9463-d887885b4f73.json",
+ "type":"Canvas",
+ "label":"fol. 72r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/6d845d20-3447-4375-9463-d887885b4f73.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6d845d20-3447-4375-9463-d887885b4f73.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/6d845d20-3447-4375-9463-d887885b4f73",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/6d845d20-3447-4375-9463-d887885b4f73"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9e6fe00c-e3b3-4671-a9ea-3ef86551e992.json",
+ "type":"Canvas",
+ "label":"fol. 72v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/9e6fe00c-e3b3-4671-a9ea-3ef86551e992.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9e6fe00c-e3b3-4671-a9ea-3ef86551e992.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9e6fe00c-e3b3-4671-a9ea-3ef86551e992",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9e6fe00c-e3b3-4671-a9ea-3ef86551e992"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/a735a4a8-1bb7-43fb-8a4c-7226bb4d69b3.json",
+ "type":"Canvas",
+ "label":"fol. 73r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/a735a4a8-1bb7-43fb-8a4c-7226bb4d69b3.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/a735a4a8-1bb7-43fb-8a4c-7226bb4d69b3.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/a735a4a8-1bb7-43fb-8a4c-7226bb4d69b3",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/a735a4a8-1bb7-43fb-8a4c-7226bb4d69b3"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/449ffe7d-83cc-44e5-84de-8369813f587d.json",
+ "type":"Canvas",
+ "label":"fol. 73v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/449ffe7d-83cc-44e5-84de-8369813f587d.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/449ffe7d-83cc-44e5-84de-8369813f587d.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/449ffe7d-83cc-44e5-84de-8369813f587d",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/449ffe7d-83cc-44e5-84de-8369813f587d"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8a7853c4-2495-4c42-b919-350aa8c1c034.json",
+ "type":"Canvas",
+ "label":"fol. 74r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/8a7853c4-2495-4c42-b919-350aa8c1c034.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8a7853c4-2495-4c42-b919-350aa8c1c034.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8a7853c4-2495-4c42-b919-350aa8c1c034",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8a7853c4-2495-4c42-b919-350aa8c1c034"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/81c7a3ff-7823-4ef5-98db-2528d340c4d6.json",
+ "type":"Canvas",
+ "label":"fol. 74v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/81c7a3ff-7823-4ef5-98db-2528d340c4d6.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/81c7a3ff-7823-4ef5-98db-2528d340c4d6.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/81c7a3ff-7823-4ef5-98db-2528d340c4d6",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/81c7a3ff-7823-4ef5-98db-2528d340c4d6"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b8bc5388-495f-4039-a40a-a00da316c0f8.json",
+ "type":"Canvas",
+ "label":"fol. 75r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/b8bc5388-495f-4039-a40a-a00da316c0f8.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b8bc5388-495f-4039-a40a-a00da316c0f8.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b8bc5388-495f-4039-a40a-a00da316c0f8",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b8bc5388-495f-4039-a40a-a00da316c0f8"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/39b3ba3e-75bd-4ccb-84ea-c74abbf6fa99.json",
+ "type":"Canvas",
+ "label":"fol. 75v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/39b3ba3e-75bd-4ccb-84ea-c74abbf6fa99.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/39b3ba3e-75bd-4ccb-84ea-c74abbf6fa99.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/39b3ba3e-75bd-4ccb-84ea-c74abbf6fa99",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/39b3ba3e-75bd-4ccb-84ea-c74abbf6fa99"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ed38fbc0-bc15-4560-bc78-6d0d64ef331f.json",
+ "type":"Canvas",
+ "label":"fol. 76r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/ed38fbc0-bc15-4560-bc78-6d0d64ef331f.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ed38fbc0-bc15-4560-bc78-6d0d64ef331f.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/ed38fbc0-bc15-4560-bc78-6d0d64ef331f",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/ed38fbc0-bc15-4560-bc78-6d0d64ef331f"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/fdb3753b-1afc-4268-9dec-f5c53c32ab5a.json",
+ "type":"Canvas",
+ "label":"fol. 76v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/fdb3753b-1afc-4268-9dec-f5c53c32ab5a.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/fdb3753b-1afc-4268-9dec-f5c53c32ab5a.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/fdb3753b-1afc-4268-9dec-f5c53c32ab5a",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/fdb3753b-1afc-4268-9dec-f5c53c32ab5a"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/70de0918-de25-4be2-9f0e-944e95b76dff.json",
+ "type":"Canvas",
+ "label":"fol. 77r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/70de0918-de25-4be2-9f0e-944e95b76dff.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/70de0918-de25-4be2-9f0e-944e95b76dff.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/70de0918-de25-4be2-9f0e-944e95b76dff",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/70de0918-de25-4be2-9f0e-944e95b76dff"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/10e3c88e-ade0-4899-876e-b4315464d5cd.json",
+ "type":"Canvas",
+ "label":"fol. 77v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/10e3c88e-ade0-4899-876e-b4315464d5cd.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/10e3c88e-ade0-4899-876e-b4315464d5cd.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/10e3c88e-ade0-4899-876e-b4315464d5cd",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/10e3c88e-ade0-4899-876e-b4315464d5cd"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e5d5a720-e8fb-4460-9f64-eaa281f0257a.json",
+ "type":"Canvas",
+ "label":"fol. 78r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/e5d5a720-e8fb-4460-9f64-eaa281f0257a.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e5d5a720-e8fb-4460-9f64-eaa281f0257a.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e5d5a720-e8fb-4460-9f64-eaa281f0257a",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e5d5a720-e8fb-4460-9f64-eaa281f0257a"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d4f7e156-194a-4bf6-b319-35d8ea02eba4.json",
+ "type":"Canvas",
+ "label":"fol. 78v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/d4f7e156-194a-4bf6-b319-35d8ea02eba4.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d4f7e156-194a-4bf6-b319-35d8ea02eba4.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d4f7e156-194a-4bf6-b319-35d8ea02eba4",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d4f7e156-194a-4bf6-b319-35d8ea02eba4"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/95c4b7c9-02a5-4a6b-b9ef-a5be43fbe347.json",
+ "type":"Canvas",
+ "label":"fol. 79r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/95c4b7c9-02a5-4a6b-b9ef-a5be43fbe347.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/95c4b7c9-02a5-4a6b-b9ef-a5be43fbe347.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/95c4b7c9-02a5-4a6b-b9ef-a5be43fbe347",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/95c4b7c9-02a5-4a6b-b9ef-a5be43fbe347"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/dbb721b5-6560-4bc2-b27d-5d8f77ac1e9c.json",
+ "type":"Canvas",
+ "label":"fol. 79v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/dbb721b5-6560-4bc2-b27d-5d8f77ac1e9c.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/dbb721b5-6560-4bc2-b27d-5d8f77ac1e9c.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/dbb721b5-6560-4bc2-b27d-5d8f77ac1e9c",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/dbb721b5-6560-4bc2-b27d-5d8f77ac1e9c"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1aace697-14f2-4974-b489-ff20c2bc0bb9.json",
+ "type":"Canvas",
+ "label":"fol. 80r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/1aace697-14f2-4974-b489-ff20c2bc0bb9.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1aace697-14f2-4974-b489-ff20c2bc0bb9.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/1aace697-14f2-4974-b489-ff20c2bc0bb9",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/1aace697-14f2-4974-b489-ff20c2bc0bb9"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/270f9593-83ef-4e8b-b634-eb9ca14ce1c8.json",
+ "type":"Canvas",
+ "label":"fol. 80v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/270f9593-83ef-4e8b-b634-eb9ca14ce1c8.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/270f9593-83ef-4e8b-b634-eb9ca14ce1c8.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/270f9593-83ef-4e8b-b634-eb9ca14ce1c8",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/270f9593-83ef-4e8b-b634-eb9ca14ce1c8"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/321036ea-3ffc-4a98-8503-422eb42014b6.json",
+ "type":"Canvas",
+ "label":"fol. 81r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/321036ea-3ffc-4a98-8503-422eb42014b6.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/321036ea-3ffc-4a98-8503-422eb42014b6.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/321036ea-3ffc-4a98-8503-422eb42014b6",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/321036ea-3ffc-4a98-8503-422eb42014b6"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2cdf49da-90c3-42da-85bf-f93018377520.json",
+ "type":"Canvas",
+ "label":"fol. 81v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/2cdf49da-90c3-42da-85bf-f93018377520.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2cdf49da-90c3-42da-85bf-f93018377520.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/2cdf49da-90c3-42da-85bf-f93018377520",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/2cdf49da-90c3-42da-85bf-f93018377520"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f8a775d6-a450-470b-b182-a5ad71e64daa.json",
+ "type":"Canvas",
+ "label":"fol. 82r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/f8a775d6-a450-470b-b182-a5ad71e64daa.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f8a775d6-a450-470b-b182-a5ad71e64daa.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f8a775d6-a450-470b-b182-a5ad71e64daa",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f8a775d6-a450-470b-b182-a5ad71e64daa"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/19cfe12a-1bc4-43c6-b762-22bcf57aa766.json",
+ "type":"Canvas",
+ "label":"fol. 82v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/19cfe12a-1bc4-43c6-b762-22bcf57aa766.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/19cfe12a-1bc4-43c6-b762-22bcf57aa766.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/19cfe12a-1bc4-43c6-b762-22bcf57aa766",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/19cfe12a-1bc4-43c6-b762-22bcf57aa766"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4faae3b8-e03c-48d4-9798-18f0132f05f2.json",
+ "type":"Canvas",
+ "label":"fol. 83r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/4faae3b8-e03c-48d4-9798-18f0132f05f2.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4faae3b8-e03c-48d4-9798-18f0132f05f2.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/4faae3b8-e03c-48d4-9798-18f0132f05f2",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/4faae3b8-e03c-48d4-9798-18f0132f05f2"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e8c4fea9-8cdb-421a-bcd6-d6f8578eba0c.json",
+ "type":"Canvas",
+ "label":"fol. 83v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/e8c4fea9-8cdb-421a-bcd6-d6f8578eba0c.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e8c4fea9-8cdb-421a-bcd6-d6f8578eba0c.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e8c4fea9-8cdb-421a-bcd6-d6f8578eba0c",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e8c4fea9-8cdb-421a-bcd6-d6f8578eba0c"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f07819e6-3d24-47ca-8b6e-b2346415e69e.json",
+ "type":"Canvas",
+ "label":"fol. 84r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/f07819e6-3d24-47ca-8b6e-b2346415e69e.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f07819e6-3d24-47ca-8b6e-b2346415e69e.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f07819e6-3d24-47ca-8b6e-b2346415e69e",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f07819e6-3d24-47ca-8b6e-b2346415e69e"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/610bd1c7-2d25-4427-85b2-a6e3be102dd7.json",
+ "type":"Canvas",
+ "label":"fol. 84v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/610bd1c7-2d25-4427-85b2-a6e3be102dd7.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/610bd1c7-2d25-4427-85b2-a6e3be102dd7.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/610bd1c7-2d25-4427-85b2-a6e3be102dd7",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/610bd1c7-2d25-4427-85b2-a6e3be102dd7"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/59a241b8-a622-40c5-a583-64e49e392a14.json",
+ "type":"Canvas",
+ "label":"fol. 85r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/59a241b8-a622-40c5-a583-64e49e392a14.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/59a241b8-a622-40c5-a583-64e49e392a14.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/59a241b8-a622-40c5-a583-64e49e392a14",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/59a241b8-a622-40c5-a583-64e49e392a14"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/73ba5533-40d4-4052-aef6-0106082ec70a.json",
+ "type":"Canvas",
+ "label":"fol. 85v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/73ba5533-40d4-4052-aef6-0106082ec70a.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/73ba5533-40d4-4052-aef6-0106082ec70a.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/73ba5533-40d4-4052-aef6-0106082ec70a",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/73ba5533-40d4-4052-aef6-0106082ec70a"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/734f98e0-a8ec-4a96-8b3e-c79613c57450.json",
+ "type":"Canvas",
+ "label":"fol. 86r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/734f98e0-a8ec-4a96-8b3e-c79613c57450.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/734f98e0-a8ec-4a96-8b3e-c79613c57450.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/734f98e0-a8ec-4a96-8b3e-c79613c57450",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/734f98e0-a8ec-4a96-8b3e-c79613c57450"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2294268c-519c-4934-9632-6bfd4081cdc3.json",
+ "type":"Canvas",
+ "label":"fol. 86v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/2294268c-519c-4934-9632-6bfd4081cdc3.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2294268c-519c-4934-9632-6bfd4081cdc3.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/2294268c-519c-4934-9632-6bfd4081cdc3",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/2294268c-519c-4934-9632-6bfd4081cdc3"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/011de259-954d-41a7-8547-6c8bc787de34.json",
+ "type":"Canvas",
+ "label":"fol. 87r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/011de259-954d-41a7-8547-6c8bc787de34.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/011de259-954d-41a7-8547-6c8bc787de34.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/011de259-954d-41a7-8547-6c8bc787de34",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/011de259-954d-41a7-8547-6c8bc787de34"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/311f851d-b95d-4448-a3ad-178d6cbd0f10.json",
+ "type":"Canvas",
+ "label":"fol. 87v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/311f851d-b95d-4448-a3ad-178d6cbd0f10.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/311f851d-b95d-4448-a3ad-178d6cbd0f10.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/311f851d-b95d-4448-a3ad-178d6cbd0f10",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/311f851d-b95d-4448-a3ad-178d6cbd0f10"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/71a8bd5d-68e0-4b13-b254-498fafe4c7c8.json",
+ "type":"Canvas",
+ "label":"fol. 88r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/71a8bd5d-68e0-4b13-b254-498fafe4c7c8.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/71a8bd5d-68e0-4b13-b254-498fafe4c7c8.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/71a8bd5d-68e0-4b13-b254-498fafe4c7c8",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/71a8bd5d-68e0-4b13-b254-498fafe4c7c8"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1ebd1573-06c7-406b-aef7-7e3ad373b79a.json",
+ "type":"Canvas",
+ "label":"fol. 88v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/1ebd1573-06c7-406b-aef7-7e3ad373b79a.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1ebd1573-06c7-406b-aef7-7e3ad373b79a.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/1ebd1573-06c7-406b-aef7-7e3ad373b79a",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/1ebd1573-06c7-406b-aef7-7e3ad373b79a"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/dc787d96-3b32-453c-84bf-a5866b3daeaa.json",
+ "type":"Canvas",
+ "label":"fol. 89r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/dc787d96-3b32-453c-84bf-a5866b3daeaa.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/dc787d96-3b32-453c-84bf-a5866b3daeaa.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/dc787d96-3b32-453c-84bf-a5866b3daeaa",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/dc787d96-3b32-453c-84bf-a5866b3daeaa"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/72f24244-c4c4-4412-ae03-a875af6804fd.json",
+ "type":"Canvas",
+ "label":"fol. 89v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/72f24244-c4c4-4412-ae03-a875af6804fd.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/72f24244-c4c4-4412-ae03-a875af6804fd.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/72f24244-c4c4-4412-ae03-a875af6804fd",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/72f24244-c4c4-4412-ae03-a875af6804fd"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8dbd3588-c816-44b2-a9ae-493a7c670dd5.json",
+ "type":"Canvas",
+ "label":"fol. 90r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/8dbd3588-c816-44b2-a9ae-493a7c670dd5.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8dbd3588-c816-44b2-a9ae-493a7c670dd5.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8dbd3588-c816-44b2-a9ae-493a7c670dd5",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8dbd3588-c816-44b2-a9ae-493a7c670dd5"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/dc1afcf9-a994-4bb8-8d4f-be30648a7012.json",
+ "type":"Canvas",
+ "label":"fol. 90v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/dc1afcf9-a994-4bb8-8d4f-be30648a7012.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/dc1afcf9-a994-4bb8-8d4f-be30648a7012.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/dc1afcf9-a994-4bb8-8d4f-be30648a7012",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/dc1afcf9-a994-4bb8-8d4f-be30648a7012"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b8ed8a0e-9dd9-418c-956a-5d69388ec3d9.json",
+ "type":"Canvas",
+ "label":"fol. 91r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/b8ed8a0e-9dd9-418c-956a-5d69388ec3d9.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b8ed8a0e-9dd9-418c-956a-5d69388ec3d9.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b8ed8a0e-9dd9-418c-956a-5d69388ec3d9",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b8ed8a0e-9dd9-418c-956a-5d69388ec3d9"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/338aca83-53c7-4d3c-acfb-6d5535a8d13d.json",
+ "type":"Canvas",
+ "label":"fol. 91v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/338aca83-53c7-4d3c-acfb-6d5535a8d13d.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/338aca83-53c7-4d3c-acfb-6d5535a8d13d.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/338aca83-53c7-4d3c-acfb-6d5535a8d13d",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/338aca83-53c7-4d3c-acfb-6d5535a8d13d"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e82fef84-c9ca-488a-af51-95c3e44a72fa.json",
+ "type":"Canvas",
+ "label":"fol. 92r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/e82fef84-c9ca-488a-af51-95c3e44a72fa.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e82fef84-c9ca-488a-af51-95c3e44a72fa.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e82fef84-c9ca-488a-af51-95c3e44a72fa",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e82fef84-c9ca-488a-af51-95c3e44a72fa"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9f4aa883-6666-4885-b1d0-f42396adaf63.json",
+ "type":"Canvas",
+ "label":"fol. 92v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/9f4aa883-6666-4885-b1d0-f42396adaf63.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9f4aa883-6666-4885-b1d0-f42396adaf63.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9f4aa883-6666-4885-b1d0-f42396adaf63",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9f4aa883-6666-4885-b1d0-f42396adaf63"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/bdefccbf-adcd-4661-9e59-22ddb0790a09.json",
+ "type":"Canvas",
+ "label":"fol. 93r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/bdefccbf-adcd-4661-9e59-22ddb0790a09.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/bdefccbf-adcd-4661-9e59-22ddb0790a09.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/bdefccbf-adcd-4661-9e59-22ddb0790a09",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/bdefccbf-adcd-4661-9e59-22ddb0790a09"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0da8b79a-337a-4b10-8c3c-1320ebeac504.json",
+ "type":"Canvas",
+ "label":"fol. 93v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/0da8b79a-337a-4b10-8c3c-1320ebeac504.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0da8b79a-337a-4b10-8c3c-1320ebeac504.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/0da8b79a-337a-4b10-8c3c-1320ebeac504",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/0da8b79a-337a-4b10-8c3c-1320ebeac504"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/909e6e80-14e1-46f6-80a8-be6473fd92aa.json",
+ "type":"Canvas",
+ "label":"fol. 94r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/909e6e80-14e1-46f6-80a8-be6473fd92aa.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/909e6e80-14e1-46f6-80a8-be6473fd92aa.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/909e6e80-14e1-46f6-80a8-be6473fd92aa",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/909e6e80-14e1-46f6-80a8-be6473fd92aa"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/58e1398d-e1ce-40de-b3a0-3b9ce41d7743.json",
+ "type":"Canvas",
+ "label":"fol. 94v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/58e1398d-e1ce-40de-b3a0-3b9ce41d7743.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/58e1398d-e1ce-40de-b3a0-3b9ce41d7743.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/58e1398d-e1ce-40de-b3a0-3b9ce41d7743",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/58e1398d-e1ce-40de-b3a0-3b9ce41d7743"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/10a62100-b8f7-4218-9f72-b9502a65d03d.json",
+ "type":"Canvas",
+ "label":"fol. 95r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/10a62100-b8f7-4218-9f72-b9502a65d03d.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/10a62100-b8f7-4218-9f72-b9502a65d03d.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/10a62100-b8f7-4218-9f72-b9502a65d03d",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/10a62100-b8f7-4218-9f72-b9502a65d03d"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/81fbdbd5-5037-4ffe-83c7-2ed9a3975862.json",
+ "type":"Canvas",
+ "label":"fol. 95v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/81fbdbd5-5037-4ffe-83c7-2ed9a3975862.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/81fbdbd5-5037-4ffe-83c7-2ed9a3975862.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/81fbdbd5-5037-4ffe-83c7-2ed9a3975862",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/81fbdbd5-5037-4ffe-83c7-2ed9a3975862"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/73b87193-d7b9-4fe2-a622-d23be53c16fa.json",
+ "type":"Canvas",
+ "label":"fol. 96r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/73b87193-d7b9-4fe2-a622-d23be53c16fa.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/73b87193-d7b9-4fe2-a622-d23be53c16fa.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/73b87193-d7b9-4fe2-a622-d23be53c16fa",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/73b87193-d7b9-4fe2-a622-d23be53c16fa"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/25ba941c-203b-44f1-8351-63a6ff316a2b.json",
+ "type":"Canvas",
+ "label":"fol. 96v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/25ba941c-203b-44f1-8351-63a6ff316a2b.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/25ba941c-203b-44f1-8351-63a6ff316a2b.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/25ba941c-203b-44f1-8351-63a6ff316a2b",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/25ba941c-203b-44f1-8351-63a6ff316a2b"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/5cd1bc3b-7923-4c30-a55c-4dc5f75de0ab.json",
+ "type":"Canvas",
+ "label":"fol. 97r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/5cd1bc3b-7923-4c30-a55c-4dc5f75de0ab.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/5cd1bc3b-7923-4c30-a55c-4dc5f75de0ab.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/5cd1bc3b-7923-4c30-a55c-4dc5f75de0ab",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/5cd1bc3b-7923-4c30-a55c-4dc5f75de0ab"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c7683ba6-129b-4313-a636-f87c35f07125.json",
+ "type":"Canvas",
+ "label":"fol. 97v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/c7683ba6-129b-4313-a636-f87c35f07125.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c7683ba6-129b-4313-a636-f87c35f07125.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c7683ba6-129b-4313-a636-f87c35f07125",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c7683ba6-129b-4313-a636-f87c35f07125"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/60d5d2b9-9d5b-427c-b974-24d5f47695e2.json",
+ "type":"Canvas",
+ "label":"fol. 98r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/60d5d2b9-9d5b-427c-b974-24d5f47695e2.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/60d5d2b9-9d5b-427c-b974-24d5f47695e2.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/60d5d2b9-9d5b-427c-b974-24d5f47695e2",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/60d5d2b9-9d5b-427c-b974-24d5f47695e2"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8b8faf36-5e38-424f-907a-d7fb87e9c9ec.json",
+ "type":"Canvas",
+ "label":"fol. 98v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/8b8faf36-5e38-424f-907a-d7fb87e9c9ec.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8b8faf36-5e38-424f-907a-d7fb87e9c9ec.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8b8faf36-5e38-424f-907a-d7fb87e9c9ec",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8b8faf36-5e38-424f-907a-d7fb87e9c9ec"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2e4fb49d-b308-4371-8d29-c078d8c52821.json",
+ "type":"Canvas",
+ "label":"fol. 99r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/2e4fb49d-b308-4371-8d29-c078d8c52821.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2e4fb49d-b308-4371-8d29-c078d8c52821.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/2e4fb49d-b308-4371-8d29-c078d8c52821",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/2e4fb49d-b308-4371-8d29-c078d8c52821"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f2c4d1cf-5a79-4363-b9dc-6a72bcbb34a6.json",
+ "type":"Canvas",
+ "label":"fol. 99v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/f2c4d1cf-5a79-4363-b9dc-6a72bcbb34a6.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f2c4d1cf-5a79-4363-b9dc-6a72bcbb34a6.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f2c4d1cf-5a79-4363-b9dc-6a72bcbb34a6",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f2c4d1cf-5a79-4363-b9dc-6a72bcbb34a6"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/96b61d35-3386-4be4-8b9f-a5fc4ce9f839.json",
+ "type":"Canvas",
+ "label":"fol. 100r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/96b61d35-3386-4be4-8b9f-a5fc4ce9f839.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/96b61d35-3386-4be4-8b9f-a5fc4ce9f839.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/96b61d35-3386-4be4-8b9f-a5fc4ce9f839",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/96b61d35-3386-4be4-8b9f-a5fc4ce9f839"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d3a65fd0-dbeb-4186-b803-b7e23fef65a4.json",
+ "type":"Canvas",
+ "label":"fol. 100v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/d3a65fd0-dbeb-4186-b803-b7e23fef65a4.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d3a65fd0-dbeb-4186-b803-b7e23fef65a4.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d3a65fd0-dbeb-4186-b803-b7e23fef65a4",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d3a65fd0-dbeb-4186-b803-b7e23fef65a4"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ce4c8ceb-fae7-4d37-ba19-39a273d776e8.json",
+ "type":"Canvas",
+ "label":"fol. 101r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/ce4c8ceb-fae7-4d37-ba19-39a273d776e8.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ce4c8ceb-fae7-4d37-ba19-39a273d776e8.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/ce4c8ceb-fae7-4d37-ba19-39a273d776e8",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/ce4c8ceb-fae7-4d37-ba19-39a273d776e8"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/827cb250-d945-4791-980a-a5f5e99d710e.json",
+ "type":"Canvas",
+ "label":"fol. 101v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/827cb250-d945-4791-980a-a5f5e99d710e.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/827cb250-d945-4791-980a-a5f5e99d710e.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/827cb250-d945-4791-980a-a5f5e99d710e",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/827cb250-d945-4791-980a-a5f5e99d710e"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/a8bdeafe-3a3c-4ca8-b93f-08c40cf5b15f.json",
+ "type":"Canvas",
+ "label":"fol. 102r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/a8bdeafe-3a3c-4ca8-b93f-08c40cf5b15f.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/a8bdeafe-3a3c-4ca8-b93f-08c40cf5b15f.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/a8bdeafe-3a3c-4ca8-b93f-08c40cf5b15f",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/a8bdeafe-3a3c-4ca8-b93f-08c40cf5b15f"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/415103aa-24a7-4dfa-b8ee-db7b434e344b.json",
+ "type":"Canvas",
+ "label":"fol. 102v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/415103aa-24a7-4dfa-b8ee-db7b434e344b.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/415103aa-24a7-4dfa-b8ee-db7b434e344b.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/415103aa-24a7-4dfa-b8ee-db7b434e344b",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/415103aa-24a7-4dfa-b8ee-db7b434e344b"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3c45b0fe-d515-4502-bad0-e6b22983b0e4.json",
+ "type":"Canvas",
+ "label":"fol. 103r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/3c45b0fe-d515-4502-bad0-e6b22983b0e4.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3c45b0fe-d515-4502-bad0-e6b22983b0e4.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3c45b0fe-d515-4502-bad0-e6b22983b0e4",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3c45b0fe-d515-4502-bad0-e6b22983b0e4"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c534af33-1766-47ca-a7a2-545a95ada414.json",
+ "type":"Canvas",
+ "label":"fol. 103v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/c534af33-1766-47ca-a7a2-545a95ada414.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c534af33-1766-47ca-a7a2-545a95ada414.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c534af33-1766-47ca-a7a2-545a95ada414",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c534af33-1766-47ca-a7a2-545a95ada414"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1c94e516-3e0f-4ceb-981c-3396cba302ae.json",
+ "type":"Canvas",
+ "label":"fol. 104r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/1c94e516-3e0f-4ceb-981c-3396cba302ae.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1c94e516-3e0f-4ceb-981c-3396cba302ae.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/1c94e516-3e0f-4ceb-981c-3396cba302ae",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/1c94e516-3e0f-4ceb-981c-3396cba302ae"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4353d4b7-0b57-4e37-92d5-d6f8337f431a.json",
+ "type":"Canvas",
+ "label":"fol. 104v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/4353d4b7-0b57-4e37-92d5-d6f8337f431a.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4353d4b7-0b57-4e37-92d5-d6f8337f431a.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/4353d4b7-0b57-4e37-92d5-d6f8337f431a",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/4353d4b7-0b57-4e37-92d5-d6f8337f431a"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c48b09d7-2f41-4e5f-bc1b-d59407e1df87.json",
+ "type":"Canvas",
+ "label":"fol. 105r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/c48b09d7-2f41-4e5f-bc1b-d59407e1df87.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c48b09d7-2f41-4e5f-bc1b-d59407e1df87.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c48b09d7-2f41-4e5f-bc1b-d59407e1df87",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c48b09d7-2f41-4e5f-bc1b-d59407e1df87"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7bc09117-fe22-472e-8d9c-1a120f649530.json",
+ "type":"Canvas",
+ "label":"fol. 105v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/7bc09117-fe22-472e-8d9c-1a120f649530.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7bc09117-fe22-472e-8d9c-1a120f649530.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/7bc09117-fe22-472e-8d9c-1a120f649530",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/7bc09117-fe22-472e-8d9c-1a120f649530"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8249bbe0-b4e2-4ce0-a73f-649dcf343cad.json",
+ "type":"Canvas",
+ "label":"fol. 106r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/8249bbe0-b4e2-4ce0-a73f-649dcf343cad.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8249bbe0-b4e2-4ce0-a73f-649dcf343cad.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8249bbe0-b4e2-4ce0-a73f-649dcf343cad",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8249bbe0-b4e2-4ce0-a73f-649dcf343cad"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/82666162-0f2f-4e4a-8618-7e0845d9ad46.json",
+ "type":"Canvas",
+ "label":"fol. 106v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/82666162-0f2f-4e4a-8618-7e0845d9ad46.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/82666162-0f2f-4e4a-8618-7e0845d9ad46.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/82666162-0f2f-4e4a-8618-7e0845d9ad46",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/82666162-0f2f-4e4a-8618-7e0845d9ad46"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/fc597511-a5a4-47ad-b5ef-2f2700ea8202.json",
+ "type":"Canvas",
+ "label":"fol. 107r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/fc597511-a5a4-47ad-b5ef-2f2700ea8202.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/fc597511-a5a4-47ad-b5ef-2f2700ea8202.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/fc597511-a5a4-47ad-b5ef-2f2700ea8202",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/fc597511-a5a4-47ad-b5ef-2f2700ea8202"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9e48d39b-a350-4f2f-9900-091ee9938c83.json",
+ "type":"Canvas",
+ "label":"fol. 107v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/9e48d39b-a350-4f2f-9900-091ee9938c83.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9e48d39b-a350-4f2f-9900-091ee9938c83.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9e48d39b-a350-4f2f-9900-091ee9938c83",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9e48d39b-a350-4f2f-9900-091ee9938c83"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b12cf765-42a5-4bb4-a02f-44b6f81bb428.json",
+ "type":"Canvas",
+ "label":"fol. 108r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/b12cf765-42a5-4bb4-a02f-44b6f81bb428.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b12cf765-42a5-4bb4-a02f-44b6f81bb428.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b12cf765-42a5-4bb4-a02f-44b6f81bb428",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b12cf765-42a5-4bb4-a02f-44b6f81bb428"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/df626bae-a722-4a99-99e1-e7ee3eba22f6.json",
+ "type":"Canvas",
+ "label":"fol. 108v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/df626bae-a722-4a99-99e1-e7ee3eba22f6.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/df626bae-a722-4a99-99e1-e7ee3eba22f6.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/df626bae-a722-4a99-99e1-e7ee3eba22f6",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/df626bae-a722-4a99-99e1-e7ee3eba22f6"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/aa9520f1-9340-4035-bb9b-9497279358e7.json",
+ "type":"Canvas",
+ "label":"fol. 109r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/aa9520f1-9340-4035-bb9b-9497279358e7.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/aa9520f1-9340-4035-bb9b-9497279358e7.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/aa9520f1-9340-4035-bb9b-9497279358e7",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/aa9520f1-9340-4035-bb9b-9497279358e7"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8b39d130-6920-48b5-bced-eed56f8364be.json",
+ "type":"Canvas",
+ "label":"fol. 109v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/8b39d130-6920-48b5-bced-eed56f8364be.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8b39d130-6920-48b5-bced-eed56f8364be.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8b39d130-6920-48b5-bced-eed56f8364be",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/8b39d130-6920-48b5-bced-eed56f8364be"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7f5b520a-5eb4-4450-9ef5-07ad5f71258e.json",
+ "type":"Canvas",
+ "label":"fol. 110r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/7f5b520a-5eb4-4450-9ef5-07ad5f71258e.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7f5b520a-5eb4-4450-9ef5-07ad5f71258e.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/7f5b520a-5eb4-4450-9ef5-07ad5f71258e",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/7f5b520a-5eb4-4450-9ef5-07ad5f71258e"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e20b3d3a-e323-42c4-9d05-1c3d53f2a980.json",
+ "type":"Canvas",
+ "label":"fol. 110v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/e20b3d3a-e323-42c4-9d05-1c3d53f2a980.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e20b3d3a-e323-42c4-9d05-1c3d53f2a980.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e20b3d3a-e323-42c4-9d05-1c3d53f2a980",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e20b3d3a-e323-42c4-9d05-1c3d53f2a980"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/51242d25-fd28-4f79-a75c-31166df34186.json",
+ "type":"Canvas",
+ "label":"fol. 111r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/51242d25-fd28-4f79-a75c-31166df34186.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/51242d25-fd28-4f79-a75c-31166df34186.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/51242d25-fd28-4f79-a75c-31166df34186",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/51242d25-fd28-4f79-a75c-31166df34186"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9eb1a5fc-5752-41f4-8cf8-62df8453ebcc.json",
+ "type":"Canvas",
+ "label":"fol. 111v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/9eb1a5fc-5752-41f4-8cf8-62df8453ebcc.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9eb1a5fc-5752-41f4-8cf8-62df8453ebcc.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9eb1a5fc-5752-41f4-8cf8-62df8453ebcc",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9eb1a5fc-5752-41f4-8cf8-62df8453ebcc"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ead9f379-7b5b-4583-924d-9c2bbd2e2f88.json",
+ "type":"Canvas",
+ "label":"fol. 112r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/ead9f379-7b5b-4583-924d-9c2bbd2e2f88.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ead9f379-7b5b-4583-924d-9c2bbd2e2f88.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/ead9f379-7b5b-4583-924d-9c2bbd2e2f88",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/ead9f379-7b5b-4583-924d-9c2bbd2e2f88"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7d84954a-540f-4f9c-a03c-56e598116f10.json",
+ "type":"Canvas",
+ "label":"fol. 112v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/7d84954a-540f-4f9c-a03c-56e598116f10.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7d84954a-540f-4f9c-a03c-56e598116f10.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/7d84954a-540f-4f9c-a03c-56e598116f10",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/7d84954a-540f-4f9c-a03c-56e598116f10"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/cd31b81a-aa3c-4b1a-a65e-4003da913587.json",
+ "type":"Canvas",
+ "label":"fol. 113r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/cd31b81a-aa3c-4b1a-a65e-4003da913587.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/cd31b81a-aa3c-4b1a-a65e-4003da913587.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/cd31b81a-aa3c-4b1a-a65e-4003da913587",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/cd31b81a-aa3c-4b1a-a65e-4003da913587"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/098fd3cf-566d-41b4-be41-e212b4a87a01.json",
+ "type":"Canvas",
+ "label":"fol. 113v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/098fd3cf-566d-41b4-be41-e212b4a87a01.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/098fd3cf-566d-41b4-be41-e212b4a87a01.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/098fd3cf-566d-41b4-be41-e212b4a87a01",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/098fd3cf-566d-41b4-be41-e212b4a87a01"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/318316be-3ede-45ff-b849-56b2b370ed4e.json",
+ "type":"Canvas",
+ "label":"fol. 114r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/318316be-3ede-45ff-b849-56b2b370ed4e.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/318316be-3ede-45ff-b849-56b2b370ed4e.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/318316be-3ede-45ff-b849-56b2b370ed4e",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/318316be-3ede-45ff-b849-56b2b370ed4e"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f534332d-8dc7-492c-9a0d-f9c8a3be0b24.json",
+ "type":"Canvas",
+ "label":"fol. 114v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/f534332d-8dc7-492c-9a0d-f9c8a3be0b24.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f534332d-8dc7-492c-9a0d-f9c8a3be0b24.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f534332d-8dc7-492c-9a0d-f9c8a3be0b24",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f534332d-8dc7-492c-9a0d-f9c8a3be0b24"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/59ae477c-7942-4f8e-a216-654d3279c541.json",
+ "type":"Canvas",
+ "label":"fol. 115r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/59ae477c-7942-4f8e-a216-654d3279c541.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/59ae477c-7942-4f8e-a216-654d3279c541.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/59ae477c-7942-4f8e-a216-654d3279c541",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/59ae477c-7942-4f8e-a216-654d3279c541"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c3b8895a-2de2-41f4-9682-69a479b08733.json",
+ "type":"Canvas",
+ "label":"fol. 115v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/c3b8895a-2de2-41f4-9682-69a479b08733.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c3b8895a-2de2-41f4-9682-69a479b08733.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c3b8895a-2de2-41f4-9682-69a479b08733",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c3b8895a-2de2-41f4-9682-69a479b08733"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/52073aea-d345-4541-9ba4-717b420ca51c.json",
+ "type":"Canvas",
+ "label":"fol. 116r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/52073aea-d345-4541-9ba4-717b420ca51c.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/52073aea-d345-4541-9ba4-717b420ca51c.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/52073aea-d345-4541-9ba4-717b420ca51c",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/52073aea-d345-4541-9ba4-717b420ca51c"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/61b68955-f103-4ec0-859e-6cd0f3c44a6c.json",
+ "type":"Canvas",
+ "label":"fol. 116v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/61b68955-f103-4ec0-859e-6cd0f3c44a6c.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/61b68955-f103-4ec0-859e-6cd0f3c44a6c.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/61b68955-f103-4ec0-859e-6cd0f3c44a6c",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/61b68955-f103-4ec0-859e-6cd0f3c44a6c"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/05f83589-f9bf-4c46-84d4-ad1e303b05a7.json",
+ "type":"Canvas",
+ "label":"fol. 117r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/05f83589-f9bf-4c46-84d4-ad1e303b05a7.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/05f83589-f9bf-4c46-84d4-ad1e303b05a7.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/05f83589-f9bf-4c46-84d4-ad1e303b05a7",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/05f83589-f9bf-4c46-84d4-ad1e303b05a7"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/79103d1c-8628-412b-acba-6d4aef8e9377.json",
+ "type":"Canvas",
+ "label":"fol. 117v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/79103d1c-8628-412b-acba-6d4aef8e9377.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/79103d1c-8628-412b-acba-6d4aef8e9377.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/79103d1c-8628-412b-acba-6d4aef8e9377",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/79103d1c-8628-412b-acba-6d4aef8e9377"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0b3747ce-6789-41b7-86b9-cb5bf493b3f6.json",
+ "type":"Canvas",
+ "label":"fol. 118r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/0b3747ce-6789-41b7-86b9-cb5bf493b3f6.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0b3747ce-6789-41b7-86b9-cb5bf493b3f6.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/0b3747ce-6789-41b7-86b9-cb5bf493b3f6",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/0b3747ce-6789-41b7-86b9-cb5bf493b3f6"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0ec48bee-4a02-4bcf-a62c-c08779e74da4.json",
+ "type":"Canvas",
+ "label":"fol. 118v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/0ec48bee-4a02-4bcf-a62c-c08779e74da4.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0ec48bee-4a02-4bcf-a62c-c08779e74da4.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/0ec48bee-4a02-4bcf-a62c-c08779e74da4",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/0ec48bee-4a02-4bcf-a62c-c08779e74da4"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c1168898-6c26-40ca-983e-2c73bb74cf61.json",
+ "type":"Canvas",
+ "label":"fol. 119r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/c1168898-6c26-40ca-983e-2c73bb74cf61.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c1168898-6c26-40ca-983e-2c73bb74cf61.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c1168898-6c26-40ca-983e-2c73bb74cf61",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c1168898-6c26-40ca-983e-2c73bb74cf61"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/323f1382-7eb2-4d86-b0bd-e88bb332502e.json",
+ "type":"Canvas",
+ "label":"fol. 119v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/323f1382-7eb2-4d86-b0bd-e88bb332502e.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/323f1382-7eb2-4d86-b0bd-e88bb332502e.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/323f1382-7eb2-4d86-b0bd-e88bb332502e",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/323f1382-7eb2-4d86-b0bd-e88bb332502e"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4da1cd54-f6e3-4fe8-9e84-b106c7515f31.json",
+ "type":"Canvas",
+ "label":"fol. 120r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/4da1cd54-f6e3-4fe8-9e84-b106c7515f31.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4da1cd54-f6e3-4fe8-9e84-b106c7515f31.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/4da1cd54-f6e3-4fe8-9e84-b106c7515f31",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/4da1cd54-f6e3-4fe8-9e84-b106c7515f31"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1926c727-923f-4bdf-8872-a15c43bf4abc.json",
+ "type":"Canvas",
+ "label":"fol. 120v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/1926c727-923f-4bdf-8872-a15c43bf4abc.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1926c727-923f-4bdf-8872-a15c43bf4abc.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/1926c727-923f-4bdf-8872-a15c43bf4abc",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/1926c727-923f-4bdf-8872-a15c43bf4abc"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c04bc704-b2e2-41b1-95d3-f2aa887f2d37.json",
+ "type":"Canvas",
+ "label":"fol. 121r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/c04bc704-b2e2-41b1-95d3-f2aa887f2d37.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c04bc704-b2e2-41b1-95d3-f2aa887f2d37.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c04bc704-b2e2-41b1-95d3-f2aa887f2d37",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c04bc704-b2e2-41b1-95d3-f2aa887f2d37"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c0d677c5-a0d2-4ed9-aecb-54d11169107a.json",
+ "type":"Canvas",
+ "label":"fol. 121v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/c0d677c5-a0d2-4ed9-aecb-54d11169107a.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c0d677c5-a0d2-4ed9-aecb-54d11169107a.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c0d677c5-a0d2-4ed9-aecb-54d11169107a",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c0d677c5-a0d2-4ed9-aecb-54d11169107a"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/12b11f37-ec8f-4f9a-b1a3-e2d9ecb89f2c.json",
+ "type":"Canvas",
+ "label":"fol. 122r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/12b11f37-ec8f-4f9a-b1a3-e2d9ecb89f2c.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/12b11f37-ec8f-4f9a-b1a3-e2d9ecb89f2c.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/12b11f37-ec8f-4f9a-b1a3-e2d9ecb89f2c",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/12b11f37-ec8f-4f9a-b1a3-e2d9ecb89f2c"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/734312a6-ef45-4e54-9522-44ca628cd133.json",
+ "type":"Canvas",
+ "label":"fol. 122v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/734312a6-ef45-4e54-9522-44ca628cd133.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/734312a6-ef45-4e54-9522-44ca628cd133.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/734312a6-ef45-4e54-9522-44ca628cd133",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/734312a6-ef45-4e54-9522-44ca628cd133"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/68fe95a9-e0e2-42a1-b01c-c0cc534c9faf.json",
+ "type":"Canvas",
+ "label":"fol. 123r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/68fe95a9-e0e2-42a1-b01c-c0cc534c9faf.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/68fe95a9-e0e2-42a1-b01c-c0cc534c9faf.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/68fe95a9-e0e2-42a1-b01c-c0cc534c9faf",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/68fe95a9-e0e2-42a1-b01c-c0cc534c9faf"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2e00f7bd-e754-449a-873c-fc9a45832b65.json",
+ "type":"Canvas",
+ "label":"fol. 123v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/2e00f7bd-e754-449a-873c-fc9a45832b65.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2e00f7bd-e754-449a-873c-fc9a45832b65.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/2e00f7bd-e754-449a-873c-fc9a45832b65",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/2e00f7bd-e754-449a-873c-fc9a45832b65"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/65213565-2e23-46df-b2ec-1dd37779470c.json",
+ "type":"Canvas",
+ "label":"fol. 124r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/65213565-2e23-46df-b2ec-1dd37779470c.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/65213565-2e23-46df-b2ec-1dd37779470c.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/65213565-2e23-46df-b2ec-1dd37779470c",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/65213565-2e23-46df-b2ec-1dd37779470c"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/118e1c2e-3848-43de-b1d2-d2be2f40b235.json",
+ "type":"Canvas",
+ "label":"fol. 124v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/118e1c2e-3848-43de-b1d2-d2be2f40b235.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/118e1c2e-3848-43de-b1d2-d2be2f40b235.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/118e1c2e-3848-43de-b1d2-d2be2f40b235",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/118e1c2e-3848-43de-b1d2-d2be2f40b235"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3d68a1aa-26d7-464e-adf3-26509cac1e28.json",
+ "type":"Canvas",
+ "label":"fol. 125r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/3d68a1aa-26d7-464e-adf3-26509cac1e28.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3d68a1aa-26d7-464e-adf3-26509cac1e28.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3d68a1aa-26d7-464e-adf3-26509cac1e28",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3d68a1aa-26d7-464e-adf3-26509cac1e28"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/171cc1ec-f3c7-4788-9b97-ccf88d6a805a.json",
+ "type":"Canvas",
+ "label":"fol. 125v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/171cc1ec-f3c7-4788-9b97-ccf88d6a805a.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/171cc1ec-f3c7-4788-9b97-ccf88d6a805a.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/171cc1ec-f3c7-4788-9b97-ccf88d6a805a",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/171cc1ec-f3c7-4788-9b97-ccf88d6a805a"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/90986ade-e295-4af6-b148-571f779a78f7.json",
+ "type":"Canvas",
+ "label":"fol. 126r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/90986ade-e295-4af6-b148-571f779a78f7.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/90986ade-e295-4af6-b148-571f779a78f7.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/90986ade-e295-4af6-b148-571f779a78f7",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/90986ade-e295-4af6-b148-571f779a78f7"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/26afbb1b-e137-4915-9ffc-377ec16e4fb2.json",
+ "type":"Canvas",
+ "label":"fol. 126v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/26afbb1b-e137-4915-9ffc-377ec16e4fb2.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/26afbb1b-e137-4915-9ffc-377ec16e4fb2.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/26afbb1b-e137-4915-9ffc-377ec16e4fb2",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/26afbb1b-e137-4915-9ffc-377ec16e4fb2"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/856138d6-a1c2-47ab-9642-ab3fa7188e78.json",
+ "type":"Canvas",
+ "label":"fol. 127r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/856138d6-a1c2-47ab-9642-ab3fa7188e78.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/856138d6-a1c2-47ab-9642-ab3fa7188e78.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/856138d6-a1c2-47ab-9642-ab3fa7188e78",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/856138d6-a1c2-47ab-9642-ab3fa7188e78"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/62f369e5-a2ad-4a53-be4a-203250ffe8e0.json",
+ "type":"Canvas",
+ "label":"fol. 127v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/62f369e5-a2ad-4a53-be4a-203250ffe8e0.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/62f369e5-a2ad-4a53-be4a-203250ffe8e0.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/62f369e5-a2ad-4a53-be4a-203250ffe8e0",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/62f369e5-a2ad-4a53-be4a-203250ffe8e0"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3db3d646-a896-4a13-adca-ad572eabd0f0.json",
+ "type":"Canvas",
+ "label":"fol. 128r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/3db3d646-a896-4a13-adca-ad572eabd0f0.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3db3d646-a896-4a13-adca-ad572eabd0f0.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3db3d646-a896-4a13-adca-ad572eabd0f0",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3db3d646-a896-4a13-adca-ad572eabd0f0"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ec1c15a2-701b-4718-b00a-fd9b781f09e3.json",
+ "type":"Canvas",
+ "label":"fol. 128v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/ec1c15a2-701b-4718-b00a-fd9b781f09e3.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ec1c15a2-701b-4718-b00a-fd9b781f09e3.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/ec1c15a2-701b-4718-b00a-fd9b781f09e3",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/ec1c15a2-701b-4718-b00a-fd9b781f09e3"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/009dfb69-6cb2-4241-be74-9ef9b3090f4b.json",
+ "type":"Canvas",
+ "label":"fol. 129r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/009dfb69-6cb2-4241-be74-9ef9b3090f4b.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/009dfb69-6cb2-4241-be74-9ef9b3090f4b.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/009dfb69-6cb2-4241-be74-9ef9b3090f4b",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/009dfb69-6cb2-4241-be74-9ef9b3090f4b"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/756f154d-2005-4364-a5d4-546f42dbc1c2.json",
+ "type":"Canvas",
+ "label":"fol. 129v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/756f154d-2005-4364-a5d4-546f42dbc1c2.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/756f154d-2005-4364-a5d4-546f42dbc1c2.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/756f154d-2005-4364-a5d4-546f42dbc1c2",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/756f154d-2005-4364-a5d4-546f42dbc1c2"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c77a8ff0-c1ee-4f38-b265-79da16746b6a.json",
+ "type":"Canvas",
+ "label":"fol. 130r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/c77a8ff0-c1ee-4f38-b265-79da16746b6a.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c77a8ff0-c1ee-4f38-b265-79da16746b6a.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c77a8ff0-c1ee-4f38-b265-79da16746b6a",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c77a8ff0-c1ee-4f38-b265-79da16746b6a"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f5bdb96d-b8e9-4440-91c0-bdc85b173dd8.json",
+ "type":"Canvas",
+ "label":"fol. 130v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/f5bdb96d-b8e9-4440-91c0-bdc85b173dd8.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f5bdb96d-b8e9-4440-91c0-bdc85b173dd8.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f5bdb96d-b8e9-4440-91c0-bdc85b173dd8",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f5bdb96d-b8e9-4440-91c0-bdc85b173dd8"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/70779473-4303-4e0d-b66f-867b36254311.json",
+ "type":"Canvas",
+ "label":"fol. 131r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/70779473-4303-4e0d-b66f-867b36254311.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/70779473-4303-4e0d-b66f-867b36254311.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/70779473-4303-4e0d-b66f-867b36254311",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/70779473-4303-4e0d-b66f-867b36254311"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f28014e6-a3f5-422b-9a81-37fc313f54df.json",
+ "type":"Canvas",
+ "label":"fol. 131v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/f28014e6-a3f5-422b-9a81-37fc313f54df.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f28014e6-a3f5-422b-9a81-37fc313f54df.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f28014e6-a3f5-422b-9a81-37fc313f54df",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f28014e6-a3f5-422b-9a81-37fc313f54df"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/49bf22bf-91d7-4f78-96ef-73cf082700e6.json",
+ "type":"Canvas",
+ "label":"fol. 132r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/49bf22bf-91d7-4f78-96ef-73cf082700e6.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/49bf22bf-91d7-4f78-96ef-73cf082700e6.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/49bf22bf-91d7-4f78-96ef-73cf082700e6",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/49bf22bf-91d7-4f78-96ef-73cf082700e6"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4f393182-f9e2-41e2-9166-d2acc15ecf02.json",
+ "type":"Canvas",
+ "label":"fol. 132v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/4f393182-f9e2-41e2-9166-d2acc15ecf02.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4f393182-f9e2-41e2-9166-d2acc15ecf02.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/4f393182-f9e2-41e2-9166-d2acc15ecf02",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/4f393182-f9e2-41e2-9166-d2acc15ecf02"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/66f62ec7-ad90-44c3-b41a-428769e33807.json",
+ "type":"Canvas",
+ "label":"fol. 133r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/66f62ec7-ad90-44c3-b41a-428769e33807.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/66f62ec7-ad90-44c3-b41a-428769e33807.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/66f62ec7-ad90-44c3-b41a-428769e33807",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/66f62ec7-ad90-44c3-b41a-428769e33807"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9a9e13e5-2aef-49ea-8567-038802fd1701.json",
+ "type":"Canvas",
+ "label":"fol. 133v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/9a9e13e5-2aef-49ea-8567-038802fd1701.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9a9e13e5-2aef-49ea-8567-038802fd1701.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9a9e13e5-2aef-49ea-8567-038802fd1701",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9a9e13e5-2aef-49ea-8567-038802fd1701"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9cd1c304-0b19-45dc-bfe3-99c09efb4303.json",
+ "type":"Canvas",
+ "label":"fol. 134r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/9cd1c304-0b19-45dc-bfe3-99c09efb4303.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9cd1c304-0b19-45dc-bfe3-99c09efb4303.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9cd1c304-0b19-45dc-bfe3-99c09efb4303",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/9cd1c304-0b19-45dc-bfe3-99c09efb4303"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/84bc8934-7f76-4ebe-9127-ae1c52a7b5f4.json",
+ "type":"Canvas",
+ "label":"fol. 134v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/84bc8934-7f76-4ebe-9127-ae1c52a7b5f4.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/84bc8934-7f76-4ebe-9127-ae1c52a7b5f4.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/84bc8934-7f76-4ebe-9127-ae1c52a7b5f4",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/84bc8934-7f76-4ebe-9127-ae1c52a7b5f4"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f896fcd3-00c8-4519-9a83-6817fd08aff0.json",
+ "type":"Canvas",
+ "label":"fol. 135r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/f896fcd3-00c8-4519-9a83-6817fd08aff0.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f896fcd3-00c8-4519-9a83-6817fd08aff0.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f896fcd3-00c8-4519-9a83-6817fd08aff0",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f896fcd3-00c8-4519-9a83-6817fd08aff0"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e0d550f7-2996-47cb-b230-ed206bc1ad9b.json",
+ "type":"Canvas",
+ "label":"fol. 135v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/e0d550f7-2996-47cb-b230-ed206bc1ad9b.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e0d550f7-2996-47cb-b230-ed206bc1ad9b.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e0d550f7-2996-47cb-b230-ed206bc1ad9b",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/e0d550f7-2996-47cb-b230-ed206bc1ad9b"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0016c06f-4381-428d-bee3-cc2a37792013.json",
+ "type":"Canvas",
+ "label":"fol. 136r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/0016c06f-4381-428d-bee3-cc2a37792013.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0016c06f-4381-428d-bee3-cc2a37792013.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/0016c06f-4381-428d-bee3-cc2a37792013",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/0016c06f-4381-428d-bee3-cc2a37792013"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/83f29292-c99b-4501-b87f-65dd20e0df28.json",
+ "type":"Canvas",
+ "label":"fol. 136v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/83f29292-c99b-4501-b87f-65dd20e0df28.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/83f29292-c99b-4501-b87f-65dd20e0df28.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/83f29292-c99b-4501-b87f-65dd20e0df28",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/83f29292-c99b-4501-b87f-65dd20e0df28"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1cc3d3d8-9959-410f-9ba5-b4085b63d59f.json",
+ "type":"Canvas",
+ "label":"fol. 137r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/1cc3d3d8-9959-410f-9ba5-b4085b63d59f.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1cc3d3d8-9959-410f-9ba5-b4085b63d59f.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/1cc3d3d8-9959-410f-9ba5-b4085b63d59f",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/1cc3d3d8-9959-410f-9ba5-b4085b63d59f"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1057ddc0-e4cc-4e3e-9bd6-a60b355068f4.json",
+ "type":"Canvas",
+ "label":"fol. 137v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/1057ddc0-e4cc-4e3e-9bd6-a60b355068f4.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1057ddc0-e4cc-4e3e-9bd6-a60b355068f4.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/1057ddc0-e4cc-4e3e-9bd6-a60b355068f4",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/1057ddc0-e4cc-4e3e-9bd6-a60b355068f4"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6e322ef5-1a03-4614-8ae3-86400bd9ae0c.json",
+ "type":"Canvas",
+ "label":"fol. 138r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/6e322ef5-1a03-4614-8ae3-86400bd9ae0c.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6e322ef5-1a03-4614-8ae3-86400bd9ae0c.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/6e322ef5-1a03-4614-8ae3-86400bd9ae0c",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/6e322ef5-1a03-4614-8ae3-86400bd9ae0c"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f3eb83c9-e401-4c7c-a47f-8d49277ce508.json",
+ "type":"Canvas",
+ "label":"fol. 138v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/f3eb83c9-e401-4c7c-a47f-8d49277ce508.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f3eb83c9-e401-4c7c-a47f-8d49277ce508.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f3eb83c9-e401-4c7c-a47f-8d49277ce508",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/f3eb83c9-e401-4c7c-a47f-8d49277ce508"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/bd0ac78d-77fc-4a19-8dc8-cca3680c0178.json",
+ "type":"Canvas",
+ "label":"fol. 139r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/bd0ac78d-77fc-4a19-8dc8-cca3680c0178.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/bd0ac78d-77fc-4a19-8dc8-cca3680c0178.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/bd0ac78d-77fc-4a19-8dc8-cca3680c0178",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/bd0ac78d-77fc-4a19-8dc8-cca3680c0178"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/151013e9-dc98-44b3-8596-26eb6277ca9e.json",
+ "type":"Canvas",
+ "label":"fol. 139v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/151013e9-dc98-44b3-8596-26eb6277ca9e.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/151013e9-dc98-44b3-8596-26eb6277ca9e.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/151013e9-dc98-44b3-8596-26eb6277ca9e",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/151013e9-dc98-44b3-8596-26eb6277ca9e"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d22779cb-48fd-4110-aacb-8c63c8a03e6e.json",
+ "type":"Canvas",
+ "label":"fol. 140r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/d22779cb-48fd-4110-aacb-8c63c8a03e6e.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d22779cb-48fd-4110-aacb-8c63c8a03e6e.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d22779cb-48fd-4110-aacb-8c63c8a03e6e",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/d22779cb-48fd-4110-aacb-8c63c8a03e6e"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/22030ca1-f3e9-408a-a3d4-7d5cc203f2ef.json",
+ "type":"Canvas",
+ "label":"fol. 140v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/22030ca1-f3e9-408a-a3d4-7d5cc203f2ef.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/22030ca1-f3e9-408a-a3d4-7d5cc203f2ef.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/22030ca1-f3e9-408a-a3d4-7d5cc203f2ef",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/22030ca1-f3e9-408a-a3d4-7d5cc203f2ef"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c5acf334-60ca-4768-a60b-ca841b592d98.json",
+ "type":"Canvas",
+ "label":"fol. 141r",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/c5acf334-60ca-4768-a60b-ca841b592d98.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c5acf334-60ca-4768-a60b-ca841b592d98.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c5acf334-60ca-4768-a60b-ca841b592d98",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/c5acf334-60ca-4768-a60b-ca841b592d98"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3a0ee49b-8fff-4965-800b-5c79f65aa864.json",
+ "type":"Canvas",
+ "label":"fol. 141v",
+ "width":5392,
+ "height":6484,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/3a0ee49b-8fff-4965-800b-5c79f65aa864.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3a0ee49b-8fff-4965-800b-5c79f65aa864.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3a0ee49b-8fff-4965-800b-5c79f65aa864",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5392,
+ "height":6484,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/3a0ee49b-8fff-4965-800b-5c79f65aa864"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b60233ee-3b5b-4ee2-9aa5-0437df7c94f6.json",
+ "type":"Canvas",
+ "label":"Inside lower board",
+ "width":5398,
+ "height":6472,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/b60233ee-3b5b-4ee2-9aa5-0437df7c94f6.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b60233ee-3b5b-4ee2-9aa5-0437df7c94f6.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b60233ee-3b5b-4ee2-9aa5-0437df7c94f6",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5398,
+ "height":6472,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/b60233ee-3b5b-4ee2-9aa5-0437df7c94f6"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/901b6603-cad0-4ef4-9d10-30ffdef8f539.json",
+ "type":"Canvas",
+ "label":"Lower board",
+ "width":5428,
+ "height":6444,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/901b6603-cad0-4ef4-9d10-30ffdef8f539.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/901b6603-cad0-4ef4-9d10-30ffdef8f539.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/901b6603-cad0-4ef4-9d10-30ffdef8f539",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5428,
+ "height":6444,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/901b6603-cad0-4ef4-9d10-30ffdef8f539"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/20cb8b22-a44e-4e13-95d9-ad3fd42b9a59.json",
+ "type":"Canvas",
+ "label":"Spine",
+ "width":4834,
+ "height":7230,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/20cb8b22-a44e-4e13-95d9-ad3fd42b9a59.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/20cb8b22-a44e-4e13-95d9-ad3fd42b9a59.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/20cb8b22-a44e-4e13-95d9-ad3fd42b9a59",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":4834,
+ "height":7230,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/20cb8b22-a44e-4e13-95d9-ad3fd42b9a59"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/5054db62-dea6-423d-ac04-0769d31e20b6.json",
+ "type":"Canvas",
+ "label":"fol. 143v",
+ "width":5428,
+ "height":6454,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/5054db62-dea6-423d-ac04-0769d31e20b6.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/5054db62-dea6-423d-ac04-0769d31e20b6.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/5054db62-dea6-423d-ac04-0769d31e20b6",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5428,
+ "height":6454,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/5054db62-dea6-423d-ac04-0769d31e20b6"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/677d3773-77a5-426d-baa4-12646c073e6e.json",
+ "type":"Canvas",
+ "label":"fol. 144r",
+ "width":5428,
+ "height":6454,
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/annotationpage/677d3773-77a5-426d-baa4-12646c073e6e.json",
+ "type":"AnnotationPage",
+ "items":[
+ {
+ "type":"Annotation",
+ "motivation":"painting",
+ "target":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/677d3773-77a5-426d-baa4-12646c073e6e.json",
+ "body":{
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/677d3773-77a5-426d-baa4-12646c073e6e",
+ "type":"Image",
+ "format":"image/jpeg",
+ "width":5428,
+ "height":6454,
+ "service":{
+ "type":"ImageService2",
+ "profile":"level1",
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/image/677d3773-77a5-426d-baa4-12646c073e6e"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "structures":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/range/a4120d22-b62f-4b57-861d-43c839c790a0/LOG_0000",
+ "type":"Range",
+ "label":{
+ "en":[
+ "Songs and hymns (noted)"
+ ]
+ },
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/range/a4120d22-b62f-4b57-861d-43c839c790a0/LOG_0001",
+ "type":"Range",
+ "label":{
+ "en":[
+ "Index"
+ ]
+ },
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b9f0b9e9-e8c2-4f9c-a5b2-2848bd8e7d3c.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6c413931-c1c2-43bd-927c-80cce7592dfa.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/80662a77-1f69-4718-9a0d-37389c6e1642.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/bbbeb343-882a-465c-9e9f-71022d998ed2.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b0b3d72d-315d-4dc6-aad0-f615b8ee74f7.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/74c20173-e32e-4b62-b994-595a61fb6bf0.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ab7412b4-d4c3-468f-9b2b-69614c2446ea.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/964a96df-c6bc-4459-a56d-b4880860f83a.json",
+ "type":"Canvas"
+ }
+ ]
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/range/a4120d22-b62f-4b57-861d-43c839c790a0/LOG_0002",
+ "type":"Range",
+ "label":{
+ "en":[
+ "Songs and hymns"
+ ]
+ },
+ "items":[
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7448e4cf-97f1-4b56-97ef-89d933761bff.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/45d5ff8c-075d-44f7-9bee-fbee11cce4f1.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1d5861d1-d36c-4ea8-8df4-96c5316311fa.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/aebd4b06-a946-4099-b6bf-0f7c2a5eb9b9.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/df8c9098-05d1-46ba-a556-7dc16bb127fb.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b561eb03-775e-41e9-b85c-9e67c2a5d680.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6db36cfb-b893-435b-88e9-91ec27b5a3b9.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b55b9e95-71ec-4602-9745-b12c5ef91be4.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0f2c5554-ba34-46ec-9048-905d8a2fbeb5.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2152a20a-e2cb-47b7-b864-abc630d1903a.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/48a31253-3e27-4194-b300-fe5569932f46.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c1ee9124-fa1e-4c44-9b73-e36b6d6d572f.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b7c2bf85-889a-4160-b564-841145394a73.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d5e7aef3-f2ee-41fb-9db7-076af836adf2.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d6fa5889-5152-4589-9b2d-50311866917d.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ab352234-428f-4af6-a52d-738c50e260c8.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f93279af-5947-402e-9d11-f64231886c0a.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/65a65810-03ed-455a-81b3-47a96ed2d89d.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f9b562aa-5d30-4e1e-9e76-3f78b56bbbc0.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7b4d6310-b0bb-4ea4-ad98-478490405e5f.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/729715fc-7941-4d47-8a53-91e929a7d60d.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/660e3194-a6a4-4a60-aece-436a71d20071.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/acccb9f9-473e-4c7c-b9a7-529eb1782158.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9e51909a-c802-42e8-b12c-98a234246a68.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/67285312-5158-43fb-9639-cba732372a9f.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4eb3f79a-4be3-4544-8cbd-9d42b556e8d4.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8019239f-628c-4c89-a266-3ae52b0bf6d8.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/cb92bbe9-35af-465a-a1a1-85530f71fd0f.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/39a5d7a8-8a2b-4b64-b8b2-25dbba301151.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/44b61821-29c5-4372-85a9-3e6f6ad7aee2.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d926f23d-8dd7-4f06-b0db-34c751f8da18.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/af9a67c4-781e-4678-a253-f15a69f88bcb.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/52ad4b81-0392-48c5-9927-18c447c6c379.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/23f11ecb-2373-4445-b632-f103532f1330.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/dbdfe2a4-8cff-457f-9e40-938197b111e8.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/dce4c5ef-1f84-4a02-951e-a23f15025389.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/feb5f14a-b97d-4a6a-9687-f55a3cfb0466.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6617ac2a-ee81-48a7-a6a8-9cd70a4987be.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0d8a0e96-cd3a-4b99-9d34-b314c56707c1.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8f7fe062-8be4-4582-ae3c-edfc1ace6b72.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b4f9b8cf-747f-4432-8287-b6aa471ceaca.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/645abc0c-b005-48e6-9abe-1659bbd23c74.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/487bd2a5-c828-40e8-b235-8f91503000b9.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e8d69bbe-106a-40de-a664-0d8ad62b9971.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d8750bbe-665a-4ef1-8972-18b861404234.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/a7ced05e-e39f-4d4c-b632-fcb295ba7b94.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/772a9be1-d0d5-4455-9267-23af1b0a2064.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ff56505b-e1dc-40a4-82ae-52d5abbf96be.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/34eb9ca0-4270-4303-a345-010e94c34c4c.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b188b953-860b-4b7f-99fd-92759da2e0dc.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c45af702-b631-4c99-9cbb-2bae270f0010.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4913ab2e-783b-4ebe-8beb-6c80ca9ec0d0.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/10ca150c-d75c-4947-97ab-27fe661fe1ce.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/03a15174-1966-4efd-9a7f-a955d43b997c.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c82355e6-1749-45f6-90d8-d7df566f8818.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6dea8037-41e0-4b2f-ac4c-a6e00306858c.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8aea56fb-05bd-49c6-aad7-bbd8c7ebdfc7.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/742ab4ac-5459-48df-803c-bfcff7d0f68e.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3e904d06-41e5-4156-a256-399038e499a3.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/25c55c2d-a168-49fb-9f41-23f405e36357.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e1782c78-943f-4424-933e-c0c9e8ec8da1.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b9453e0b-b26f-4c90-9c36-f6d4277775cc.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/bb233de9-6cea-41e9-90c7-9fac60f6ec3e.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/cb65073e-d707-4b60-9c83-3b5fe37e8ce5.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e6effe1c-bfa1-4511-81a0-b98fdd528fda.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7b07486c-adb4-47bb-be47-f4700475bf21.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/73bced49-8e7a-40f9-b743-4db90d78a1b0.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/848f63c6-b718-48f7-a6e2-063a9a9112fe.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2bc47dd8-379c-4b3d-8f2a-cad9dc320480.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9abe2aa6-290a-4743-a4d6-6c5d57eb1287.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/a211289d-a58a-41bc-9571-5d5f735b132a.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3c1a3673-361d-4256-88c7-cd9bc8c75a54.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/42bcfac8-97dc-4290-b9f8-fdea45fc0ef2.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/5f0c64e8-0fcb-488e-a114-1e5d5cc03f6c.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/43d7f020-acd5-494d-a15c-45a3b1af6f6d.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b011fe03-2dcf-4f14-afee-982de8b50dea.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9a82001b-5aff-4650-80b3-c1480f120188.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e642d7e0-120f-4db1-a8ea-34028f3ce1cd.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e7ea9e39-22f9-494f-8795-cab058b67649.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b14e1791-a956-4802-873f-51d464ef023e.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d37e12f9-a0a5-49e9-92e6-ba0c76976f8a.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/17d6eb57-36cd-4410-b9f8-cb78c2016cf7.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/518a47a7-171b-47ed-92ba-36e8c93d47a2.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/93e0c1b6-294f-48e0-8c3a-b9adb06dee83.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c7917868-3c99-4b48-ac90-14bd6c72ef38.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d6200057-df91-4a9c-8875-542684ec6bbb.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/5887ebcf-bb15-4fe9-81b4-a48ba6c6d7a1.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9858a99f-c691-4bfe-aa34-131975ff1991.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3d5774ae-d0ae-47b0-a57d-d6ba1cfa00bc.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/5b9ba09a-0e35-457a-8d09-dee2b70c963c.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/002d69f7-59ef-4041-8f9a-adbaf9356813.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/86ad8b53-7f69-4d4c-9901-735d8e4018ff.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c3bc794d-0c7c-4441-943c-558c14419744.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/817a8bd7-682b-460b-a557-fad28ea087ef.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/864a5503-4607-419b-9100-554042f0a3d5.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/631f053a-7f61-4b88-b1dd-cd4f9f132add.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3939c458-ffb2-462c-bdad-b79afd08a886.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/828195f1-db38-409f-85d4-a9bc4815cf76.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3d5401a0-972a-4c70-8ecf-72c526d32e64.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3c83884f-fb03-4afe-93a7-6eed4ec4f3ae.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f54aeaab-a9f7-4a1d-8bba-220a8cd66cf9.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/67ce0e3b-f56c-4520-8dd8-a4b5091e63d0.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b072dc64-688a-4e49-b859-731bd90a4d51.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/a15c8cc6-0fde-4280-9c89-1b310442b4dc.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f051b053-8038-4597-9fd1-6527c2b35520.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e3ea245a-2f0a-4dc1-b093-574c05d787db.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8bd5c5b5-c7ec-47b9-ae09-1773607f40a4.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/072d525b-7786-4cef-a926-7310e9591643.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/50ccf679-a130-487b-b8e5-67692e39c374.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8834ce15-64b6-4bfc-84c1-5752f7db0052.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/dbed7148-a143-42df-845d-50ddc24a6a1e.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/fbeb4b2d-9999-4a56-9eb0-d947b060af1d.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b09f7f92-cc26-4243-a272-f4006c025474.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9a6829ac-fdb8-447d-9cf9-5b12dea0ebdd.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e61c2399-5aa3-43e4-8b0c-f0af15ef9cff.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2638e9fc-e245-4473-b4b4-8c5dc322dba2.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/315767a2-b5bb-48aa-9c24-5dcc857a6bf5.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7f32f88d-1f99-474f-94f3-2ef7103c0bb1.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/605f64f9-b78b-45d6-b86d-2b63c7f5dde1.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6c88c045-18be-436b-903f-c71fb81c258d.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/56c1ff67-2f64-40da-a398-f6b109f14ece.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/87ec8879-bf54-4725-819a-1adea76a2b15.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ae6a9944-7eaf-49be-9aa8-8077906b2c7b.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/72ed5324-3b48-49ed-9367-2b317a90a25a.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c90a2345-4ef1-466d-9ebe-a71c77a7d44d.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/40dc6af1-8dd1-4005-85cc-cda5ced4ac38.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/296a75e3-df33-4479-9b9f-ee09b474dbc3.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d78869d4-5826-4ba1-8fb5-8f5b6a6af8ce.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/528e1542-160b-4629-a996-a762975ff81b.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/252d22ad-bacb-4b4f-b24c-5fee273d5fde.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/641514b6-cfa5-4ba7-8c01-0f7ebe9de86a.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c5dfb7bf-7ecc-4972-96ea-8e7aacd45917.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/60776fee-60e7-4088-9c3b-a02ede2da030.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7e352491-a25c-4be2-8cd1-6fba09c738dd.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4ed20c7c-41f7-479b-a3fe-d57305dd5671.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/93d0760f-5d3d-432f-9e2c-aef63fe10633.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0de84d4b-e360-4757-bdf1-49038423c1d2.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/de794763-67eb-4698-af46-c0f4e567890b.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0c8697b3-cc9d-4065-a157-ba66c34cbc8e.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/eaaae3c3-f5d0-4afd-b66f-8fb6307b9035.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/82a6c26b-d7af-4b21-b21d-ec12748eff60.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6fb1efde-087d-4dfe-9fc1-19011160b7d9.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6d845d20-3447-4375-9463-d887885b4f73.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9e6fe00c-e3b3-4671-a9ea-3ef86551e992.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/a735a4a8-1bb7-43fb-8a4c-7226bb4d69b3.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/449ffe7d-83cc-44e5-84de-8369813f587d.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8a7853c4-2495-4c42-b919-350aa8c1c034.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/81c7a3ff-7823-4ef5-98db-2528d340c4d6.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b8bc5388-495f-4039-a40a-a00da316c0f8.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/39b3ba3e-75bd-4ccb-84ea-c74abbf6fa99.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ed38fbc0-bc15-4560-bc78-6d0d64ef331f.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/fdb3753b-1afc-4268-9dec-f5c53c32ab5a.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/70de0918-de25-4be2-9f0e-944e95b76dff.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/10e3c88e-ade0-4899-876e-b4315464d5cd.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e5d5a720-e8fb-4460-9f64-eaa281f0257a.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d4f7e156-194a-4bf6-b319-35d8ea02eba4.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/95c4b7c9-02a5-4a6b-b9ef-a5be43fbe347.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/dbb721b5-6560-4bc2-b27d-5d8f77ac1e9c.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1aace697-14f2-4974-b489-ff20c2bc0bb9.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/270f9593-83ef-4e8b-b634-eb9ca14ce1c8.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/321036ea-3ffc-4a98-8503-422eb42014b6.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2cdf49da-90c3-42da-85bf-f93018377520.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f8a775d6-a450-470b-b182-a5ad71e64daa.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/19cfe12a-1bc4-43c6-b762-22bcf57aa766.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4faae3b8-e03c-48d4-9798-18f0132f05f2.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e8c4fea9-8cdb-421a-bcd6-d6f8578eba0c.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f07819e6-3d24-47ca-8b6e-b2346415e69e.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/610bd1c7-2d25-4427-85b2-a6e3be102dd7.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/59a241b8-a622-40c5-a583-64e49e392a14.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/73ba5533-40d4-4052-aef6-0106082ec70a.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/734f98e0-a8ec-4a96-8b3e-c79613c57450.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2294268c-519c-4934-9632-6bfd4081cdc3.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/011de259-954d-41a7-8547-6c8bc787de34.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/311f851d-b95d-4448-a3ad-178d6cbd0f10.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/71a8bd5d-68e0-4b13-b254-498fafe4c7c8.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1ebd1573-06c7-406b-aef7-7e3ad373b79a.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/dc787d96-3b32-453c-84bf-a5866b3daeaa.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/72f24244-c4c4-4412-ae03-a875af6804fd.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8dbd3588-c816-44b2-a9ae-493a7c670dd5.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/dc1afcf9-a994-4bb8-8d4f-be30648a7012.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b8ed8a0e-9dd9-418c-956a-5d69388ec3d9.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/338aca83-53c7-4d3c-acfb-6d5535a8d13d.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e82fef84-c9ca-488a-af51-95c3e44a72fa.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9f4aa883-6666-4885-b1d0-f42396adaf63.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/bdefccbf-adcd-4661-9e59-22ddb0790a09.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0da8b79a-337a-4b10-8c3c-1320ebeac504.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/909e6e80-14e1-46f6-80a8-be6473fd92aa.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/58e1398d-e1ce-40de-b3a0-3b9ce41d7743.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/10a62100-b8f7-4218-9f72-b9502a65d03d.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/81fbdbd5-5037-4ffe-83c7-2ed9a3975862.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/73b87193-d7b9-4fe2-a622-d23be53c16fa.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/25ba941c-203b-44f1-8351-63a6ff316a2b.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/5cd1bc3b-7923-4c30-a55c-4dc5f75de0ab.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c7683ba6-129b-4313-a636-f87c35f07125.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/60d5d2b9-9d5b-427c-b974-24d5f47695e2.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8b8faf36-5e38-424f-907a-d7fb87e9c9ec.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2e4fb49d-b308-4371-8d29-c078d8c52821.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f2c4d1cf-5a79-4363-b9dc-6a72bcbb34a6.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/96b61d35-3386-4be4-8b9f-a5fc4ce9f839.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d3a65fd0-dbeb-4186-b803-b7e23fef65a4.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ce4c8ceb-fae7-4d37-ba19-39a273d776e8.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/827cb250-d945-4791-980a-a5f5e99d710e.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/a8bdeafe-3a3c-4ca8-b93f-08c40cf5b15f.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/415103aa-24a7-4dfa-b8ee-db7b434e344b.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3c45b0fe-d515-4502-bad0-e6b22983b0e4.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c534af33-1766-47ca-a7a2-545a95ada414.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1c94e516-3e0f-4ceb-981c-3396cba302ae.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4353d4b7-0b57-4e37-92d5-d6f8337f431a.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c48b09d7-2f41-4e5f-bc1b-d59407e1df87.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7bc09117-fe22-472e-8d9c-1a120f649530.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8249bbe0-b4e2-4ce0-a73f-649dcf343cad.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/82666162-0f2f-4e4a-8618-7e0845d9ad46.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/fc597511-a5a4-47ad-b5ef-2f2700ea8202.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9e48d39b-a350-4f2f-9900-091ee9938c83.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/b12cf765-42a5-4bb4-a02f-44b6f81bb428.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/df626bae-a722-4a99-99e1-e7ee3eba22f6.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/aa9520f1-9340-4035-bb9b-9497279358e7.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/8b39d130-6920-48b5-bced-eed56f8364be.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7f5b520a-5eb4-4450-9ef5-07ad5f71258e.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e20b3d3a-e323-42c4-9d05-1c3d53f2a980.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/51242d25-fd28-4f79-a75c-31166df34186.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9eb1a5fc-5752-41f4-8cf8-62df8453ebcc.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ead9f379-7b5b-4583-924d-9c2bbd2e2f88.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/7d84954a-540f-4f9c-a03c-56e598116f10.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/cd31b81a-aa3c-4b1a-a65e-4003da913587.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/098fd3cf-566d-41b4-be41-e212b4a87a01.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/318316be-3ede-45ff-b849-56b2b370ed4e.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f534332d-8dc7-492c-9a0d-f9c8a3be0b24.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/59ae477c-7942-4f8e-a216-654d3279c541.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c3b8895a-2de2-41f4-9682-69a479b08733.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/52073aea-d345-4541-9ba4-717b420ca51c.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/61b68955-f103-4ec0-859e-6cd0f3c44a6c.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/05f83589-f9bf-4c46-84d4-ad1e303b05a7.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/79103d1c-8628-412b-acba-6d4aef8e9377.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0b3747ce-6789-41b7-86b9-cb5bf493b3f6.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0ec48bee-4a02-4bcf-a62c-c08779e74da4.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c1168898-6c26-40ca-983e-2c73bb74cf61.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/323f1382-7eb2-4d86-b0bd-e88bb332502e.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4da1cd54-f6e3-4fe8-9e84-b106c7515f31.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1926c727-923f-4bdf-8872-a15c43bf4abc.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c04bc704-b2e2-41b1-95d3-f2aa887f2d37.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c0d677c5-a0d2-4ed9-aecb-54d11169107a.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/12b11f37-ec8f-4f9a-b1a3-e2d9ecb89f2c.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/734312a6-ef45-4e54-9522-44ca628cd133.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/68fe95a9-e0e2-42a1-b01c-c0cc534c9faf.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/2e00f7bd-e754-449a-873c-fc9a45832b65.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/65213565-2e23-46df-b2ec-1dd37779470c.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/118e1c2e-3848-43de-b1d2-d2be2f40b235.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3d68a1aa-26d7-464e-adf3-26509cac1e28.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/171cc1ec-f3c7-4788-9b97-ccf88d6a805a.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/90986ade-e295-4af6-b148-571f779a78f7.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/26afbb1b-e137-4915-9ffc-377ec16e4fb2.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/856138d6-a1c2-47ab-9642-ab3fa7188e78.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/62f369e5-a2ad-4a53-be4a-203250ffe8e0.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/3db3d646-a896-4a13-adca-ad572eabd0f0.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/ec1c15a2-701b-4718-b00a-fd9b781f09e3.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/009dfb69-6cb2-4241-be74-9ef9b3090f4b.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/756f154d-2005-4364-a5d4-546f42dbc1c2.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/c77a8ff0-c1ee-4f38-b265-79da16746b6a.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f5bdb96d-b8e9-4440-91c0-bdc85b173dd8.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/70779473-4303-4e0d-b66f-867b36254311.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f28014e6-a3f5-422b-9a81-37fc313f54df.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/49bf22bf-91d7-4f78-96ef-73cf082700e6.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/4f393182-f9e2-41e2-9166-d2acc15ecf02.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/66f62ec7-ad90-44c3-b41a-428769e33807.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9a9e13e5-2aef-49ea-8567-038802fd1701.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/9cd1c304-0b19-45dc-bfe3-99c09efb4303.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/84bc8934-7f76-4ebe-9127-ae1c52a7b5f4.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f896fcd3-00c8-4519-9a83-6817fd08aff0.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/e0d550f7-2996-47cb-b230-ed206bc1ad9b.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/0016c06f-4381-428d-bee3-cc2a37792013.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/83f29292-c99b-4501-b87f-65dd20e0df28.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1cc3d3d8-9959-410f-9ba5-b4085b63d59f.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/1057ddc0-e4cc-4e3e-9bd6-a60b355068f4.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/6e322ef5-1a03-4614-8ae3-86400bd9ae0c.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/f3eb83c9-e401-4c7c-a47f-8d49277ce508.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/bd0ac78d-77fc-4a19-8dc8-cca3680c0178.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/151013e9-dc98-44b3-8596-26eb6277ca9e.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/d22779cb-48fd-4110-aacb-8c63c8a03e6e.json",
+ "type":"Canvas"
+ },
+ {
+ "id":"https://iiif.bodleian.ox.ac.uk/iiif/canvas/22030ca1-f3e9-408a-a3d4-7d5cc203f2ef.json",
+ "type":"Canvas"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/test/navigation_test.js b/test/navigation_test.js
new file mode 100644
index 00000000..87aefd46
--- /dev/null
+++ b/test/navigation_test.js
@@ -0,0 +1,355 @@
+import Diva from '../source/js/diva';
+
+// jQuery mimic
+let el = document.getElementById.bind(document);
+
+describe('Navigation', function ()
+{
+ beforeEach(function ()
+ {
+ // reset event subscription so only current test is subscribed
+ Diva.Events.unsubscribeAll();
+
+ // recreate diva instance
+ let oldWrapper = document.getElementById('parent-wrapper');
+ oldWrapper.parentNode.removeChild(oldWrapper);
+ let newWrapper = document.createElement('div');
+ newWrapper.id = 'parent-wrapper';
+ newWrapper.setAttribute('style', 'width: 984px;');
+ let div = document.createElement('div');
+ div.id = 'diva-wrapper';
+ newWrapper.appendChild(div);
+ document.body.appendChild(newWrapper);
+ });
+
+ // FIXME: This test pattern is pretty iffy. There should be more robust ways to do this than
+ // with a timeout, and the toolbar and page index are kind of separate concerns.
+ var assertPageAfterScroll = function (scroll, index, divaInst, done, label)
+ {
+ var viewportObject = divaInst.getSettings().viewportObject;
+
+ if ('left' in scroll)
+ viewportObject.scrollLeft = scroll.left; // does this trigger a scroll event?
+
+ viewportObject.addEventListener('scroll', function handleScroll ()
+ {
+ setTimeout(function ()
+ {
+ var rendered = label;
+
+ var actualIndex = divaInst.getActivePageIndex();
+ assert.strictEqual(actualIndex, index, "The page should now be " + rendered + " (index of " + index + ")");
+
+ var actualRendered = el(divaInst.getSettings().selector + 'current-page').innerText;
+ assert.strictEqual(actualRendered, rendered, "The toolbar should have been updated");
+
+ viewportObject.removeEventListener('scroll', handleScroll);
+
+ done();
+ }, 10);
+ });
+
+ viewportObject.scrollTop = scroll.top;
+ };
+
+ var assertZoomIs = function (level, divaInst, controlName)
+ {
+ var actualLevel = divaInst.getZoomLevel();
+ var renderedLevel = el(divaInst.getSettings().selector + 'zoom-level').innerText;
+
+ assert.strictEqual(actualLevel, level, "Zoom level should now be " + level);
+ assert.strictEqual(renderedLevel, (level + 1).toFixed(), "The " + controlName + " label should have been updated");
+ };
+
+ it("Scrolling in document view", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assertPageAfterScroll({ top: 10000 }, 40, this, done, 'Folio 020r - Folio 021r');
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ zoomLevel: 0,
+ adaptivePadding: 0,
+ fixedPadding: 40
+ });
+ });
+
+ it("Scrolling in grid view", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assertPageAfterScroll({ top: 10000 }, 26, this, done, 'Folio 014r - Folio 014v');
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ inGrid: true,
+ pagesPerRow: 2,
+ fixedHeightGrid: false
+ });
+ });
+
+ it("Scrolling in book view", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assertPageAfterScroll({ left: 200, top: 10000 }, 18, this, done, 'Bm 019 - Bm 020');
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://ddmal.github.io/diva.js/try/demo/beromunster-iiif.json'
+ });
+ });
+
+ // Try to verify that zoom animation can be gracefully interrupted
+ it('View change during zoom animation', function (done)
+ {
+ var gridViewSeen = false;
+
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ Diva.Events.subscribe('ZoomLevelDidChange', function ()
+ {
+ this.enterGridView();
+ }, this.getInstanceId());
+
+ Diva.Events.subscribe('ViewDidSwitch', function (inGrid)
+ {
+ // debugger
+ if (inGrid)
+ {
+ gridViewSeen = true;
+ assert.strictEqual(this.getZoomLevel(), 3, 'Updated zoom level should be set');
+
+ defer(this.leaveGridView, this);
+ }
+ else
+ {
+ assert.isOk(gridViewSeen, 'Grid view should have been entered');
+ assert.strictEqual(this.getZoomLevel(), 3, 'Zoom level should still be 3');
+
+ done();
+ }
+ }, this.getInstanceId());
+
+ // debugger
+ this.zoomIn();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://ddmal.github.io/diva.js/try/demo/beromunster-iiif.json',
+ zoomLevel: 2
+ });
+
+ function defer(callback, ctx)
+ {
+ setTimeout(callback.bind(ctx), 10);
+ }
+ });
+
+ it("Zooming using +/- buttons", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ el(settings.selector + 'zoom-out-button').click();
+ assertZoomIs(4, this, 'zoom buttons');
+
+ setTimeout(() =>
+ {
+ el(settings.selector + 'zoom-in-button').click();
+ assertZoomIs(5, this, 'zoom buttons');
+
+ done();
+ }, 600);
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ zoomLevel: 5
+ });
+ });
+
+ it("Scrolling and subsequently zooming in Grid view", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function(settings)
+ {
+ settings.viewportObject.scrollTop = 10050;
+
+ setTimeout(() =>
+ {
+ assert.strictEqual(this.getActivePageIndex(), 165, "The current page should be 165 (10050px down, 1871px viewport)");
+
+ el(settings.selector + 'grid-out-button').click();
+ el(settings.selector + 'grid-out-button').click();
+ assert.strictEqual(this.getActivePageIndex(), 165, "The current page should still be 85");
+
+ for (var i = 0; i < 5; i++)
+ {
+ el(settings.selector + 'grid-in-button').click();
+ }
+ assert.strictEqual(this.getActivePageIndex(), 165, "The current page should still be 85");
+
+ done();
+ }, 10);
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ inGrid: true,
+ pagesPerRow: 5,
+ fixedHeightGrid: false
+ });
+ });
+
+ it("Changing pages per row in Grid view using +/- buttons", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ this.enterGridView();
+ for (var i = 0; i < 6; i++)
+ {
+ el(settings.selector + 'grid-in-button').click();
+ }
+ assert.strictEqual(this.getState().n, 8, "Pages per row should now be 8");
+ assert.strictEqual(el(settings.selector + 'pages-per-row').innerText, '8', "The grid buttons label should have been updated");
+
+ for (i = 0; i < 6; i++)
+ {
+ el(settings.selector + 'grid-out-button').click();
+ }
+ assert.strictEqual(this.getState().n, 2, "Pages per row should now be 2");
+ assert.strictEqual(el(settings.selector + 'pages-per-row').innerText, '2', "The grid buttons label should have been updated");
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ pagesPerRow: 2
+ });
+ });
+
+ it("Zooming by double-clicking", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ var dblClick = new MouseEvent('dblclick', {
+ 'view': window,
+ 'bubbles': true,
+ 'cancelable': true
+ });
+
+ setTimeout(function ()
+ {
+ diva.settings.innerElement.dispatchEvent(dblClick);
+ setTimeout(function ()
+ {
+ assert.strictEqual(settings.zoomLevel, 2, "Zoom level should now be 2");
+ assert.strictEqual(settings.activePageIndex, 100, "Should still be on page 100");
+ done();
+ }, 10);
+ }, 10);
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ zoomLevel: 1,
+ goDirectlyTo: 100
+ });
+ });
+
+ it("Switching between document and grid view", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.ok(!settings.inGrid, "Not in grid initially");
+ el(settings.selector + 'grid-icon').click();
+
+ // Click the grid icon, then wait a bit for the event to be triggered
+ setTimeout(function ()
+ {
+ assert.isOk(settings.inGrid, "Should now be in grid");
+ assert.isDefined(el(settings.selector + 'grid-out-button'), "Grid buttons should be visible (-)");
+ assert.isDefined(el(settings.selector + 'grid-in-button'), "Grid buttons should be visible (+)");
+ assert.isNull(el(settings.selector + 'zoom-out-buttons'), "Zoom buttons should not be visible (-)");
+ assert.isNull(el(settings.selector + 'zoom-in-buttons'), "Zoom buttons should not be visible (+)");
+ done();
+ }, 10);
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it("Switching between regular and fullscreen mode", function (done)
+ {
+ var initialX = null;
+ var initialY = null;
+
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.isOk(!settings.inFullscreen, "Not in fullscreen initially");
+
+ var state = this.getState();
+ initialX = state.x;
+ initialY = state.y;
+
+ this.enterFullscreenMode();
+ });
+
+ Diva.Events.subscribe('ModeDidSwitch', function (inFullscreen)
+ {
+ if (inFullscreen)
+ {
+ assert.isOk(this.getSettings().inFullscreen, "Should now be in fullscreen");
+ assert.isOk(document.body.classList.contains('diva-hide-scrollbar'), "Body should have the hide-scrollbar class");
+
+ this.leaveFullscreenMode();
+ }
+ else
+ {
+ var state = this.getState();
+
+ assert.isOk(!this.getSettings().inFullscreen, "Should now not be in fullscreen");
+ assert.strictEqual(state.x, initialX, 'Entering and leaving fullscreen mode should not change the x position');
+ assert.strictEqual(state.y, initialY, 'Entering and leaving fullscreen mode should not change the y position');
+
+ done();
+ }
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it("Jumping to page in Book view", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ this.gotoPageByIndex(5);
+
+ assert.isOk(settings.inBookLayout, "Should be in book layout");
+ assert.strictEqual(el(settings.selector + 'current-page').innerText, 'Folio 003r - Folio 004r', "Toolbar should indicate label for page 6");
+
+ setTimeout(() =>
+ {
+ assert.isOk(this.isPageInViewport(5), "Page 6 (index 5) should be loaded");
+
+ this.gotoPageByIndex(6);
+ assert.strictEqual(el(settings.selector + 'current-page').innerText, 'Folio 003r - Folio 004r', "Toolbar should stay the same");
+ assert.isOk(this.isPageInViewport(6), "Page 7 (index 6) should be loaded");
+
+ done();
+ }, 10);
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ inBookLayout: true
+ });
+ });
+});
\ No newline at end of file
diff --git a/test/parse-iiif-manifest_test.js b/test/parse-iiif-manifest_test.js
new file mode 100644
index 00000000..8e21873d
--- /dev/null
+++ b/test/parse-iiif-manifest_test.js
@@ -0,0 +1,68 @@
+import Diva from '../source/js/diva';
+let v2Manifest = require('./manifests/iiifv2.json');
+let v3Manifest = require('./manifests/iiifv3.json');
+
+describe('IIIF Manifest Parsing', function ()
+{
+ beforeEach(function ()
+ {
+ // recreate diva instance
+ let oldWrapper = document.getElementById('parent-wrapper');
+ oldWrapper.parentNode.removeChild(oldWrapper);
+ let newWrapper = document.createElement('div');
+ newWrapper.id = 'parent-wrapper';
+ newWrapper.setAttribute('style', 'width: 984px;');
+ let div = document.createElement('div');
+ div.id = 'diva-wrapper';
+ newWrapper.appendChild(div);
+ document.body.appendChild(newWrapper);
+
+ Diva.Events.unsubscribeAll();
+ });
+
+ it('can parse an IIIF v2 Manifest', function (done)
+ {
+ Diva.Events.subscribe('ObjectDidLoad', function (settings)
+ {
+ let m = settings.manifest;
+ assert.isOk(m, 'Manifest should exist');
+
+ assert.strictEqual(m.pages.length, 479, 'Manifest should have 479 pages');
+ assert.strictEqual(m.maxZoom, 5, 'Manifest should have maxZoom of 5');
+ assert.strictEqual(m.maxRatio, 1.584277299501586, 'Max ratio should be 1.5842...');
+ assert.strictEqual(m.minRatio, 1.4961486180335297, 'Min ratio should be 1.4961...');
+ assert.strictEqual(m.itemTitle, 'Salzinnes, CDN-Hsmu M2149.L4', 'Item title should be right');
+ assert.isFalse(m.paged, 'Should not be paged');
+ assert.strictEqual(m.pages[0].l, 'Folio 001r', 'First page should be Folio 001r');
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: v2Manifest
+ });
+ });
+
+ it('can parse an IIIF v3 Manifest', function (done)
+ {
+ Diva.Events.subscribe('ObjectDidLoad', function (settings)
+ {
+ let m = settings.manifest;
+ assert.isOk(m, 'Manifest should exist');
+
+ assert.strictEqual(m.pages.length, 299, 'Manifest should have 299 pages');
+ assert.strictEqual(m.maxZoom, 5, 'Manifest should have maxZoom of 5');
+ assert.strictEqual(m.maxRatio, 1.495655771617708, 'Max ratio should be 1.4956...');
+ assert.strictEqual(m.minRatio, 1.187177597641857, 'Min ratio should be 1.1871...');
+ assert.strictEqual(m.itemTitle, 'Bodleian Library: MS. Canon. Misc. 213', 'Item title should be right');
+ assert.isTrue(m.paged, 'Should be paged');
+ assert.strictEqual(m.pages[0].l, 'Upper board', 'First page should be Upper board');
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: v3Manifest
+ });
+ });
+});
diff --git a/test/public_test.js b/test/public_test.js
new file mode 100644
index 00000000..4c37210e
--- /dev/null
+++ b/test/public_test.js
@@ -0,0 +1,881 @@
+import Diva from '../source/js/diva';
+
+describe('Public Functions', function ()
+{
+ beforeEach(function ()
+ {
+ // recreate diva instance
+ let oldWrapper = document.getElementById('parent-wrapper');
+ oldWrapper.parentNode.removeChild(oldWrapper);
+ let newWrapper = document.createElement('div');
+ newWrapper.id = 'parent-wrapper';
+ newWrapper.setAttribute('style', 'width: 984px;');
+ let div = document.createElement('div');
+ div.id = 'diva-wrapper';
+ newWrapper.appendChild(div);
+ document.body.appendChild(newWrapper);
+
+ Diva.Events.unsubscribeAll();
+ });
+
+ it('getItemTitle()', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.strictEqual(this.getItemTitle(), "Salzinnes, CDN-Hsmu M2149.L4", "The title should be Salzinnes, CDN-Hsmu M2149.L4");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it("getCurrentPage()", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.strictEqual(this.getActivePageIndex(), 0, "Initial page should be 0");
+ this.gotoPageByIndex(200); // Go to page index 200
+ assert.strictEqual(this.getActivePageIndex(), 200, "The page index should now be 200");
+ this.gotoPageByIndex(5);
+ assert.strictEqual(this.getActivePageIndex(), 5, "The page index should now be 5");
+
+ Diva.Events.subscribe('ViewDidSwitch', function ()
+ {
+ this.gotoPageByIndex(100);
+ assert.strictEqual(this.getActivePageIndex(), 100, 'Transitions in grid mode should work');
+
+ done();
+ });
+
+ this.enterGridView();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it("getActivePageIndex()", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.strictEqual(this.getActivePageIndex(), 0, "Initial page should be 0");
+ this.gotoPageByIndex(300);
+ assert.strictEqual(this.getActivePageIndex(), 300, "The page index should now be 300");
+
+ // Reset it to the first page
+ this.gotoPageByIndex(0);
+ assert.strictEqual(this.getActivePageIndex(), 0, "The page index should now be 0");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it("get/setZoomLevel(), zoomIn() and zoomOut()", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.strictEqual(this.getZoomLevel(), 2, "Initial zoom level should be 2");
+ assert.isOk(this.zoomOut(), "It should be possible to zoom out once");
+ assert.strictEqual(this.getZoomLevel(), 1, "Zoom level should now be 1");
+ assert.isOk(!this.zoomOut(), "It should not be possible to zoom out again");
+ assert.strictEqual(this.getZoomLevel(), 1, "Zoom level should still be 1");
+
+ assert.isOk(this.zoomIn(), "It should be possible to zoom in");
+ assert.strictEqual(this.getZoomLevel(), 2, "Zoom level should now be 2");
+ assert.isOk(this.zoomIn(), "Zooming in again");
+ assert.strictEqual(this.getZoomLevel(), 3, "Zoom level should now be 3");
+ assert.isOk(!this.zoomIn(), "It should not be possible to zoom in again (hit max)");
+ assert.strictEqual(this.getZoomLevel(), 3, "Zoom level should still be 3");
+
+ assert.isOk(!this.setZoomLevel(5), "Setting zoom level to 5 should fail");
+ assert.strictEqual(this.getZoomLevel(), 3, "Zoom level should still be 3");
+
+ this.changeView('grid');
+ assert.isOk(this.setZoomLevel(2), "Setting zoom level to 2 from grid should be fine");
+ assert.strictEqual(this.getZoomLevel(), 2, "Zoom level should now be 2");
+
+ this.changeView('book');
+ this.changeView(' ');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ zoomLevel: 2,
+ minZoomLevel: 1,
+ maxZoomLevel: 3
+ });
+ });
+
+ it("isRegionInViewport()", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ // Can only do fairly simple checks
+ assert.isOk(this.isRegionInViewport(0, 100, 200, 100, 150));
+ assert.isOk(!this.isRegionInViewport(0, 100, -200, 100, 100));
+ assert.isOk(!this.isRegionInViewport(40, 100, 50, 100, 200));
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ viewportMargin: 0
+ });
+ });
+
+ it("isPageInViewport()", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.isOk(this.isPageInViewport(0), 'The first page should be in the viewport');
+ assert.isOk(!this.isPageInViewport(100), 'The hundredth page should not be in the viewport');
+
+ this.enterGridView();
+ });
+
+ Diva.Events.subscribe('ViewDidSwitch', function ()
+ {
+ assert.isOk(this.isPageInViewport(0), 'The first page should be in the viewport grid');
+ assert.isOk(this.isPageInViewport(5), 'The fifth page should be in the viewport grid');
+ assert.isOk(!this.isPageInViewport(100), 'The hundredth page should not be in the viewport grid');
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it("toggleFullscreenMode(), enterFullscreenMode(), leaveFullscreenMode()", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.isOk(!settings.inFullscreen, "Should not be in fullscreen initially");
+ this.toggleFullscreenMode();
+ assert.isOk(settings.inFullscreen, "Should now be in fullscreen");
+ assert.isOk(!this.enterFullscreenMode(), "Should not be possible to enter fullscreen");
+ assert.isOk(settings.inFullscreen, "Should still be in fullscreen");
+ assert.isOk(this.leaveFullscreenMode(), "Should be possible to exit fullscreen");
+ assert.isOk(!settings.inFullscreen, "No longer in fullscreen");
+ assert.isOk(!this.leaveFullscreenMode(), "Should not be possible to exit fullscreen");
+ assert.isOk(!settings.inFullscreen, "Still not in fullscreen");
+ assert.isOk(this.enterFullscreenMode(), "Should be possible to enter fullscreen");
+ this.toggleFullscreenMode();
+ assert.isOk(!settings.inFullscreen, "Should now be out of fullscreen");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it("enterGridView(), leaveGridView()", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.isOk(!settings.inGrid, "Should not be in grid initially");
+ this.enterGridView();
+ assert.isOk(settings.inGrid, "Should now be in grid");
+ assert.isOk(!this.enterGridView(), "Should not be possible to enter grid");
+ assert.isOk(settings.inGrid, "Should still be in grid");
+ assert.isOk(this.leaveGridView(), "Should be possible to exit grid");
+ assert.isOk(!settings.inGrid, "No longer in grid");
+ assert.isOk(!this.leaveGridView(), "Should not be possible to exit grid");
+ assert.isOk(!settings.inGrid, "Still not in grid");
+ assert.isOk(this.enterGridView(), "Should be possible to enter grid");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('goToPageByName(filename, xAnchor, yAnchor)', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.isOk(this.gotoPageByName('https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_001v.jp2', "right", "center"), "It should find the page index for folio-001v");
+ assert.strictEqual(settings.activePageIndex, 1, "Now the page number should be 2 (index 1)");
+ assert.strictEqual(settings.viewport.top, 1103, "The page should be anchored to the center (vertically)");
+ assert.strictEqual(settings.viewport.left, 0, "The page should be anchored to the right");
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it("gotoPageByURI(uri, xAnchor, yAnchor)", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.strictEqual(settings.activePageIndex, 0, "Initial page number should be 1");
+ assert.isOk(!this.gotoPageByURI('https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_000r.jp2'), "It should not find anything for 000r.jp2");
+ assert.isOk(this.gotoPageByURI('https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_001v.jp2', "right", "center"), "It should find the page index for folio-001v");
+ assert.strictEqual(settings.activePageIndex, 1, "Now the page number should be 2");
+
+ assert.strictEqual(settings.viewport.top, 1103, "The page should be anchored to the center (vertically)");
+ assert.strictEqual(settings.viewport.left, 0, "The page should be anchored to the right");
+ this.gotoPageByIndex(1, "left", "top");
+ assert.strictEqual(settings.viewport.top, 917, "The page should be anchored to the top");
+ assert.strictEqual(settings.viewport.left, 0, "The page should be anchored to the left");
+ this.gotoPageByIndex(2, "right", "bottom");
+ assert.strictEqual(settings.viewport.bottom, 2700, "The page should be anchored to the bottom");
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it("getPageIndex()", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.strictEqual(this._getPageIndex('https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_001v.jp2'), 1, "Valid filename");
+ assert.strictEqual(this._getPageIndex('https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_001lolv.jp2'), -1, "Invalid filename");
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ // Can't really test the getCurrentURL function
+
+ // Can't really test getURLHash easily either
+ // Since it relies on getState, we can test the public version of that instead
+
+ it("getState()", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ var viewportHeight = 494;
+ var pageDimens = this.getCurrentPageDimensionsAtCurrentZoomLevel();
+
+ var expected = {
+ f: false,
+ v: 'd',
+ i: 'https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_001r.jp2',
+ n: 5,
+ p: false,
+ x: pageDimens.width / 2,
+ y: viewportHeight / 2,
+ z: 2
+ };
+
+ var actual = this.getState();
+
+ // Sanity check
+ assert.deepEqual(Object.keys(actual).sort(), Object.keys(expected).sort(), 'State shape should be as expected');
+
+ Object.keys(expected).forEach(function (key)
+ {
+ if (key === 'x')
+ assert.closeTo(actual[key], 456, 1, "State key '" + key + "'");
+ else
+ assert.strictEqual(actual[key], expected[key], "State key '" + key + "'");
+ });
+
+ this.changeView('book');
+ assert.strictEqual(this.getState().v, 'b', 'View state should be book');
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it("setState()", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ var state = {
+ f: true,
+ v: 'd',
+ i: "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_003r.jp2",
+ n: 3,
+ p: false,
+ x: 500,
+ y: 300,
+ z: 3
+ };
+
+ this.setState(state);
+ assert.isOk(settings.inFullscreen, "Should now be in fullscreen");
+ assert.isOk(!settings.inGrid, "Should not be in grid");
+ assert.isOk(!settings.inBookLayout, "Should not be in book view");
+ assert.strictEqual(settings.activePageIndex, 4, "Current page should be 5 (index of 4)");
+ assert.strictEqual(settings.pagesPerRow, 3, "Pages per row should be 3");
+ assert.strictEqual(settings.zoomLevel, 3, "Zoom level should be 3");
+
+ // Recompute the offsets from first principles
+ var index = this._getPageIndex("https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_003r.jp2");
+ var offset = this.getPageOffset(index);
+ var viewportElem = settings.viewportElement;
+ // var x = viewportElem.scrollLeft - offset.left + (viewportElem.clientWidth / 2);
+ var y = viewportElem.scrollTop - offset.top + (viewportElem.clientHeight / 2);
+
+ // NOTE: throws error in headless for some reason, works fine in debug though
+ // assert.closeTo(x, 925, 1, "x offset should be the specified value");
+ assert.closeTo(y, 300, 1, "y offset should be the specified value");
+
+ state = {
+ f: false,
+ v: 'g',
+ i: "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_005v.jp2",
+ n: 4,
+ p: true,
+ x: 100,
+ y: 200,
+ z: 4
+ };
+
+ this.setState(state);
+ assert.isOk(!settings.inFullscreen, "Should not be in fullscreen");
+ assert.isOk(settings.inGrid, "Should be in grid");
+ assert.strictEqual(settings.activePageIndex, 9, "Current page should be 005v.jp2 (index of 9)");
+ assert.strictEqual(settings.pagesPerRow, 4, "Pages per row should be 4");
+ assert.strictEqual(settings.zoomLevel, 4, "Zoom level should be 4");
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it("translateFromMaxZoomLevel()", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ var state = {
+ f: true,
+ v: 'd',
+ i: "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_003r.jp2",
+ n: 3,
+ p: false,
+ x: 500,
+ y: 300,
+ z: this.getMaxZoomLevel()
+ };
+
+ this.setState(state);
+
+ var boxOnMaxPage = {x: 100, y: 100, width:1234, height:1324};
+
+ // first check to make sure the box on the max zoom level is the same as the box we feed in.
+ assert.strictEqual(this.translateFromMaxZoomLevel(100), boxOnMaxPage.x);
+ assert.strictEqual(this.translateFromMaxZoomLevel(100), boxOnMaxPage.y);
+ assert.strictEqual(this.translateFromMaxZoomLevel(1234), boxOnMaxPage.width);
+ assert.strictEqual(this.translateFromMaxZoomLevel(1324), boxOnMaxPage.height);
+
+ // reset the state to a different zoom level
+ state = {
+ f: true,
+ v: 'd',
+ i: "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_003r.jp2",
+ n: 3,
+ p: false,
+ x: 500,
+ y: 300,
+ z: 2
+ };
+ this.setState(state);
+
+ // check that the box translation has changed accordingly.
+ assert.strictEqual(this.translateFromMaxZoomLevel(boxOnMaxPage.x), 12.5);
+ assert.strictEqual(this.translateFromMaxZoomLevel(boxOnMaxPage.y), 12.5);
+ assert.strictEqual(this.translateFromMaxZoomLevel(boxOnMaxPage.width), 154.25);
+ assert.strictEqual(this.translateFromMaxZoomLevel(boxOnMaxPage.height), 165.5);
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it("translateToMaxZoomLevel()", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ var state = {
+ f: true,
+ v: 'd',
+ i: "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_003r.jp2",
+ n: 3,
+ p: false,
+ x: 500,
+ y: 300,
+ z: this.getMaxZoomLevel()
+ };
+
+ this.setState(state);
+
+ var boxOnThisPage = {x: 10, y: 10, width:123, height:132};
+
+ // first check to make sure the box on the max zoom level is the same as the box we feed in.
+ assert.strictEqual(this.translateToMaxZoomLevel(10), boxOnThisPage.x);
+ assert.strictEqual(this.translateToMaxZoomLevel(10), boxOnThisPage.y);
+ assert.strictEqual(this.translateToMaxZoomLevel(123), boxOnThisPage.width);
+ assert.strictEqual(this.translateToMaxZoomLevel(132), boxOnThisPage.height);
+
+ // reset the state to a different zoom level
+ state = {
+ f: true,
+ v: 'd',
+ i: "https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_003r.jp2",
+ n: 3,
+ p: false,
+ x: 500,
+ y: 300,
+ z: 2
+ };
+ this.setState(state);
+
+ // console.log(this.translateToMaxZoomLevel(boxOnThisPage.x));
+ // check that the box translation has changed accordingly. This assumes that
+ // the co-ordinate we want to translate is on the current zoom level (2), and we want
+ // to get it on the max page. Thus: 123 * (4-2)^2 = 984
+ assert.strictEqual(this.translateToMaxZoomLevel(boxOnThisPage.x), 80);
+ assert.strictEqual(this.translateToMaxZoomLevel(boxOnThisPage.y), 80);
+ assert.strictEqual(this.translateToMaxZoomLevel(boxOnThisPage.width), 984);
+ assert.strictEqual(this.translateToMaxZoomLevel(boxOnThisPage.height), 1056);
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it("getPageDimensionsAtCurrentZoomLevel([pageIndex])", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ var current = this.getCurrentPageDimensionsAtCurrentZoomLevel();
+ var page10 = this.getCurrentPageDimensionsAtCurrentZoomLevel();
+
+ assert.deepEqual(current, page10, 'It should default to the current page');
+ assert.ok(typeof page10.height === 'number' && typeof page10.width === 'number', 'It should ... have numbers?');
+
+ this.leaveGridView();
+
+ let fcn = () => { this.getPageDimensionsAtCurrentZoomLevel(-5); };
+ expect(fcn).to.throw('Invalid Page Index');
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ goDirectlyTo: 10,
+ inGrid: true
+ });
+ });
+
+ it('toggleOrientation()', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.isOk(this.isVerticallyOriented(), 'Should be vertically oriented');
+ this.toggleOrientation();
+ assert.isOk(!this.isVerticallyOriented(), 'Should no longer be vertically oriented');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('toggleNonPagedPagesVisibility()', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.isOk(!this.settings.showNonPagedPages, 'Should not show non paged pages');
+ this.toggleNonPagedPagesVisibility();
+ assert.isOk(this.settings.showNonPagedPages, 'Should show non paged pages');
+
+ this.showNonPagedPages();
+ this.hideNonPagedPages();
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('setGridPagesPerRow(pagesPerRow)', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ this.setGridPagesPerRow(4);
+ assert.isOk(this.settings.inGrid, 'Should now be in grid');
+ assert.strictEqual(this.getGridPagesPerRow(), 4, 'Should be 4 pages per row');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('isInFullscreen()', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.isOk(!this.isInFullscreen(), 'Should not be in fullscreen');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('isReady()', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.isOk(this.isReady(), 'Viewer loaded, should be ready');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+
+ assert.isOk(!diva.isReady(), 'Should not be ready yet');
+ });
+
+ it('isPageIndexValid(pageIndex)', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.isOk(this.isPageIndexValid(2), 'Page index 2 should be valid');
+ assert.isOk(!this.isPageIndexValid(-5), 'Page index -5 should not be valid');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('hasOtherImages(pageIndex)', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.isOk(!this.hasOtherImages(1), 'Page 1 should not have other images');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('gotoPageByLabel(label)', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ this.gotoPageByLabel('folio 001v');
+ assert.strictEqual(this.getActivePageIndex(), 1, 'Should now be at page 2 (index 1)');
+
+ // try with number instead of label
+ this.gotoPageByLabel('asdfjkl');
+ assert.strictEqual(this.getActivePageIndex(), 1, 'Should still be on page 2');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('getPageIndexForPageXYValues(pageX, pageY)', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.strictEqual(this.getPageIndexForPageXYValues(-500, -500), -1, 'Index at (-500, -500) should be -1 (dne)');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('getPageDimensionsAtZoomLevel(pageIdx, zoomLevel)', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ let dims = this.getPageDimensionsAtZoomLevel(0, 2);
+ assert.strictEqual(dims.width, 551, 'Width of first page at zoom 2 should be 551');
+
+ dims = this.getPageDimensionsAtZoomLevel(0, 10);
+ assert.strictEqual(dims.width, 4414, 'Zoom 10 should default to max, width should be 4414');
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+
+ assert.isOk(!diva.getPageDimensionsAtZoomLevel(0, 1), 'Page not loaded should return false');
+ });
+
+ it('getPageDimensions(pageIndex)', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.strictEqual(this.getPageDimensions(0).height, 874, 'Page 1 height should be 874');
+ assert.strictEqual(this.getPageDimensions(251).height, 866, 'Page 252 height should be 866');
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+
+ assert.isNull(diva.getPageDimensions(0), 'Should return null if diva not loaded yet');
+ });
+
+ it('getOtherImages(pageIndex)', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.isEmpty(this.getOtherImages(0), 'Page 1 should have no other images');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('getNumberOfPages() viewer not loaded', function ()
+ {
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+
+ assert.isFalse(diva.getNumberOfPages(), 'Should return false if diva not loaded yet');
+ });
+
+ it('getMinZoomLevel()', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.strictEqual(this.getMinZoomLevel(), 0, 'Min zoom should be 0');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('getMaxZoomLevelForPage(pageIdx)', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.strictEqual(this.getMaxZoomLevelForPage(10), 5, 'Max zoom of page 10 should be 5');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+
+ assert.isFalse(diva.getMaxZoomLevelForPage(0), 'Should return false if diva not loaded yet');
+ });
+
+ it('getInstanceSelector()', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ // seems this function is actually broken (returns undefined). adding for coverage
+ this.getInstanceSelector();
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('getFilenames()', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ let filenames = this.getFilenames();
+ assert.strictEqual(filenames[0], 'https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_001r.jp2', 'First page URI should be right');
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('getAllPageURIs()', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ let URIs = this.getAllPageURIs();
+ assert.strictEqual(URIs[0], 'https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_001r.jp2', 'First page URI should be right');
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('getCurrentPageFilename()', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.strictEqual(this.getCurrentPageFilename(), 'https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_006r.jp2', 'Page 10 filename should be right');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ goDirectlyTo: 10
+ });
+ });
+
+ it('getCurrentPageURI()', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.strictEqual(this.getCurrentPageURI(), 'https://images.simssa.ca/iiif/image/cdn-hsmu-m2149l4/cdn-hsmu-m2149l4_006r.jp2', 'Page 10 URI should be right');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ goDirectlyTo: 10
+ });
+ });
+
+ it('getCurrentCanvas()', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.strictEqual(this.getCurrentCanvas(), 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/canvas/folio-001r.json', 'Page 1 canvas should be right');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('getCurrentPageOffset()', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.strictEqual(this.getCurrentPageOffset().left, 27, 'First page left offset should be 27');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('getCurrentURL()', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ // can't really assert this since it could change based on testing environment
+ this.getCurrentURL();
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('disableDragScrollable(), enableDragScrollable()', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ this.disableDragScrollable();
+ assert.isTrue(this.viewerState.viewportObject.hasAttribute('nochilddrag'), 'Should not be draggable');
+ this.enableDragScrollable();
+ assert.isFalse(this.viewerState.viewportObject.hasAttribute('nochilddrag'), 'Should be draggable');
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('disableScrollable(), enableScrollable()', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ this.disableScrollable();
+ assert.isFalse(this.viewerState.isScrollable, 'Should not be scrollable');
+ this.enableScrollable();
+ assert.isTrue(this.viewerState.isScrollable, 'Should be scrollable');
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('deactivate()', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ this.deactivate();
+ assert.isFalse(this.viewerState.isActiveDiva, 'Diva should no longer be active');
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+});
\ No newline at end of file
diff --git a/test/settings_test.js b/test/settings_test.js
new file mode 100644
index 00000000..4d02c74a
--- /dev/null
+++ b/test/settings_test.js
@@ -0,0 +1,487 @@
+import Diva from '../source/js/diva';
+
+// jQuery mimic
+let el = document.getElementById.bind(document);
+
+describe('Settings', function ()
+{
+ beforeEach(function ()
+ {
+ // reset event subscription so only current test is subscribed
+ Diva.Events.unsubscribeAll();
+
+ // recreate diva instance
+ let oldWrapper = document.getElementById('parent-wrapper');
+ oldWrapper.parentNode.removeChild(oldWrapper);
+ let newWrapper = document.createElement('div');
+ newWrapper.id = 'parent-wrapper';
+ newWrapper.setAttribute('style', 'width: 984px;');
+ let div = document.createElement('div');
+ div.id = 'diva-wrapper';
+ newWrapper.appendChild(div);
+ document.body.appendChild(newWrapper);
+ });
+
+
+ it("adaptivePadding enabled", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings) {
+ assert.notStrictEqual(settings.verticalPadding, 10, "Adaptive padding should be used, overrides vertical/horizontal");
+ assert.notStrictEqual(settings.horizontalPadding, 10, "Horizontal padding should be overridden by adaptive");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ adaptivePadding: 0.10
+ });
+ });
+
+ it("adaptivePadding disabled, fixedPadding set", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.strictEqual(settings.verticalPadding, 11, "Vertical padding should be 11 (no plugins enabled)");
+ assert.strictEqual(settings.horizontalPadding, 11, "Horizontal padding should be 11 (fixedPadding)");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ adaptivePadding: 0,
+ fixedPadding: 11,
+ });
+ });
+
+ it("enableFullscreen false", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ // Make sure the fullscreen icon is not there
+ assert.isNull(el(settings.selector + 'fullscreen-icon'), "Fullscreen icon should not be present");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ enableFullscreen: false
+ });
+ });
+
+ it("enableFullscreen true", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ // Make sure the fullscreen icon is there
+ assert.isNotNull(el(settings.selector + 'fullscreen-icon'), "Fullscreen icon should be present");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ enableFullscreen: true
+ });
+ });
+
+ it("enableGotoPage false", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.isNull(el(settings.selector + 'goto-page'), "Go-to-page box should not be present");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ enableGotoPage: false
+ });
+ });
+
+ it("enableGotoPage true", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.isNotNull(el(settings.selector + 'goto-page'), "Go-to-page box should be present");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ enableGotoPage: true
+ });
+ });
+
+ it("fixedHeightGrid false", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function()
+ {
+ this.enterGridView();
+
+ assert.isOk(pagesHaveEqualDimension(this, 'width'), 'All page widths should be equal');
+ assert.isNotOk(pagesHaveEqualDimension(this, 'height'), 'All page heights should NOT be equal');
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ fixedHeightGrid: false
+ });
+ });
+
+ it("fixedHeightGrid true", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function()
+ {
+ this.enterGridView();
+
+ assert.isNotOk(pagesHaveEqualDimension(this, 'width'), 'All page widths should NOT be equal');
+ assert.isOk(pagesHaveEqualDimension(this, 'height'), 'All page heights should be equal');
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ fixedHeightGrid: true
+ });
+ });
+
+ function pagesHaveEqualDimension(viewer, dimension)
+ {
+ var dimensions = [];
+
+ var numPages = viewer.getNumberOfPages();
+
+ for (var i = 0; i < numPages; i++)
+ dimensions.push(viewer.getPageDimensionsAtCurrentZoomLevel(i)[dimension]);
+
+ var first = dimensions[0];
+
+ return dimensions.every(function (dim)
+ {
+ // FIXME: Should floating point numbers happen here?
+ return Math.abs(dim - first) < 0.5;
+ });
+ }
+
+ it("goDirectlyTo, valid", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.strictEqual(settings.activePageIndex, 10, "The initial page index should be 10");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ goDirectlyTo: 10
+ });
+ });
+
+ it("goDirectlyTo, invalid", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.strictEqual(settings.activePageIndex, 0, "The initial page index should be 0 (the fallback)");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ goDirectlyTo: -10
+ });
+ });
+
+ it('hashParamSuffix, omitted', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.strictEqual(typeof settings.hashParamSuffix, 'string', "If omitted, hashParamSuffix should default to... some string");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json'
+ });
+ });
+
+ it('hashParamSuffix, provided', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.strictEqual(settings.hashParamSuffix, '!!!!!!!', 'User hashParamSuffix should be honoured');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ hashParamSuffix: '!!!!!!!'
+ });
+ });
+
+ it("inBookLayout true", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.ok(settings.inBookLayout, 'inBookLayout should remain true after initialization');
+ assert.ok(this.getPageOffset(1).left < this.getPageOffset(2).left, 'Page 1 should be to the left of page 2');
+ assert.ok(this.getPageOffset(2).left > this.getPageOffset(3).left, 'Page 2 should be to the right of page 3');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ inBookLayout: true
+ });
+ });
+
+ it("manifest.paged triggers inBookLayout", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.isOk(settings.manifest.paged, 'settings.manifest.paged should be true when manifest has viewingHint: paged');
+ assert.isOk(settings.inBookLayout, 'settings.inBookLayout should be true when manifest.paged is true');
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://ddmal.github.io/diva.js/try/demo/beromunster-iiif.json'
+ });
+ });
+
+ it("inGrid false", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.isOk(!settings.inGrid, "inGrid setting should still be false");
+ assert.strictEqual(el(settings.selector + 'view-menu').children[0].classList[0], 'diva-document-icon', "Current toolbar view icon should be the document icon");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ inGrid: false
+ });
+ });
+
+ it("inGrid true", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.isOk(settings.inGrid, "inGrid setting should be preserved");
+ assert.strictEqual(el(settings.selector + 'view-menu').children[0].classList[0], 'diva-grid-icon', "Current toolbar view icon should be the grid icon");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ inGrid: true
+ });
+ });
+
+ // // imageDir cannot really be tested either
+
+ it("valid max/minPagesPerRow, valid pagesPerRow", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.strictEqual(settings.minPagesPerRow, 3, "minPagesPerRow should be 3");
+ assert.strictEqual(settings.maxPagesPerRow, 5, "maxPagesPerRow should be 5");
+ assert.strictEqual(settings.pagesPerRow, 5, "pagesPerRow is valid");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ minPagesPerRow: 3,
+ maxPagesPerRow: 5,
+ pagesPerRow: 5
+ });
+ });
+
+ it("invalid max/minPagesPerRow, invalid pagesPerRow", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.strictEqual(settings.minPagesPerRow, 2, "minPagesPerRow is invalid, set to 2");
+ assert.strictEqual(settings.maxPagesPerRow, 2, "maxPagesPerRow should be set to min");
+ assert.strictEqual(settings.pagesPerRow, 2, "invalid pages per row should be set to min");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ minPagesPerRow: 1,
+ maxPagesPerRow: 0,
+ pagesPerRow: 4
+ });
+ });
+
+ it("max/minZoomLevel, invalid values", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.strictEqual(settings.minZoomLevel, 0, "minZoomLevel should be set to 0");
+ assert.strictEqual(settings.maxZoomLevel, 5, "maxZoomLevel should be set to 5");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ minZoomLevel: -2,
+ maxZoomLevel: 6,
+ });
+ });
+
+ it("max/minZoomLevel, valid values, valid zoomLevel", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.strictEqual(settings.minZoomLevel, 1, "minZoomLevel should be set to 1");
+ assert.strictEqual(settings.maxZoomLevel, 3, "maxZoomLevel should be set to 3");
+ assert.strictEqual(settings.zoomLevel, 2, "zoomLevel should be 2");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ minZoomLevel: 1,
+ maxZoomLevel: 3,
+ zoomLevel: 2
+ });
+ });
+
+ it("max/minZoomLevel, valid values, invalid zoomLevel", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.strictEqual(settings.zoomLevel, 1, "Zoom level should be the minZoomLevel (1)");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ minZoomLevel: 1,
+ maxZoomLevel: 3,
+ zoomLevel: 0
+ });
+ });
+
+ it("max/minZoomLevel, invalid/valid values, invalid zoomLevel", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function (settings)
+ {
+ assert.strictEqual(settings.minZoomLevel, 2, "minZoomLevel should be set to 2 (valid)");
+ assert.strictEqual(settings.maxZoomLevel, 5, "maxZoomLevel should be set to 5 (invalid)");
+ assert.strictEqual(settings.zoomLevel, 2, "zoomLevel should be 2 (the minimum)");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ minZoomLevel: 2,
+ maxZoomLevel: -2,
+ zoomLevel: -2
+ });
+ });
+
+ it("object for objectData", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ assert.strictEqual(this.getItemTitle(), "First page of Beromunster", "Should process an object for objectData like a normal manifest");
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: {
+ "@context": "http://iiif.io/api/presentation/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/beromunster/manifest.json",
+ "@type": "sc:Manifest",
+ "label": "First page of Beromunster",
+ "viewingHint": "paged",
+ "sequences": [
+ {
+ "@type": "sc:Sequence",
+ "canvases": [
+ {
+ "@id": "https://images.simssa.ca/iiif/image/beromunster/canvas/bm_001.json",
+ "@type": "sc:Canvas",
+ "label": "Bm 001",
+ "height": 4445,
+ "width": 2846,
+ "images": [
+ {
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "resource": {
+ "@id": "https://images.simssa.ca/iiif/image/beromunster/bm_001.tif/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/jpeg",
+ "height": 4445,
+ "width": 2846,
+ "service": {
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "https://images.simssa.ca/iiif/image/beromunster/bm_001.tif",
+ "profile": "http://iiif.io/api/image/2/level2.json"
+ }
+ },
+ "on": "https://images.simssa.ca/iiif/image/beromunster/canvas/bm_001.json"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ });
+ });
+
+ // // pageLoadTimeout is a bit weird to test, but the code is simple so it should be fine
+
+ // // pagesPerRow is tested above, along with max/minPagesPerRow
+
+ // // No real point testing tileHeight/Width as we don't have images of different tile sizes
+
+ it("viewportMargin, value of 0", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ var dv = this;
+
+ setTimeout(function ()
+ {
+ assert.isOk(dv.isPageInViewport(0), "The first page should be loaded");
+ assert.isNotOk(dv.isPageInViewport(1), "The second page should not be loaded");
+ done();
+ }, 100);
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ viewportMargin: 0
+ });
+ });
+
+ it("viewportMargin, value of 1000", function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ var dv = this;
+
+ // The second page should be visible after a timeout
+ setTimeout(function () {
+ assert.isOk(dv.isPageInViewport(0), "The first page should be loaded");
+ assert.isOk(dv.isPageInViewport(1), "The second page should be loaded");
+ done();
+ }, 100);
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ viewportMargin: 1000
+ });
+ });
+});
\ No newline at end of file
diff --git a/test/utils/book-layout_test.js b/test/utils/book-layout_test.js
new file mode 100644
index 00000000..bcedbd77
--- /dev/null
+++ b/test/utils/book-layout_test.js
@@ -0,0 +1,148 @@
+import ImageManifest from '../../source/js/image-manifest';
+import getBookLayout from '../../source/js/page-layouts/book-layout';
+
+var beromunsterManifest = require('../manifests/beromunsterManifest.json');
+var manifest = ImageManifest.fromIIIF(beromunsterManifest);
+
+describe('Get Book Layout', function ()
+{
+ it('In vertical orientation positions first page to the right', function ()
+ {
+ var layouts = getBookLayout({
+ manifest: manifest,
+ verticallyOriented: true
+ });
+
+ var firstGroup = layouts[0];
+ var width = manifest.getMaxPageDimensions(0).width;
+
+ assert.strictEqual(firstGroup.pages.length, 1, 'First group should be a single page');
+ assert.strictEqual(firstGroup.dimensions.width, 2 * width, 1, 'Group size should be twice page width');
+ assert.strictEqual(firstGroup.pages[0].groupOffset.left, width, 1, 'Page should be offset to the left by its width');
+ });
+
+ it('In horizontal orientation, shrink first group to single page size', function ()
+ {
+ var layouts = getBookLayout({
+ manifest: manifest,
+ verticallyOriented: false
+ });
+
+ var firstGroup = layouts[0];
+ var width = manifest.getMaxPageDimensions(0).width;
+
+ assert.strictEqual(firstGroup.pages.length, 1, 'First group should be a single page');
+ assert.strictEqual(firstGroup.dimensions.width, width, 1, 'Group width should be page width');
+ assert.strictEqual(firstGroup.pages[0].groupOffset.left, 0, 1, 'Page should not be offset to the left');
+ });
+
+ it('In vertical orientation, facing pages groups fit max height, width', function ()
+ {
+ var layouts = getBookLayout({
+ manifest: manifest,
+ verticallyOriented: true
+ });
+
+ var group = layouts[1];
+
+ assertDifferentSizePages(group);
+
+ assertFitsMax(group, 'width');
+ assertFitsMax(group, 'height');
+ });
+
+ it('In horizontal orientation, facing pages groups fit max height, tight width', function ()
+ {
+ var layouts = getBookLayout({
+ manifest: manifest,
+ verticallyOriented: false
+ });
+
+ var group = layouts[1];
+
+ assertDifferentSizePages(group);
+ assertFitsMax(group, 'height');
+
+ var width1 = group.pages[0].dimensions.width;
+ var width2 = group.pages[1].dimensions.width;
+ var groupWidth = group.dimensions.width;
+
+ assert.closeTo(groupWidth, width1 + width2, 1, 'Group width should be sum of page widths');
+ });
+
+ it('In vertical orientation, final left page is left-aligned', function ()
+ {
+ var layouts = getBookLayout({
+ manifest: manifest,
+ verticallyOriented: true
+ });
+
+ var lastGroup = layouts[layouts.length - 1];
+
+ assert.strictEqual(lastGroup.pages.length, 1, 'Sanity check: Last group should be a single page');
+
+ assert.closeTo(lastGroup.dimensions.width,
+ lastGroup.pages[0].dimensions.width * 2,
+ 1,
+ 'Group width should be twice page width');
+
+ assert.strictEqual(lastGroup.dimensions.height,
+ lastGroup.pages[0].dimensions.height,
+ 'Group height should be page height');
+
+ assert.closeTo(lastGroup.pages[0].groupOffset.left, 0, 1, 'Page should not be offset to the left');
+ });
+
+ it('In horizontal orientation, final left page is is in tight-fit group', function ()
+ {
+ var layouts = getBookLayout({
+ manifest: manifest,
+ verticallyOriented: false
+ });
+
+ var lastGroup = layouts[layouts.length - 1];
+
+ assert.strictEqual(lastGroup.pages.length, 1, 'Sanity check: Last group should be a single page');
+
+ assert.deepEqual(lastGroup.dimensions, lastGroup.pages[0].dimensions, 1, 'Group size should be page size');
+ assert.closeTo(lastGroup.pages[0].groupOffset.left, 0, 1, 'Page should not be offset to the left');
+ });
+
+ it('Displays facing pages in tight-fit group', function ()
+ {
+ var layouts = getBookLayout({
+ manifest: manifest,
+ verticallyOriented: true
+ });
+
+ var group = layouts[17];
+
+ assert.strictEqual(group.pages.length, 1, 'In own group');
+ assert.strictEqual(group.dimensions.width, group.pages[0].dimensions.width, 'Tight fit width');
+ });
+
+ function assertFitsMax(group, dimension)
+ {
+ var p1 = group.pages[0].dimensions[dimension];
+ var p2 = group.pages[1].dimensions[dimension];
+ var g = group.dimensions[dimension];
+
+ var times = dimension === 'width' ? 2 : 1;
+
+ assert.closeTo(g, Math.max(p1, p2) * times, 1, 'Group ' + dimension + ' should be derived from max page ' + dimension);
+ }
+
+ function assertDifferentSizePages(group)
+ {
+ assertDimenDiffers(group, 'height');
+ assertDimenDiffers(group, 'width');
+ }
+
+ function assertDimenDiffers(group, dimension)
+ {
+ var p1 = group.pages[0].dimensions[dimension];
+ var p2 = group.pages[1].dimensions[dimension];
+
+ assert.notStrictEqual(p1, p2, 'Sanity check: page ' + dimension + ' differs');
+ }
+});
\ No newline at end of file
diff --git a/test/utils/elt_test.js b/test/utils/elt_test.js
new file mode 100644
index 00000000..17a44a84
--- /dev/null
+++ b/test/utils/elt_test.js
@@ -0,0 +1,102 @@
+import {elt} from '../../source/js/utils/elt';
+
+describe('elt util', function ()
+{
+ it("elt() function works", function ()
+ {
+ // Serialize node type and text content (not attributes, because those are more complicated)
+ var serialize = function (node)
+ {
+ if (node.nodeName === '#text')
+ return node.textContent;
+
+ return {
+ name: node.nodeName.toLowerCase(),
+ childNodes: Array.prototype.map.call(node.childNodes, serialize)
+ };
+ };
+
+ var simple = elt('span');
+ var expectedSimple = { name: 'span', childNodes: [] };
+ assert.deepEqual(serialize(simple), expectedSimple, 'It should create nodes with the given tag');
+
+ var withNull = elt('span', null, undefined);
+ var expectedWithNull = { name: 'span', childNodes: [] };
+ assert.deepEqual(serialize(withNull), expectedWithNull, 'It should ignore null and undefined values');
+
+ var withText = elt('span', 'A', 'B');
+ var expectedWithText = { name: 'span', childNodes: ['A', 'B'] };
+ assert.deepEqual(serialize(withText), expectedWithText, 'It should add additional string arguments as text');
+
+ var withArray = elt('ol', [
+ elt('li', 'first'),
+ elt('li', 'second'),
+ [
+ elt('li', 'more'),
+ elt('li', 'and more')
+ ]
+ ]);
+ var expectedWithArray = {
+ name: 'ol',
+ childNodes: [
+ { name: 'li', childNodes: ['first'] },
+ { name: 'li', childNodes: ['second'] },
+ { name: 'li', childNodes: ['more'] },
+ { name: 'li', childNodes: ['and more'] }
+ ]
+ };
+ assert.deepEqual(serialize(withArray), expectedWithArray, 'It should recurse on nested arrays');
+
+ var withOther = elt('span', 2, false);
+ var expectedWithOther = { name: 'span', childNodes: ['2', 'false'] };
+ assert.deepEqual(serialize(withOther), expectedWithOther, 'It should coerce other arguments to strings');
+
+ var link = elt('a',
+ { href: 'http://example.org/', title: 'overridden' },
+ 'Hello world!',
+ { title: 'additional argument' }
+ );
+ var expectedLink = {
+ name: 'a',
+ childNodes: ['Hello world!']
+ };
+ assert.strictEqual(link.href, 'http://example.org/', 'It should set attributes from object arguments');
+ assert.strictEqual(link.title, 'additional argument', 'It should handle multiple attribute arguments');
+ assert.deepEqual(serialize(link), expectedLink, 'It should handle children along with attribute arguments');
+
+ var fragment = document.createDocumentFragment();
+ fragment.appendChild(document.createTextNode(', very'));
+
+ var compound = elt('span',
+ 'This is ', elt('em', 'very'), fragment, document.createTextNode(' exciting')
+ );
+ var expectedCompound = {
+ name: 'span',
+ childNodes: [
+ 'This is ',
+ {
+ name: 'em',
+ childNodes: ['very']
+ },
+ ', very',
+ ' exciting'
+ ]
+ };
+ assert.deepEqual(serialize(compound), expectedCompound, 'It should append DOM node arguments');
+
+ var hidden = elt('span', {
+ style: { display: 'none' }
+ });
+ assert.strictEqual(hidden.style.display, 'none', 'It should handle objects for the style attribute');
+
+ var hiddenAsText = elt('span', {
+ style: 'display: none;'
+ });
+ assert.strictEqual(hiddenAsText.style.display, 'none', 'It should handle strings for the style attribute');
+
+ var nullStyle = elt('span', {
+ style: null
+ });
+ assert.strictEqual(nullStyle.style.cssText, '', 'It should ignore a null style');
+ });
+});
\ No newline at end of file
diff --git a/test/utils/events_test.js b/test/utils/events_test.js
new file mode 100644
index 00000000..885a5c53
--- /dev/null
+++ b/test/utils/events_test.js
@@ -0,0 +1,245 @@
+'use strict';
+
+import {Events} from '../../source/js/utils/events';
+
+describe('Events', function ()
+{
+ it('subscribe(topic, callback[, instanceID])', function ()
+ {
+ var events = Events;
+
+ var callback = function () {};
+ assert.deepEqual(events.subscribe('Topic', callback), ['Topic', callback], 'Global callback handles should have no scope');
+ assert.deepEqual(events.subscribe('Topic', callback, 'A'), ['Topic', callback, 'A'], 'Scoped callback handles should have a scope');
+ });
+
+ it('publish(topic[, args])', function ()
+ {
+ var events = Events;
+ var calls = [];
+
+ events.subscribe('MyTopic', function ()
+ {
+ calls.push(['callback 1', this, Array.prototype.slice.call(arguments)]);
+ });
+
+ events.subscribe('MyTopic', function ()
+ {
+ calls.push(['callback 2', this, Array.prototype.slice.call(arguments)]);
+ });
+
+ events.subscribe('MyTopic', function ()
+ {
+ calls.push(['scoped callback', this, Array.prototype.slice.call(arguments)]);
+ }, 'some scope');
+
+ events.publish('OtherTopic', []);
+ events.publish('MyTopic', [1, 2, 3]);
+ events.publish('MyTopic');
+
+ assert.deepEqual(calls, [
+ ['callback 1', null, [1, 2, 3]],
+ ['callback 2', null, [1, 2, 3]],
+ ['callback 1', null, []],
+ ['callback 2', null, []]
+ ], 'Global callbacks should be called for the topic with the arguments in the order subscribed');
+ });
+
+ it('publish(topic, args, scope)', function ()
+ {
+ var scopeID = '1000';
+
+ var scopeObject = {
+ getInstanceId: function ()
+ {
+ return scopeID;
+ }
+ };
+
+ var events = Events;
+ var calls = [];
+
+ events.subscribe('MyTopic', function ()
+ {
+ calls.push(['global callback', this, Array.prototype.slice.call(arguments)]);
+ });
+
+ events.subscribe('MyTopic', function ()
+ {
+ calls.push(['scoped callback', this, Array.prototype.slice.call(arguments)]);
+ }, scopeID);
+
+ events.subscribe('MyTopic', function ()
+ {
+ calls.push(['global callback after scoped', this, Array.prototype.slice.call(arguments)]);
+ });
+
+ events.subscribe('MyTopic', function ()
+ {
+ calls.push(['irrelevant callback', this, Array.prototype.slice.call(arguments)]);
+ }, 'irrelevant');
+
+ events.publish('OtherTopic', ['should not be called'], scopeObject);
+ events.publish('MyTopic', [1, 2, 3], scopeObject);
+ events.publish('MyTopic', null, scopeObject); // Null arguments should work
+
+ assert.deepEqual(calls, [
+ ['global callback', scopeObject, [1, 2, 3]],
+ ['global callback after scoped', scopeObject, [1, 2, 3]],
+ ['scoped callback', scopeObject, [1, 2, 3]],
+ ['global callback', scopeObject, []],
+ ['global callback after scoped', scopeObject, []],
+ ['scoped callback', scopeObject, []]
+ ], 'Global and relevant scoped callbacks should be called, with globals first');
+
+ calls = [];
+
+ var invalidScope = null;
+
+ events.publish('MyTopic', [3, 2, 1], invalidScope);
+
+ // I don't know if this is really desirable behaviour, but it's what happens
+ assert.deepEqual(calls, [
+ ['global callback', invalidScope, [3, 2, 1]],
+ ['global callback after scoped', invalidScope, [3, 2, 1]]
+ ], 'Only global callbacks should be called for invalid scope objects');
+ });
+
+ it('unsubscribe(Array[, completely])', function ()
+ {
+ var events = Events;
+ events.unsubscribeAll();
+
+ var callback = function () {};
+ var otherCallback = function () {};
+
+ events.subscribe('MyTopic', callback);
+ events.subscribe('MyTopic', otherCallback);
+ events.subscribe('MyTopic', callback, 'some scope');
+ events.subscribe('MyTopic', otherCallback, 'some scope');
+ events.subscribe('MyTopic', callback, 'another scope');
+ events.subscribe('MyTopic', otherCallback, 'another scope');
+
+ assert.deepEqual(getTestSubscriptions(), {
+ 'global': [callback, otherCallback],
+ 'some scope': [callback, otherCallback],
+ 'another scope': [callback, otherCallback]
+ }, 'The callbacks should be subscribed (sanity check)');
+
+ assert.ok(events.unsubscribe(['MyTopic', callback]), 'It should return true if events are unsubscribed');
+ assert.ok(!events.unsubscribe(['MyTopic', callback, 'unknown']), 'It should return false if the scope is unknown');
+ assert.ok(!events.unsubscribe(['Blueberries', callback]), 'It should return false if the topic is unknown');
+
+ assert.deepEqual(getTestSubscriptions(), {
+ 'global': [otherCallback],
+ 'some scope': [callback, otherCallback],
+ 'another scope': [callback, otherCallback]
+ }, 'The global callback should be removed');
+
+ assert.ok(!events.unsubscribe(['MyTopic', callback]), 'It should return false if no events are unsubscribed');
+
+ events.unsubscribe(['MyTopic', callback, 'some scope']);
+
+ assert.deepEqual(getTestSubscriptions(), {
+ 'global': [otherCallback],
+ 'some scope': [otherCallback],
+ 'another scope': [callback, otherCallback]
+ }, 'The relevant scoped callback should be removed');
+
+ assert.ok(events.unsubscribe(['MyTopic', callback, 'another scope'], true), 'It should return true if events are unsubscribed (completely)');
+ assert.ok(!events.unsubscribe(['MyTopic', callback, 'another scope'], true), 'It should return false if no events are unsubscribed (completely)');
+
+ assert.deepEqual(getTestSubscriptions(), {
+ 'global': [otherCallback],
+ 'some scope': [otherCallback],
+ 'another scope': []
+ }, 'All scoped callbacks should be removed when `completely` is true');
+
+ events.unsubscribe(['MyTopic', callback], true);
+
+ assert.deepEqual(getTestSubscriptions(), {
+ 'global': [],
+ 'some scope': [otherCallback],
+ 'another scope': []
+ }, 'All global callbacks should be removed when `completely` is true');
+
+ function getTestSubscriptions()
+ {
+ return {
+ 'global': subscriptions(events, 'MyTopic'),
+ 'some scope': subscriptions(events, 'MyTopic', 'some scope'),
+ 'another scope': subscriptions(events, 'MyTopic', 'another scope')
+ };
+ }
+ });
+
+ it('unsubscribeAll([instanceID])', function ()
+ {
+ var events = Events;
+ events.unsubscribeAll();
+
+ var callback = function () {};
+
+ events.subscribe('MyTopic', callback);
+ events.subscribe('MyTopic', callback, 'some scope');
+ events.subscribe('MyTopic', callback, 'another scope');
+
+ assert.deepEqual(getTestSubscriptions(), {
+ 'global': [callback],
+ 'some scope': [callback],
+ 'another scope': [callback]
+ }, 'The callbacks should be subscribed (sanity check)');
+
+ events.unsubscribeAll('some scope');
+
+ assert.deepEqual(getTestSubscriptions(), {
+ 'global': [callback],
+ 'some scope': [],
+ 'another scope': [callback]
+ }, 'All topics for the scope should be unsubscribed');
+
+ events.unsubscribeAll('this is not actually a scope');
+
+ assert.deepEqual(getTestSubscriptions(), {
+ 'global': [callback],
+ 'some scope': [],
+ 'another scope': [callback]
+ }, 'Unsubscribing from an unknown topic should not blow things up');
+
+ events.unsubscribeAll();
+
+ assert.deepEqual(getTestSubscriptions(), {
+ 'global': [],
+ 'some scope': [],
+ 'another scope': []
+ }, 'Unsubscribing without a topic should clear everything');
+
+ function getTestSubscriptions()
+ {
+ return {
+ 'global': subscriptions(events, 'MyTopic'),
+ 'some scope': subscriptions(events, 'MyTopic', 'some scope'),
+ 'another scope': subscriptions(events, 'MyTopic', 'another scope')
+ };
+ }
+ });
+
+ /** Reach into an events instance to check private state **/
+ function subscriptions(events, topic, instanceID)
+ {
+ if (typeof instanceID === 'undefined')
+ instanceID = 'global';
+
+ var topicSubs = events._cache[topic];
+
+ if (!topicSubs)
+ return [];
+
+ var instanceSubs = topicSubs[instanceID];
+
+ if (!instanceSubs)
+ return [];
+
+ return instanceSubs.slice();
+ }
+});
\ No newline at end of file
diff --git a/test/utils/hash-params_test.js b/test/utils/hash-params_test.js
new file mode 100644
index 00000000..9738e901
--- /dev/null
+++ b/test/utils/hash-params_test.js
@@ -0,0 +1,79 @@
+import HashParams from '../../source/js/utils/hash-params';
+
+describe('HashParams', function ()
+{
+ it("HashParams.get", function ()
+ {
+ // First try it with no hash params - should return false
+ assert.ok(!HashParams.get('anything'), "No hash params, should return false");
+
+ // Now set the current URL to something
+ window.location.hash = '#p=149&z=2';
+ var nonexistentParam = HashParams.get('lol');
+ var firstParam = HashParams.get('p');
+ var secondParam = HashParams.get('z');
+ assert.ok(!nonexistentParam, "The nonexistent param should return false");
+ assert.strictEqual(firstParam, '149', "The 'p' param should be 149 (string)");
+ assert.strictEqual(secondParam, '2', "The 'z' param should be 2 (string)");
+
+ // Now let there be only one element in the URL
+ window.location.hash = '#p=149';
+ var soleParam = HashParams.get('p');
+ assert.strictEqual(soleParam, '149', "The 'p' param should be 149 when it is the sole param");
+
+ // Now let there be other elements in the URL
+ window.location.hash = '#z=2&p=100&lol=lol';
+ var anotherFirstParam = HashParams.get('z');
+ var anotherSecondParam = HashParams.get('p');
+ var thirdParam = HashParams.get('lol');
+ assert.strictEqual(anotherFirstParam, '2', "The 'z' param should be '2' when it is the first param");
+ assert.strictEqual(anotherSecondParam, '100', "The 'p' param should be '100' when it is the middle param");
+ assert.strictEqual(thirdParam, 'lol', "The last param should be 'lol'");
+ window.location.hash = '';
+ });
+
+ it("HashParams.update", function ()
+ {
+ window.location.hash = '';
+ // First try it with no hash params in the URL
+ HashParams.update('p', '1');
+ assert.strictEqual(window.location.hash, '#p=1');
+
+ // The key is present but there is no value
+ window.location.hash = '#p=';
+ HashParams.update('p', '2');
+ assert.strictEqual(window.location.hash, '#p=2');
+
+ // Then, with a bunch of irrelevant ones
+ window.location.hash = '#key=2&another=3';
+ HashParams.update('p', '3');
+ assert.strictEqual(window.location.hash, '#key=2&another=3&p=3');
+
+ // One irrelevant one
+ window.location.hash = '#a=b';
+ HashParams.update('p', '4');
+ assert.strictEqual(window.location.hash, '#a=b&p=4');
+
+ // Only one hash param, and it's the one we want to update
+ window.location.hash = '#p=1';
+ HashParams.update('p', '9001');
+ assert.strictEqual(window.location.hash, '#p=9001');
+
+ // Two hash params, one of which is the one we want to update
+ window.location.hash = '#p=4&h=1';
+ HashParams.update('p', '1');
+ assert.strictEqual(window.location.hash, '#p=1&h=1');
+ HashParams.update('h', '100');
+ assert.strictEqual(window.location.hash, '#p=1&h=100');
+
+ // Two hash params, both are which are right (choose one)
+ // Should never happen unless the user is being malicious
+ window.location.hash = '#p=4&p=2';
+ HashParams.update('p', '5');
+ assert.strictEqual(window.location.hash, '#p=4&p=5');
+ // Not actually sure why it chooses the first one to update
+
+ // Restore the URL
+ window.location.hash = '';
+ });
+});
\ No newline at end of file
diff --git a/test/utils/parse-label-value_test.js b/test/utils/parse-label-value_test.js
new file mode 100644
index 00000000..0ff3605f
--- /dev/null
+++ b/test/utils/parse-label-value_test.js
@@ -0,0 +1,45 @@
+import parseLabelValue from '../../source/js/utils/parse-label-value';
+
+describe('Parse Label Value', function ()
+{
+ it('Should parse object -> array -> objects', function ()
+ {
+ let key = {
+ "label" : "Date",
+ "value" : [
+ {
+ "@value" : "1101-1125"
+ }, {
+ "@value" : "1301-1400"
+ }
+ ]
+ };
+
+ let obj = parseLabelValue(key);
+
+ assert.strictEqual(obj.label, 'Date', 'Label should be "Date"');
+ assert.strictEqual(obj.value, '1101-1125, 1301-1400', 'Value should be the date string');
+ });
+
+ it('Should parse object -> array', function ()
+ {
+ let key = {
+ "label": {
+ "en": [
+ "Date Statement"
+ ]
+ },
+ "value": {
+ "en": [
+ "1401",
+ "1500"
+ ]
+ }
+ };
+
+ let obj = parseLabelValue(key);
+
+ assert.strictEqual(obj.label, 'Date Statement', 'Label should be "Date Statement"');
+ assert.strictEqual(obj.value, '1401, 1500', 'Value should be the date string');
+ });
+});
\ No newline at end of file
diff --git a/test/z_plugins_test.js b/test/z_plugins_test.js
new file mode 100644
index 00000000..430c2c1a
--- /dev/null
+++ b/test/z_plugins_test.js
@@ -0,0 +1,184 @@
+import Diva from '../source/js/diva';
+
+let v3Manifest = require('./manifests/iiifv3.json');
+
+describe('Plugins', function ()
+{
+ beforeEach(function ()
+ {
+ // reset event subscription so only current test is subscribed
+ Diva.Events.unsubscribeAll();
+
+ // recreate diva instance
+ let oldWrapper = document.getElementById('parent-wrapper');
+ oldWrapper.parentNode.removeChild(oldWrapper);
+ let newWrapper = document.createElement('div');
+ newWrapper.id = 'parent-wrapper';
+ newWrapper.setAttribute('style', 'width: 984px;');
+ let div = document.createElement('div');
+ div.id = 'diva-wrapper';
+ newWrapper.appendChild(div);
+ document.body.appendChild(newWrapper);
+ });
+
+ //METADATA PLUGIN
+ it('Metadata plugin is created when added as a Diva plugin', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ let icon = document.getElementsByClassName('diva-metadata-icon')[0];
+ assert.isNotNull(icon, 'Metadata icon should exist');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ plugins: [Diva.MetadataPlugin]
+ });
+ });
+
+ it('Metadata div can be opened and closed', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ let icon = document.getElementsByClassName('diva-metadata-icon')[0];
+
+ assert.isNull(document.getElementById('metadataDiv'), 'Metadata div should not exist yet');
+
+ icon.click();
+
+ let div = document.getElementById('metadataDiv');
+ assert.isNotNull(div, 'Metadata div should exist');
+
+ icon.click();
+ assert.strictEqual(div.style.display, 'none', 'Div should be hidden');
+
+ icon.click();
+ document.getElementsByClassName('close-button')[0].click();
+ assert.strictEqual(div.style.display, 'none', 'Div should be hidden from close button');
+
+ // trigger drag events
+ icon.click();
+ let e = new Event('mousedown');
+ div.dispatchEvent(e);
+ e = new Event('mousemove');
+ document.dispatchEvent(e);
+ e = new Event('mouseup');
+ document.dispatchEvent(e);
+ icon.click();
+
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ plugins: [Diva.MetadataPlugin]
+ });
+ });
+
+ // hard to test dragging the element with just javascript, skipping
+
+ // DOWNLOAD PLUGIN
+ it('Download plugin is created when added as a Diva plugin', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ let icon = document.getElementsByClassName('diva-download-icon')[0];
+ assert.isNotNull(icon, 'Download icon should exist');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ plugins: [Diva.DownloadPlugin]
+ });
+ });
+
+ it('Download icon can be clicked', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ let icon = document.getElementsByClassName('diva-download-icon')[0];
+ icon.click();
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ plugins: [Diva.DownloadPlugin]
+ });
+ });
+
+ // MANIPULATION PLUGIN
+ it('Manipulation plugin is created when added as a Diva plugin', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ let icon = document.getElementsByClassName('diva-manipulation-icon')[0];
+ assert.isNotNull(icon, 'Manipulation icon should exist');
+ done();
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: 'https://images.simssa.ca/iiif/manuscripts/cdn-hsmu-m2149l4/manifest.json',
+ plugins: [Diva.ManipulationPlugin]
+ });
+ });
+
+ it('Manipulation controls can be used', function (done)
+ {
+ Diva.Events.subscribe('ViewerDidLoad', function ()
+ {
+ let icon = document.getElementsByClassName('diva-manipulation-icon')[0];
+ icon.click();
+
+ let controls = document.getElementsByClassName('manipulation-tools')[0];
+ assert.isNotNull(controls, 'Controls exist once icon is clicked');
+
+ // give main image some time to load
+ setTimeout(() =>
+ {
+ // do all control related tests
+ let view = document.getElementsByClassName('manipulation-main-area')[0];
+
+ let event = new MouseEvent('dblclick', {
+ 'view': window,
+ 'bubbles': true,
+ 'cancelable': true
+ });
+
+ view.dispatchEvent(event);
+
+ let zoomSlider = document.getElementById('zoom-slider');
+ assert.strictEqual(zoomSlider.value, '2', 'Zoom should now be 2');
+
+ // click on mirror buttons
+ document.getElementById('horizontal-mirror-button').click();
+ document.getElementById('vertical-mirror-button').click();
+
+ // click on first color filter button (grayscale rn)
+ document.getElementsByClassName('color-filters')[0].click();
+ let log = document.getElementById('filter-log');
+
+ // change select to threshold
+ let select = document.getElementById('filter-select');
+ select.value = 'threshold';
+ event = new Event('change');
+ select.dispatchEvent(event);
+ assert.isFalse(log.innerText.includes('Grayscale'), 'Log should be reset');
+
+ // click on secondary image
+ document.getElementsByClassName('manipulation-sidebar-secondary-image')[0].click();
+
+ done();
+ }, 1000);
+ });
+
+ let diva = new Diva('diva-wrapper', { // jshint ignore:line
+ objectData: v3Manifest,
+ plugins: [Diva.ManipulationPlugin]
+ });
+ });
+
+ // hard to test dragging the sliders to manipulate the image with just javascript, skipping
+});
\ No newline at end of file
diff --git a/tests/event-tracker.js b/tests/event-tracker.js
deleted file mode 100644
index cb579473..00000000
--- a/tests/event-tracker.js
+++ /dev/null
@@ -1,73 +0,0 @@
-var diva = require('../source/js/diva');
-
-module.exports = EventTracker;
-
-function EventTracker(assert, viewer)
-{
- this._assert = assert;
- this._viewer = viewer;
- this._queue = [];
-
- this._subscribedEvents = [];
-}
-
-/**
- * Track events of the given type and make sure they aren't called unexpectedly.
- * Event types are also watched if expect() is called for an event of that type.
- *
- * @param {string} eventName
- */
-EventTracker.prototype.watchEvent = function (eventName)
-{
- if (this._subscribedEvents.indexOf(eventName) === -1)
- {
- var handler = this._handleEvent.bind(this, eventName);
-
- diva.Events.subscribe(eventName, handler, this._viewer.getInstanceId());
- this._subscribedEvents.push(eventName);
- }
-};
-
-/**
- * Assert that the next event of a watched type published by the viewer will
- * have these arguments.
- *
- * @param {string} eventName
- * @param {...any} args
- */
-EventTracker.prototype.expect = function (eventName)
-{
- var args = Array.prototype.slice.call(arguments, 1);
-
- this._queue.push({
- expected: {
- event: eventName,
- args: args
- },
- done: this._assert.async()
- });
-
- this.watchEvent(eventName);
-};
-
-EventTracker.prototype._handleEvent = function (eventName)
-{
- var args = Array.prototype.slice.call(arguments, 1);
- var queued = this._queue.shift();
-
- if (!queued)
- {
- this._assert.deepEqual({ event: eventName, args: args }, null, 'Unexpected event triggered');
- return;
- }
-
- var argString = queued.expected.args.map(function (arg)
- {
- return arg + '';
- }).join(', ');
-
- var description = 'Expected event ' + queued.expected.event + ': ' + argString;
- this._assert.deepEqual({ event: eventName, args: args }, queued.expected, description);
-
- queued.done();
-};
diff --git a/tests/index.html b/tests/index.html
deleted file mode 100755
index 1b236ef2..00000000
--- a/tests/index.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Diva.js Test Suite
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/main.js b/tests/main.js
deleted file mode 100644
index d16f2559..00000000
--- a/tests/main.js
+++ /dev/null
@@ -1,15 +0,0 @@
-require('qunit-assert-close');
-require('jquery');
-require('jquery-simulate/jquery.simulate.js');
-
-require('./utils');
-
-// Load all source files to ensure they're counted for code coverage
-const srcContext = require.context('../source/js/', true, /(diva|plugins\/.*)\.js$/);
-srcContext.keys().forEach(srcContext);
-
-require('../source/js/register-builtin-plugins');
-
-// Load all test files
-const testsContext = require.context('./unit/', true, /\.js$/);
-testsContext.keys().forEach(testsContext);
diff --git a/tests/unit/composite-image.js b/tests/unit/composite-image.js
deleted file mode 100644
index a0ba71e0..00000000
--- a/tests/unit/composite-image.js
+++ /dev/null
@@ -1,95 +0,0 @@
-'use strict';
-
-var CompositeImage = require('../../source/js/composite-image');
-
-QUnit.module('CompositeImage');
-
-QUnit.test('getTiles(zoomLevel)', function (assert)
-{
- var tileLevels = [
- dummyTileLevel({ zoomLevel: 2, baseRows: 1, baseCols: 1 }),
- dummyTileLevel({ zoomLevel: 1, baseRows: 1, baseCols: 1 }),
- dummyTileLevel({ zoomLevel: 0, baseRows: 1, baseCols: 1 })
- ];
-
- var composite = new CompositeImage(tileLevels);
-
- // Load the really low-res tile
- composite.updateWithLoadedUrls(getUrls(tileLevels[2].tiles));
-
- assert.propEqual(composite.getTiles(2), tileLevels[2].tiles, 'Should load available images');
-
- var mostOfLevel1 = tileLevels[1].tiles.slice(1);
- composite.updateWithLoadedUrls(getUrls(mostOfLevel1));
-
- assert.propEqual(composite.getTiles(2), [tileLevels[2].tiles[0]].concat(mostOfLevel1),
- 'Should load lower-res tiles if not completely covered (with low-res first)');
-
- assert.propEqual(composite.getTiles(0), tileLevels[2].tiles,
- 'Should prefer tiles at the specified zoomLevel, then higher levels, then lower');
-
- composite.clear();
- composite.updateWithLoadedUrls(getUrls(tileLevels[2].tiles));
- var mostOfLevel0 = tileLevels[0].tiles.slice(1);
- composite.updateWithLoadedUrls(getUrls(mostOfLevel0));
-
- assert.propEqual(composite.getTiles(2), [tileLevels[2].tiles[0]].concat(mostOfLevel0),
- 'Should load lower-res tiles across multiple zoom levels if not completely covered');
-});
-
-function dummyTileLevel(options)
-{
- var zoomLevel = options.zoomLevel,
- baseRows = options.baseRows,
- baseCols = options.baseCols;
-
- var tiles = [];
- var scaleRatio = Math.pow(2, zoomLevel);
-
- for (var baseRow=0; baseRow < baseRows; baseRow++) {
- for (var baseCol=0; baseCol < baseCols; baseCol++) {
- tiles.push.apply(tiles, dummyTiles(scaleRatio, baseRow, baseCol));
- }
- }
-
- return {
- zoomLevel: zoomLevel,
- rows: baseRows * scaleRatio,
- cols: baseCols * scaleRatio,
- tiles: tiles
- };
-}
-
-function dummyTiles(scaleRatio, baseRow, baseCol)
-{
- var tiles = [];
-
- for (var rowOffset=0; rowOffset < scaleRatio; rowOffset++)
- {
- for (var colOffset=0; colOffset < scaleRatio; colOffset++)
- {
- var row = baseRow * scaleRatio + rowOffset;
- var col = baseCol * scaleRatio + colOffset;
-
- var url = 'dummy://ratio/' + scaleRatio + '/' +
- baseRow + '[' + rowOffset + ']/' +
- baseCol + '[' + colOffset + ']';
-
- // FIXME: More fields
- tiles.push({
- url: url,
- row: row,
- col: col
- });
- }
- }
-
- return tiles;
-}
-
-function getUrls(tiles) {
- return tiles.map(function (tile)
- {
- return tile.url;
- });
-}
diff --git a/tests/unit/diva-global.js b/tests/unit/diva-global.js
deleted file mode 100644
index f5e8628e..00000000
--- a/tests/unit/diva-global.js
+++ /dev/null
@@ -1,40 +0,0 @@
-var $ = require('jquery');
-var TestUtils = require('../utils');
-var diva = require('../../source/js/diva');
-
-QUnit.module("diva global", { beforeEach: TestUtils.clearTempDiva });
-
-QUnit.test('diva.create(elem, options) -> Diva', function (assert)
-{
- var wrapper = TestUtils.getWrapper()[0];
- var options = {
- objectData: '../demo/beromunster-iiif.json'
- };
-
- var inst = diva.create(wrapper, options);
-
- assert.strictEqual(inst, $(wrapper).data('diva'), 'Should instantiate and return a Diva viewer');
-
- assert.throws(function ()
- {
- diva.create(wrapper, options);
- }, new Error("Diva is already initialized on #diva-temp"), 'Should throw if element is already initialized');
-});
-
-QUnit.test('diva.find(elem) -> ?Diva', function (assert)
-{
- var dv = $.tempDiva({});
-
- var parent = TestUtils.getWrapper()[0];
-
- assert.strictEqual(diva.find(document.body), null, 'Should return null if the element is not a Diva wrapper');
- assert.strictEqual(diva.find(parent), dv, 'Should return existing instances');
-
- var done = assert.async();
- diva.Events.subscribe('ViewerDidLoad', function ()
- {
- dv.destroy();
- assert.strictEqual(diva.find(parent), null, 'Should return null after instance destruction');
- done();
- });
-});
diff --git a/tests/unit/hashparams.js b/tests/unit/hashparams.js
deleted file mode 100644
index 3f370109..00000000
--- a/tests/unit/hashparams.js
+++ /dev/null
@@ -1,209 +0,0 @@
-/*
-Test coverage: pretty much complete
-*/
-
-var $ = require('jquery');
-var clearTempDiva = require('../utils').clearTempDiva;
-var diva = require('../../source/js/diva');
-
-QUnit.module("Hash params", { beforeEach: clearTempDiva });
-
-var testHashParams = function (testName, hashParams, onReadyCallback, config)
-{
- QUnit.test(testName, function (assert)
- {
- var done = assert.async();
-
- var previousHash = window.location.hash;
-
- window.location.hash = Object.keys(hashParams).map(function (param)
- {
- return param + '=' + hashParams[param];
- }).join('&');
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- var scroll = {
- left: settings.viewportElement.scrollLeft,
- top: settings.viewportElement.scrollTop
- };
-
- onReadyCallback.call(this, settings, assert, scroll);
- window.location.hash = previousHash;
- done();
- });
-
- $.tempDiva($.extend({
- hashParamSuffix: ''
- }, config));
- });
-};
-
-testHashParams('works with hashParamSuffix', {vxyz: 'g', f: 'true'}, function (settings, assert)
-{
- assert.ok(settings.inGrid, 'Should read properties with the specified suffix');
- assert.ok(!settings.inFullscreen, 'Should not read properties without it');
-}, {hashParamSuffix: 'xyz'});
-
-testHashParams("grid view (v)", {v: "g"}, function (settings, assert)
-{
- assert.ok(settings.inGrid, "inGrid setting should be true");
- assert.strictEqual($(settings.selector + 'view-menu').children()[0].classList[0], 'diva-grid-icon', "Current toolbar view icon should be the grid icon");
- assert.ok($(settings.selector + 'grid-out-button').is(':visible'), "Grid buttons (-) should be visible");
- assert.ok($(settings.selector + 'grid-in-button').is(':visible'), "Grid buttons (+) should be visible");
- assert.ok(!$(settings.selector + 'zoom-slider').is(':visible'), "Zoom slider should not be visible");
-});
-
-testHashParams("book view (v)", {v: "b"}, function (settings, assert)
-{
- assert.ok(settings.inBookLayout, "inBookLayout setting should be true");
- assert.strictEqual($(settings.selector + 'view-menu').children()[0].classList[0], 'diva-book-icon', "Current toolbar view icon should be the book icon");
- assert.ok(this.isPageInViewport(0), 'There should be some book pages');
-});
-
-testHashParams("fullscreen (f)", {f: "true"}, function (settings, assert)
-{
- assert.ok(settings.inFullscreen, "inFullscreen setting should be true");
- assert.ok($('body').hasClass('diva-hide-scrollbar'), "The body element should have the hide-scrollbar class");
-});
-
-testHashParams("view (v) = 'g' and fullscreen (f)", {v: "g", f: "true"}, function (settings, assert)
-{
- assert.ok(settings.inFullscreen, "inFullscreen setting should be true");
- assert.ok(settings.inGrid, "inGrid setting should be true");
-});
-
-testHashParams("zoom level (z) - valid value", {z: "3"}, function (settings, assert)
-{
- assert.strictEqual(settings.zoomLevel, 3, "Initial zoom level should be 3");
-});
-
-testHashParams("zoom level (z) - invalid value", {z: "5"}, function (settings, assert)
-{
- assert.strictEqual(settings.zoomLevel, 0, "Initial zoom was invalid but >= 0, should be set to the min (0)");
-});
-
-testHashParams("zoom level (z) and view (v) = 'g' ", {z: "1", v: "g"}, function (settings, assert)
-{
- assert.strictEqual(settings.zoomLevel, 1, "Initial zoom level should be 1");
- assert.ok(settings.inGrid, "Should be in grid initially");
-
- // Now let's switch into document view and see if the zoom level is preserved
- $(settings.selector + 'grid-icon').click();
- assert.strictEqual(settings.zoomLevel, 1, "Zoom level setting should still be 1");
- assert.strictEqual($(settings.selector + 'zoom-label').text(), "Zoom level: 1.00", "Zoom buttons label should show a zoom level of 1");
-});
-
-testHashParams("zoom level (z) and fullscreen (f)", {z: "1", f: "true"}, function (settings, assert)
-{
- assert.strictEqual(settings.zoomLevel, 1, "Initial zoom level should be 1");
- assert.ok(settings.inFullscreen, "Should be in fullscreen initially");
-
- // Check that we're actually in fullscreen mode
- assert.ok($('body').hasClass('diva-hide-scrollbar'), "The body element should have the hide-scrollbar class");
-
- // Check that the zoom level is actually 1
- assert.strictEqual($(settings.selector + 'zoom-label').text(), "Zoom level: 1.00", "Zoom buttons label should show a zoom level of 1");
-});
-
-testHashParams("pagesPerRow (n) - valid value", {n: "3"}, function (settings, assert)
-{
- assert.strictEqual(settings.pagesPerRow, 3, "Pages per row should be 3 initially");
-});
-
-testHashParams("pagesPerRow (n) - invalid value", {n: "1"}, function (settings, assert)
-{
- assert.strictEqual(settings.pagesPerRow, 8, "Pages per row should default to the maximum");
-});
-
-testHashParams("pagesPerRow (n) and view (v) = 'g'", {n: "3", v: "g"}, function (settings, assert)
-{
- assert.strictEqual(settings.pagesPerRow, 3, "Pages per row should be 3 initially");
- assert.ok(settings.inGrid, "Should be in grid initially");
-
- // Check that the pages per row setting is actually 3
- assert.strictEqual($(settings.selector + 'grid-label').text(), "Pages per row: 3", "Grid buttons label should show 3 pages per row");
-});
-
-testHashParams("page filename (i) - valid value", {i: "https://images.simssa.ca/iiif/image/beromunster/bm_006.tif"}, function (settings, assert)
-{
- assert.strictEqual(settings.currentPageIndex, 5, "The initial page should be page 6 (index of 5)");
-}, {enableFilename: true});
-
-testHashParams("page filename (i) - invalid value", {i: "https://images.simssa.ca/iiif/image/beromunster/bm_000.tif"}, function (settings, assert)
-{
- assert.strictEqual(settings.currentPageIndex, 0, "The initial page should just be the first page");
-}, {enableFilename: true});
-
-testHashParams("page number (p) - valid value", {p: "6"}, function (settings, assert)
-{
- assert.strictEqual(settings.currentPageIndex, 5, "The initial page should be page 6 (index of 5)");
-}, {enableFilename: false});
-
-testHashParams("page number (p) - invalid value", {p: "600"}, function (settings, assert)
-{
- assert.strictEqual(settings.currentPageIndex, 0, "The initial page should just be the first page");
-}, {enableFilename: false});
-
-testHashParams("page number (p), view = 'g'", {p: "100", v: "g"}, function (settings, assert)
-{
- assert.strictEqual(settings.currentPageIndex, 99, "The initial page should be 100 (index of 99)");
- assert.ok(settings.inGrid, "Should be in grid");
-}, {enableFilename: false});
-
-testHashParams("horizontal and vertical offsets (x, y) without page specified", {x: 100, y: 200}, function (settings, assert, scroll)
-{
- var expectedLeftScroll = (settings.innerElement.clientWidth - settings.panelWidth) / 2;
- assert.close(scroll.left, expectedLeftScroll, 1.5, 'x position should not change');
- assert.strictEqual(scroll.top, 0, 'y position should not change');
-});
-
-testHashParams("vertical offset (y) on first page - positive value", {y: "600", p: "1"}, function (settings, assert, scroll)
-{
- assert.strictEqual(scroll.top, 250, "Should have scrolled 250 (600 = top of page - viewport y-center) vertically");
-});
-
-testHashParams("vertical offset (y) on first page - negative value", {y: "-600", p: "1"}, function (settings, assert, scroll)
-{
- assert.strictEqual(scroll.top, 0, "Should not have scrolled negatively because, well, you can't");
-});
-
-testHashParams("vertical offset (y) and page number (p)", {y: 500, p: "50"}, function (settings, assert, scroll)
-{
- var expectedTopScroll = 52922;
- assert.strictEqual(settings.currentPageIndex, 49, "Current page should be 50 (index of 49)");
- assert.strictEqual(scroll.top, expectedTopScroll, "Should be heightAbovePages + 500 pixels of scroll from the top + page y-center");
-
- // Check that the horizontal scroll hasn't been weirdly affected
- var expectedInnerWidth = settings.manifest.getMaxWidth(settings.zoomLevel) + settings.horizontalPadding * 2;
- var expectedLeftScroll = parseInt((expectedInnerWidth - settings.panelWidth) / 2, 10);
- assert.strictEqual(scroll.left, expectedLeftScroll, "Horizontal scroll should just center it");
-}, {enableFilename: false, zoomLevel: 2});
-
-testHashParams("horizontal offset (x) on first page - positive value", {x: "100", p: "1"}, function (settings, assert, scroll)
-{
- // FIXME: https://github.com/DDMAL/diva.js/issues/331
- assert.strictEqual(scroll.left, 0, "Horizontal scroll should center it + 100 pixels to the right");
-});
-
-testHashParams("horizontal offset (x) on first page - negative value", {x: "-100", p: "1"}, function (settings, assert, scroll)
-{
- // FIXME: https://github.com/DDMAL/diva.js/issues/331
- assert.strictEqual(scroll.left, 0, "Horizontal scroll should center it + 100 pixels to the left");
-});
-
-testHashParams("horizontal offset (x) and page number (p)", {x: 100, p: "50"}, function (settings, assert, scroll)
-{
- // FIXME: https://github.com/DDMAL/diva.js/issues/331
- var expectedTopScroll = 52772;
- assert.strictEqual(scroll.top, expectedTopScroll, "vertical scroll should be just to page 50");
- assert.strictEqual(scroll.left, 0, "Horizontal scroll should center it + 100 pixels to the right");
-}, {enableFilename: false});
-
-testHashParams("horizontal offset (x), vertical offset (y), page number (p)", {x: 100, y: 200, p: "50"}, function (settings, assert, scroll)
-{
- // FIXME: https://github.com/DDMAL/diva.js/issues/331
- var expectedTopScroll = 52622;
- assert.strictEqual(scroll.top, expectedTopScroll, "vertical scroll should be to page 50 + 200 + page y-center");
- assert.strictEqual(scroll.left, 0, "Horizontal scroll should center it + 100 pixels to the right");
-}, {enableFilename: false});
diff --git a/tests/unit/image-cache.js b/tests/unit/image-cache.js
deleted file mode 100644
index 038c12f2..00000000
--- a/tests/unit/image-cache.js
+++ /dev/null
@@ -1,104 +0,0 @@
-'use strict';
-
-var ImageCache = require('../../source/js/image-cache');
-
-QUnit.module('ImageCache');
-
-QUnit.test('Default max entries is 100', function (assert)
-{
- var cache = new ImageCache();
- assert.strictEqual(cache.maxKeys, 100);
-});
-
-QUnit.test('Evicts the least recently used entry', function (assert)
-{
- var cache = new ImageCache({ maxKeys: 2 });
-
- var imgA = new Image();
- var imgB = new Image();
- var imgC = new Image();
-
- cache.put('A', imgA);
- cache.put('B', imgB);
- cache.put('C', imgC);
-
- assert.strictEqual(cache.has('A'), false, 'A evicted [has]');
- assert.strictEqual(cache.has('B'), true, 'B remains [has]');
- assert.strictEqual(cache.has('C'), true, 'C remains [has]');
-
- assert.strictEqual(cache.get('A'), null, 'A evicted [get]');
- assert.strictEqual(cache.get('B'), imgB, 'B remains [get]');
- assert.strictEqual(cache.get('C'), imgC, 'C remains [get]');
-
- cache.put('A', imgA);
- assert.strictEqual(cache.has('A'), true, 'A restored [has v2]');
- assert.strictEqual(cache.has('B'), false, 'B evicted [has v2]');
- assert.strictEqual(cache.has('C'), true, 'C remains [has v2]');
-});
-
-QUnit.test('Put overwrites existing entries and bumps their LRU position', function (assert)
-{
- var cache = new ImageCache({ maxKeys: 2 });
-
- var imgA = new Image();
- var imgA2 = new Image();
- var imgB = new Image();
- var imgC = new Image();
-
- cache.put('A', imgA);
- cache.put('B', imgB);
- cache.put('A', imgA2);
- cache.put('C', imgC);
-
- assert.strictEqual(cache.get('A'), imgA2, 'A overwritten, still in cache');
- assert.strictEqual(cache.get('B'), null, 'B evicted');
- assert.strictEqual(cache.get('C'), imgC, 'C still in cache');
-});
-
-QUnit.test("Entries which have been acquire()'d are promoted", function (assert)
-{
- var cache = new ImageCache({ maxKeys: 2 });
-
- var imgA = new Image();
- var imgB = new Image();
- var imgC = new Image();
-
- cache.put('A', imgA);
- cache.put('B', imgB);
-
- cache.acquire('A');
- cache.release('A');
-
- cache.put('C', imgC); // A would be evicted here if not promoted
-
- assert.strictEqual(cache.has('A'), true, 'A remains');
- assert.strictEqual(cache.has('B'), false, 'B evicted');
- assert.strictEqual(cache.has('C'), true, 'C remains');
-});
-
-QUnit.test("Entries which have been acquire()'d are not evicted until released", function (assert)
-{
- var cache = new ImageCache({ maxKeys: 2 });
-
- var imgA = new Image();
- var imgB = new Image();
- var imgC = new Image();
-
- cache.put('A', imgA);
- cache.acquire('A');
-
- cache.put('B', imgB);
- cache.acquire('B');
-
- cache.put('C', imgC); // A would be evicted here if not held
-
- assert.strictEqual(cache.has('A'), true, 'A remains');
- assert.strictEqual(cache.has('B'), true, 'B remains');
- assert.strictEqual(cache.has('C'), true, 'C still entered');
-
- cache.release('B'); // B will be evicted even though it still has priority over A
-
- assert.strictEqual(cache.has('A'), true, 'A still remains (held)');
- assert.strictEqual(cache.has('B'), false, 'B evicted');
- assert.strictEqual(cache.has('C'), true, 'C still remains (by LRU policy)');
-});
diff --git a/tests/unit/navigation.js b/tests/unit/navigation.js
deleted file mode 100644
index 7f251fbc..00000000
--- a/tests/unit/navigation.js
+++ /dev/null
@@ -1,500 +0,0 @@
-/*
-Test coverage: pretty much complete
-Could also test key navigation, but it's pretty difficult and doesn't seem worth it
-*/
-
-var $ = require('jquery');
-var clearTempDiva = require('../utils').clearTempDiva;
-var diva = require('../../source/js/diva');
-var EventTracker = require('../event-tracker');
-
-QUnit.module("Navigation", { beforeEach: clearTempDiva });
-
-// FIXME: This test pattern is pretty iffy. There should be more robust ways to do this than
-// with a timeout, and the toolbar and page index are kind of separate concerns.
-var assertPageAfterScroll = function (scroll, index, divaInst, assert, done)
-{
- var viewportObject = divaInst.getSettings().viewportObject;
-
- if ('left' in scroll)
- viewportObject.scrollLeft(scroll.left);
-
- viewportObject.one('scroll', function ()
- {
- setTimeout(function ()
- {
- var rendered = (index + 1) + '';
-
- var actualIndex = divaInst.getCurrentPageIndex();
- assert.strictEqual(actualIndex, index, "The page should now be " + rendered + " (index of " + index + ")");
-
- var actualRendered = $(divaInst.getSettings().selector + 'current-page').text();
- assert.strictEqual(actualRendered, rendered, "The toolbar should have been updated");
-
- done();
- }, 10);
- });
-
- viewportObject.scrollTop(scroll.top);
-};
-
-var assertZoomIs = function (level, divaInst, controlName, assert)
-{
- var actualLevel = divaInst.getZoomLevel();
- var renderedLevel = $(divaInst.getSettings().selector + 'zoom-level').text();
-
- assert.strictEqual(actualLevel, level, "Zoom level should now be " + level);
- assert.strictEqual(renderedLevel, level.toFixed(2), "The " + controlName + " label should have been updated");
-};
-
-QUnit.test("Scrolling in document view", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assertPageAfterScroll({ top: 10000 }, 34, this, assert, done);
- });
-
- $.tempDiva({
- zoomLevel: 0,
- adaptivePadding: 0,
- fixedPadding: 40
- });
-});
-
-QUnit.test("Scrolling in grid view", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assertPageAfterScroll({ top: 10000 }, 26, this, assert, done);
- });
-
- $.tempDiva({
- inGrid: true,
- pagesPerRow: 2,
- fixedHeightGrid: false
- });
-});
-
-QUnit.test("Scrolling in book view", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assertPageAfterScroll({ left: 200, top: 10000 }, 18, this, assert, done);
- });
-
- $.tempDiva({
- objectData: '../demo/beromunster-iiif-test.json'
- });
-});
-
-// FIXME: The behaviour for this should be better-defined, but the behaviour
-// in this test isn't necessarily right either.
-QUnit.skip('Page positioning on zoom', function (assert)
-{
- var done = assert.async();
- var state;
-
- var dv = $.tempDiva({});
-
- var loadSig = diva.Events.subscribe('ViewerDidLoad', function ()
- {
- diva.Events.unsubscribe(loadSig);
-
- var eventTracker = new EventTracker(assert, dv);
-
- eventTracker.expect('ZoomLevelDidChange', 1);
- eventTracker.expect('ZoomLevelDidChange', 2);
-
- eventTracker.expect('ViewerDidZoomOut', 1);
- eventTracker.expect('ViewerDidZoom', 1);
-
- eventTracker.expect('ViewerDidZoomIn', 2);
- eventTracker.expect('ViewerDidZoom', 2);
-
- state = dv.getState();
-
- dv.zoomOut();
- });
-
- diva.Events.subscribe('ViewerDidZoomOut', function ()
- {
- dv.zoomIn();
- });
-
- diva.Events.subscribe('ViewerDidZoomIn', function ()
- {
- var newState = dv.getState();
-
- Object.keys(state).forEach(function (key)
- {
- var msg = 'state.' + key + ' should not change from zooming in and out';
-
- if (key === 'x' || key === 'y')
- {
- // Numbers are hard :(
- assert.close(newState[key], state[key], 3, msg);
- }
- else
- {
- assert.strictEqual(newState[key], state[key], msg);
- }
- });
-
- done();
- });
-});
-
-// Try to verify that zoom animation can be gracefully interrupted
-QUnit.test('View change during zoom animation', function (assert)
-{
- var done = assert.async();
- var gridViewSeen = false;
-
- diva.Events.subscribe('ViewerDidLoad', function ()
- {
- var eventTracker = new EventTracker(assert, this);
-
- eventTracker.watchEvent('ViewerDidZoom');
- eventTracker.watchEvent('ViewerDidZoomIn');
- eventTracker.watchEvent('ViewerDidZoomOut');
-
- eventTracker.expect('ZoomLevelDidChange', 3);
- eventTracker.expect('ViewDidSwitch', true);
- eventTracker.expect('ViewDidSwitch', false);
-
- diva.Events.subscribe('ZoomLevelDidChange', function ()
- {
- this.enterGridView();
- }, this.getInstanceId());
-
- diva.Events.subscribe('ViewDidSwitch', function (inGrid)
- {
- // debugger
- if (inGrid)
- {
- gridViewSeen = true;
- assert.strictEqual(this.getZoomLevel(), 3, 'Updated zoom level should be set');
-
- defer(this.leaveGridView, this);
- }
- else
- {
- assert.ok(gridViewSeen, 'Grid view should have been entered');
- assert.strictEqual(this.getZoomLevel(), 3, 'Zoom level should still be 3');
-
- done();
- }
- }, this.getInstanceId());
-
- // debugger
- this.zoomIn();
- });
-
- $.tempDiva({
- zoomLevel: 2
- });
-
- function defer(callback, ctx)
- {
- setTimeout(callback.bind(ctx), 10);
- }
-});
-
-QUnit.test("Zooming using the slider", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- var slider = $(settings.selector + 'zoom-slider');
-
- slider.val(0);
- slider.change();
-
- assertZoomIs(0, this, 'slider', assert);
-
- slider.val(4);
- slider.change();
-
- assertZoomIs(4, this, 'slider', assert);
-
- done();
- });
-
- $.tempDiva({
- enableZoomControls: 'slider',
- zoomLevel: 4
- });
-});
-
-QUnit.test("Zooming using +/- buttons", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- for (var i = 0; i < 4; i++)
- {
- $(settings.selector + 'zoom-out-button').trigger('click');
- }
-
- assertZoomIs(0, this, 'zoom buttons', assert);
-
- for (i = 0; i < 4; i++)
- {
- $(settings.selector + 'zoom-in-button').trigger('click');
- }
-
- assertZoomIs(4, this, 'zoom buttons', assert);
-
- done();
- });
-
- $.tempDiva({
- zoomLevel: 4
- });
-});
-
-QUnit.test("Changing pages per row in Grid view using slider", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- this.enterGridView();
- $(settings.selector + 'grid-slider').val(8);
- $(settings.selector + 'grid-slider').change();
- assert.strictEqual(this.getState().n, 8, "Pages per row should now be 8");
- assert.strictEqual($(settings.selector + 'pages-per-row').text(), '8', "The grid buttons label should have been updated");
-
- $(settings.selector + 'grid-slider').val(3);
- $(settings.selector + 'grid-slider').change();
- assert.strictEqual(this.getState().n, 3, "Pages per row should now be 3");
- assert.strictEqual($(settings.selector + 'pages-per-row').text(), '3', "The grid buttons label should have been updated");
-
- done();
- });
-
- $.tempDiva({
- enableGridControls: 'slider',
- pagesPerRow: 2
- });
-});
-
-QUnit.test("Scrolling and subsequently zooming in Grid view", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- settings.viewportObject.scrollTop(10050);
-
- var self = this;
- setTimeout(function ()
- {
- assert.strictEqual(self.getCurrentPageIndex(), 160, "The current page should be 170 (10050px down, 1000px viewport)");
-
- $(settings.selector + 'grid-slider').val(8);
- assert.strictEqual(self.getCurrentPageIndex(), 160, "The current page should still be 170");
-
- $(settings.selector + 'grid-slider').val(2);
- assert.strictEqual(self.getCurrentPageIndex(), 160, "The current page should still be 170");
-
- done();
- }, 10);
- });
-
- $.tempDiva({
- inGrid: true,
- enableGridControls: 'slider',
- pagesPerRow: 5,
- fixedHeightGrid: false
- });
-});
-
-QUnit.test("Changing pages per row in Grid view using +/- buttons", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- var eventTracker = new EventTracker(assert, this);
-
- eventTracker.expect('ViewDidSwitch', true);
- eventTracker.expect('GridRowNumberDidChange', 3);
- eventTracker.expect('GridRowNumberDidChange', 4);
- eventTracker.expect('GridRowNumberDidChange', 5);
- eventTracker.expect('GridRowNumberDidChange', 6);
- eventTracker.expect('GridRowNumberDidChange', 7);
- eventTracker.expect('GridRowNumberDidChange', 8);
-
- this.enterGridView();
- for (var i = 0; i < 6; i++)
- {
- $(settings.selector + 'grid-out-button').trigger('click');
- }
- assert.strictEqual(this.getState().n, 2, "Pages per row should now be 2");
- assert.strictEqual($(settings.selector + 'pages-per-row').text(), '2', "The grid buttons label should have been updated");
-
- for (i = 0; i < 6; i++)
- {
- $(settings.selector + 'grid-in-button').trigger('click');
- }
- assert.strictEqual(this.getState().n, 8, "Pages per row should now be 8");
- assert.strictEqual($(settings.selector + 'pages-per-row').text(), '8', "The grid buttons label should have been updated");
-
- done();
- });
-
- $.tempDiva({
- pagesPerRow: 2
- });
-});
-
-QUnit.test("Zooming by double-clicking", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- var eventTracker = new EventTracker(assert, this);
- eventTracker.expect('ZoomLevelDidChange', 2);
- eventTracker.expect('ViewerDidZoomIn', 2);
- eventTracker.expect('ViewerDidZoom', 2);
-
- var wrapperOffset = $('#diva-temp').offset();
- var testEvent = $.Event("dblclick");
- testEvent.pageX = 500;
- testEvent.pageY = 350 + wrapperOffset.top;
- testEvent.target = settings.innerElement;
-
- setTimeout(function ()
- {
- settings.innerObject.trigger(testEvent);
- setTimeout(function ()
- {
- assert.strictEqual(settings.zoomLevel, 2, "Zoom level should now be 2");
- assert.strictEqual(settings.currentPageIndex, 100, "Should still be on page 100");
- done();
- }, 10);
- }, 10);
- });
-
- $.tempDiva({
- zoomLevel: 1,
- goDirectlyTo: 100
- });
-});
-
-QUnit.test("Switching between document and grid view", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- var eventTracker = new EventTracker(assert, this);
- eventTracker.expect('ViewDidSwitch', true);
-
- assert.ok(!settings.inGrid, "Not in grid initially");
- $(settings.selector + 'grid-icon').click();
-
- // Click the grid icon, then wait a bit for the event to be triggered
- setTimeout(function ()
- {
- assert.ok(settings.inGrid, "Should now be in grid");
- assert.ok($(settings.selector + 'grid-out-button').is(':visible'), "Grid buttons should be visible (-)");
- assert.ok($(settings.selector + 'grid-in-button').is(':visible'), "Grid buttons should be visible (+)");
- assert.ok(!$(settings.selector + 'zoom-out-buttons').is(':visible'), "Zoom buttons should not be visible (-)");
- assert.ok(!$(settings.selector + 'zoom-in-buttons').is(':visible'), "Zoom buttons should not be visible (+)");
- done();
- }, 10);
- });
-
- $.tempDiva({});
-});
-
-QUnit.test("Switching between regular and fullscreen mode", function (assert)
-{
- var done = assert.async();
-
- var initialX = null;
- var initialY = null;
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.ok(!settings.inFullscreen, "Not in fullscreen initially");
-
- var state = this.getState();
- initialX = state.x;
- initialY = state.y;
-
- this.enterFullscreenMode();
- });
-
- diva.Events.subscribe('ModeDidSwitch', function (inFullscreen)
- {
- if (inFullscreen)
- {
- assert.ok(this.getSettings().inFullscreen, "Should now be in fullscreen");
- assert.ok($('body').hasClass('diva-hide-scrollbar'), "Body should have the hide-scrollbar class");
-
- this.leaveFullscreenMode();
- }
- else
- {
- var state = this.getState();
-
- assert.ok(!this.getSettings().inFullscreen, "Should now not be in fullscreen");
- assert.strictEqual(state.x, initialX, 'Entering and leaving fullscreen mode should not change the x position');
- assert.strictEqual(state.y, initialY, 'Entering and leaving fullscreen mode should not change the y position');
-
- done();
- }
- });
-
- $.tempDiva({});
-});
-
-QUnit.test("Jumping to page in Book view", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- var eventTracker = new EventTracker(assert, this);
-
- eventTracker.expect('VisiblePageDidChange', 5, this.getFilenames()[5]);
- eventTracker.expect('ViewerDidJump', 5);
-
- eventTracker.expect('VisiblePageDidChange', 6, this.getFilenames()[6]);
- eventTracker.expect('ViewerDidJump', 6);
-
- this.gotoPageByIndex(5);
-
- assert.ok(settings.inBookLayout, "Should be in book layout");
- assert.strictEqual($(settings.selector + 'current-page').text(), '6', "Toolbar should indicate page 6");
-
- var dv = this;
-
- setTimeout(function()
- {
- assert.ok(dv.isPageInViewport(5), "Page 6 (index 5) should be loaded");
-
- dv.gotoPageByIndex(6);
- assert.strictEqual($(settings.selector + 'current-page').text(), '7', "Toolbar should indicate page 7");
- assert.ok(dv.isPageInViewport(6), "Page 7 (index 6) should be loaded");
-
- done();
- }, 10);
- });
-
- $.tempDiva({
- inBookLayout: true
- });
-});
diff --git a/tests/unit/page-layouts/book-layout.js b/tests/unit/page-layouts/book-layout.js
deleted file mode 100644
index 6e9f763d..00000000
--- a/tests/unit/page-layouts/book-layout.js
+++ /dev/null
@@ -1,148 +0,0 @@
-var ImageManifest = require('../../../source/js/image-manifest');
-var getBookLayout = require('../../../source/js/page-layouts/book-layout');
-
-var iiifBeromunster = require('../../../demo/beromunster-iiif-test.json');
-
-var manifest = ImageManifest.fromIIIF(iiifBeromunster);
-
-QUnit.module('getBookLayout');
-
-QUnit.test('In vertical orientation positions first page to the right', function (assert)
-{
- var layouts = getBookLayout({
- manifest: manifest,
- verticallyOriented: true
- });
-
- var firstGroup = layouts[0];
- var width = manifest.getMaxPageDimensions(0).width;
-
- assert.strictEqual(firstGroup.pages.length, 1, 'First group should be a single page');
- assert.strictEqual(firstGroup.dimensions.width, 2 * width, 1, 'Group size should be twice page width');
- assert.strictEqual(firstGroup.pages[0].groupOffset.left, width, 1, 'Page should be offset to the left by its width');
-});
-
-QUnit.test('In horizontal orientation, shrink first group to single page size', function (assert)
-{
- var layouts = getBookLayout({
- manifest: manifest,
- verticallyOriented: false
- });
-
- var firstGroup = layouts[0];
- var width = manifest.getMaxPageDimensions(0).width;
-
- assert.strictEqual(firstGroup.pages.length, 1, 'First group should be a single page');
- assert.strictEqual(firstGroup.dimensions.width, width, 1, 'Group width should be page width');
- assert.strictEqual(firstGroup.pages[0].groupOffset.left, 0, 1, 'Page should not be offset to the left');
-});
-
-QUnit.test('In vertical orientation, facing pages groups fit max height, width', function (assert)
-{
- var layouts = getBookLayout({
- manifest: manifest,
- verticallyOriented: true
- });
-
- var group = layouts[1];
-
- assertDifferentSizePages(group, assert);
-
- assertFitsMax(group, 'width', assert);
- assertFitsMax(group, 'height', assert);
-});
-
-QUnit.test('In horizontal orientation, facing pages groups fit max height, tight width', function (assert)
-{
- var layouts = getBookLayout({
- manifest: manifest,
- verticallyOriented: false
- });
-
- var group = layouts[1];
-
- assertDifferentSizePages(group, assert);
- assertFitsMax(group, 'height', assert);
-
- var width1 = group.pages[0].dimensions.width;
- var width2 = group.pages[1].dimensions.width;
- var groupWidth = group.dimensions.width;
-
- assert.close(groupWidth, width1 + width2, 1, 'Group width should be sum of page widths');
-});
-
-QUnit.test('In vertical orientation, final left page is left-aligned', function (assert)
-{
- var layouts = getBookLayout({
- manifest: manifest,
- verticallyOriented: true
- });
-
- var lastGroup = layouts[layouts.length - 1];
-
- assert.strictEqual(lastGroup.pages.length, 1, 'Sanity check: Last group should be a single page');
-
- assert.close(lastGroup.dimensions.width,
- lastGroup.pages[0].dimensions.width * 2,
- 1,
- 'Group width should be twice page width');
-
- assert.strictEqual(lastGroup.dimensions.height,
- lastGroup.pages[0].dimensions.height,
- 'Group height should be page height');
-
- assert.close(lastGroup.pages[0].groupOffset.left, 0, 1, 'Page should not be offset to the left');
-});
-
-QUnit.test('In horizontal orientation, final left page is is in tight-fit group', function (assert)
-{
- var layouts = getBookLayout({
- manifest: manifest,
- verticallyOriented: false
- });
-
- var lastGroup = layouts[layouts.length - 1];
-
- assert.strictEqual(lastGroup.pages.length, 1, 'Sanity check: Last group should be a single page');
-
- assert.propEqual(lastGroup.dimensions, lastGroup.pages[0].dimensions, 1, 'Group size should be page size');
- assert.close(lastGroup.pages[0].groupOffset.left, 0, 1, 'Page should not be offset to the left');
-});
-
-QUnit.test('Displays facing pages in tight-fit group', function (assert)
-{
- var layouts = getBookLayout({
- manifest: manifest,
- verticallyOriented: true
- });
-
- var group = layouts[17];
-
- assert.strictEqual(group.pages.length, 1, 'In own group');
- assert.strictEqual(group.dimensions.width, group.pages[0].dimensions.width, 'Tight fit width');
-});
-
-function assertFitsMax(group, dimension, assert)
-{
- var p1 = group.pages[0].dimensions[dimension];
- var p2 = group.pages[1].dimensions[dimension];
- var g = group.dimensions[dimension];
-
- var times = dimension === 'width' ? 2 : 1;
-
- assert.close(g, Math.max(p1, p2) * times, 1, 'Group ' + dimension + ' should be derived from max page ' + dimension);
-}
-
-function assertDifferentSizePages(group, assert)
-{
- assertDimenDiffers(group, 'height', assert);
- assertDimenDiffers(group, 'width', assert);
-}
-
-function assertDimenDiffers(group, dimension, assert)
-{
- var p1 = group.pages[0].dimensions[dimension];
- var p2 = group.pages[1].dimensions[dimension];
-
- assert.notStrictEqual(p1, p2, 'Sanity check: page ' + dimension + ' differs');
-}
diff --git a/tests/unit/public.js b/tests/unit/public.js
deleted file mode 100644
index 602746e9..00000000
--- a/tests/unit/public.js
+++ /dev/null
@@ -1,541 +0,0 @@
-/*
-Test coverage: pretty much complete
-*/
-
-var $ = require('jquery');
-var clearTempDiva = require('../utils').clearTempDiva;
-var diva = require('../../source/js/diva');
-var getScrollbarWidth = require('../../source/js/utils/get-scrollbar-width');
-
-QUnit.module("Public functions", { beforeEach: clearTempDiva });
-
-QUnit.test("getItemTitle()", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual(this.getItemTitle(), "Beromunster", "The title should be Beromunster");
- done();
- });
-
- $.tempDiva({});
-});
-
-QUnit.test("getCurrentPage()", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual(this.getCurrentPageIndex(), 0, "Initial page should be 0");
- this.gotoPageByIndex(500); // Go to page index 500
- assert.strictEqual(this.getCurrentPageIndex(), 500, "The page index should now be 500");
-
- diva.Events.subscribe('ViewDidSwitch', function ()
- {
- this.gotoPageByIndex(100);
- assert.strictEqual(this.getCurrentPageIndex(), 100, 'Transitions in grid mode should work');
-
- done();
- });
-
- this.enterGridView();
- });
-
- $.tempDiva({});
-});
-
-QUnit.test("getCurrentPageIndex()", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual(this.getCurrentPageIndex(), 0, "Initial page should be 0");
- this.gotoPageByIndex(300);
- assert.strictEqual(this.getCurrentPageIndex(), 300, "The page index should now be 300");
-
- // Reset it to the first page
- this.gotoPageByIndex(0);
- assert.strictEqual(this.getCurrentPageIndex(), 0, "The page index should now be 0");
- done();
- });
-
- $.tempDiva({});
-});
-
-QUnit.test("get/setZoomLevel(), zoomIn() and zoomOut()", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual(this.getZoomLevel(), 2, "Initial zoom level should be 2");
- assert.ok(this.zoomOut(), "It should be possible to zoom out once");
- assert.strictEqual(this.getZoomLevel(), 1, "Zoom level should now be 1");
- assert.ok(!this.zoomOut(), "It should not be possible to zoom out again");
- assert.strictEqual(this.getZoomLevel(), 1, "Zoom level should still be 1");
-
- assert.ok(this.zoomIn(), "It should be possible to zoom in");
- assert.strictEqual(this.getZoomLevel(), 2, "Zoom level should now be 2");
- assert.ok(this.zoomIn(), "Zooming in again");
- assert.strictEqual(this.getZoomLevel(), 3, "Zoom level should now be 3");
- assert.ok(!this.zoomIn(), "It should not be possible to zoom in again (hit max)");
- assert.strictEqual(this.getZoomLevel(), 3, "Zoom level should still be 3");
-
- assert.ok(!this.setZoomLevel(5), "Setting zoom level to 5 should fail");
- assert.strictEqual(this.getZoomLevel(), 3, "Zoom level should still be 3");
-
- assert.ok(this.setZoomLevel(2), "Setting zoom level to 2 should be fine");
- assert.strictEqual(this.getZoomLevel(), 2, "Zoom level should now be 2");
- done();
- });
-
- $.tempDiva({
- zoomLevel: 2,
- minZoomLevel: 1,
- maxZoomLevel: 3
- });
-});
-
-QUnit.skip("enable/disableScrollable()", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- this.setZoomLevel(2);
-
- // should be able to zoom by double click
- var event = $.Event("dblclick");
- event.pageX = 1000;
- event.pageY = 500;
- $(settings.selector + 'page-0').trigger(event);
- assert.strictEqual(settings.zoomLevel, 3, "Should be able to zoom by double click, zoom level should now be 3");
-
- // should be able to scroll by dragging
- var initScroll = settings.viewportObject.scrollTop();
- // simulate drag downwards
- $('.diva-dragger').simulate('drag', { dx: 0, dy: -500 });
- var finalScroll = settings.viewportObject.scrollTop();
-
- assert.ok(finalScroll > initScroll, "Should have scrolled down before disableScrollable()");
-
- this.disableScrollable();
-
- // should not be able to zoom by double click
- event = $.Event("dblclick");
- event.pageX = 1000;
- event.pageY = 500;
- $(settings.selector + 'page-0').trigger(event);
- assert.strictEqual(settings.zoomLevel, 3, "Should not be able to zoom by double click after disableScrollable(), zoom level should still be 3");
-
- // should not be able to drag
- // store previous scroll in initScroll
- initScroll = settings.viewportObject.scrollTop();
- $('.diva-dragger').simulate('drag', { dx: 0, dy: -500 });
- finalScroll = settings.viewportObject.scrollTop();
- assert.ok(finalScroll === initScroll, "Should not have scrolled down after disableScrollable()");
-
- this.enableScrollable();
-
- // should be able to zoom by double click
- event = $.Event("dblclick");
- event.pageX = 1000;
- event.pageY = 500;
- $(settings.selector + 'page-0').trigger(event);
- assert.strictEqual(settings.zoomLevel, 4, "Should be able to zoom by double click after enableScrollable(), zoom level should now be 4");
-
- // should be able to scroll by dragging
- initScroll = settings.viewportObject.scrollTop();
- // simulate drag downwards
- $('.diva-dragger').simulate('drag', { dx: 0, dy: -500 });
- finalScroll = settings.viewportObject.scrollTop();
-
- assert.ok(finalScroll > initScroll, "Should have scrolled down after enableScrollable()");
-
- done();
- });
-
- $.tempDiva({});
-});
-
-QUnit.test("isRegionInViewport()", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- // Can only do fairly simple checks
- assert.ok(this.isRegionInViewport(0, 100, 200, 100, 150));
- assert.ok(!this.isRegionInViewport(0, 100, -200, 100, 100));
- assert.ok(!this.isRegionInViewport(40, 100, 50, 100, 200));
-
- done();
- });
-
- $.tempDiva({
- viewportMargin: 0
- });
-});
-
-QUnit.test("isPageInViewport()", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function ()
- {
- assert.ok(this.isPageInViewport(0), 'The first page should be in the viewport');
- assert.ok(!this.isPageInViewport(100), 'The hundredth page should not be in the viewport');
-
- this.enterGridView();
- });
-
- diva.Events.subscribe('ViewDidSwitch', function ()
- {
- assert.ok(this.isPageInViewport(0), 'The first page should be in the viewport grid');
- assert.ok(this.isPageInViewport(5), 'The fifth page should be in the viewport grid');
- assert.ok(!this.isPageInViewport(100), 'The hundredth page should not be in the viewport grid');
-
- done();
- });
-
- $.tempDiva({});
-});
-
-QUnit.test("toggleFullscreenMode(), enterFullscreenMode(), leaveFullscreenMode()", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.ok(!settings.inFullscreen, "Should not be in fullscreen initially");
- this.toggleFullscreenMode();
- assert.ok(settings.inFullscreen, "Should now be in fullscreen");
- assert.ok(!this.enterFullscreenMode(), "Should not be possible to enter fullscreen");
- assert.ok(settings.inFullscreen, "Should still be in fullscreen");
- assert.ok(this.leaveFullscreenMode(), "Should be possible to exit fullscreen");
- assert.ok(!settings.inFullscreen, "No longer in fullscreen");
- assert.ok(!this.leaveFullscreenMode(), "Should not be possible to exit fullscreen");
- assert.ok(!settings.inFullscreen, "Still not in fullscreen");
- assert.ok(this.enterFullscreenMode(), "Should be possible to enter fullscreen");
- this.toggleFullscreenMode();
- assert.ok(!settings.inFullscreen, "Should now be out of fullscreen");
- done();
- });
-
- $.tempDiva({});
-});
-
-QUnit.test("enterGridView(), leaveGridView()", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.ok(!settings.inGrid, "Should not be in grid initially");
- this.enterGridView();
- assert.ok(settings.inGrid, "Should now be in grid");
- assert.ok(!this.enterGridView(), "Should not be possible to enter grid");
- assert.ok(settings.inGrid, "Should still be in grid");
- assert.ok(this.leaveGridView(), "Should be possible to exit grid");
- assert.ok(!settings.inGrid, "No longer in grid");
- assert.ok(!this.leaveGridView(), "Should not be possible to exit grid");
- assert.ok(!settings.inGrid, "Still not in grid");
- assert.ok(this.enterGridView(), "Should be possible to enter grid");
- done();
- });
-
- $.tempDiva({});
-});
-
-QUnit.test("gotoPageByName()", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual(settings.currentPageIndex, 0, "Initial page number should be 1");
- assert.ok(!this.gotoPageByName('https://images.simssa.ca/iiif/image/beromunster/bm_000.tif'), "It should not find anything for bm_000.tif");
- assert.ok(this.gotoPageByName('https://images.simssa.ca/iiif/image/beromunster/bm_002.tif', "right", "center"), "It should find the page index for bm_002.tif");
- assert.strictEqual(settings.currentPageIndex, 1, "Now the page number should be 2");
-
- assert.strictEqual(settings.viewport.top, 1348, "The page should be anchored to the center (vertically)");
- assert.strictEqual(settings.viewport.left, 0, "The page should be anchored to the right");
- this.gotoPageByIndex(1, "left", "top");
- assert.strictEqual(settings.viewport.top, 1162, "The page should be anchored to the top");
- assert.strictEqual(settings.viewport.left, 291, "The page should be anchored to the left");
-
- done();
- });
-
- $.tempDiva({});
-});
-
-QUnit.test("getPageIndex()", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual(this.getPageIndex('https://images.simssa.ca/iiif/image/beromunster/bm_002.tif'), 1, "Valid filename");
- assert.strictEqual(this.getPageIndex('https://images.simssa.ca/iiif/image/beromunster/bm_lol.tif'), -1, "Invalid filename");
-
- done();
- });
-
- $.tempDiva({});
-});
-
-// Can't really test the getCurrentURL function
-
-// Can't really test getURLHash easily either
-// Since it relies on getState, we can test the public version of that instead
-
-QUnit.test("getState()", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- var viewportHeight = 700;
- var scrollbarWidth = getScrollbarWidth();
- var pageDimens = this.getCurrentPageDimensionsAtCurrentZoomLevel();
-
- var expected = {
- f: false,
- v: 'd',
- i: 'https://images.simssa.ca/iiif/image/beromunster/bm_001.tif',
- n: 5,
- p: false,
- x: pageDimens.width / 2,
- y: (viewportHeight - scrollbarWidth) / 2,
- z: 2
- };
-
- var actual = this.getState();
-
- // Sanity check
- assert.propEqual(Object.keys(actual).sort(), Object.keys(expected).sort(), 'State shape should be as expected');
-
- Object.keys(expected).forEach(function (key)
- {
- if (key === 'x' || key === 'y')
- assert.close(actual[key], expected[key], 1, "State key '" + key + "'");
- else
- assert.strictEqual(actual[key], expected[key], "State key '" + key + "'");
- });
-
- done();
- });
-
- $.tempDiva({});
-});
-
-QUnit.test("setState()", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- var state = {
- f: true,
- v: 'd',
- i: "https://images.simssa.ca/iiif/image/beromunster/bm_005.tif",
- n: 3,
- p: false,
- x: 500,
- y: 300,
- z: 3
- };
-
- this.setState(state);
- assert.ok(settings.inFullscreen, "Should now be in fullscreen");
- assert.ok(!settings.inGrid, "Should not be in grid");
- assert.ok(!settings.inBookLayout, "Should not be in book view");
- assert.strictEqual(settings.currentPageIndex, 4, "Current page should be 5 (index of 4)");
- assert.strictEqual(settings.pagesPerRow, 3, "Pages per row should be 3");
- assert.strictEqual(settings.zoomLevel, 3, "Zoom level should be 3");
-
- // Recompute the offsets from first principles
- var index = this.getPageIndex("https://images.simssa.ca/iiif/image/beromunster/bm_005.tif");
- var offset = this.getPageOffset(index);
- var viewportElem = settings.viewportElement;
- var x = viewportElem.scrollLeft - offset.left + (viewportElem.clientWidth / 2);
- var y = viewportElem.scrollTop - offset.top + (viewportElem.clientHeight / 2);
-
- assert.close(x, 500, 1, "x offset should be the specified value");
- assert.close(y, 300, 1, "y offset should be the specified value");
-
- state = {
- f: false,
- v: 'g',
- i: "https://images.simssa.ca/iiif/image/beromunster/bm_500.tif",
- n: 4,
- p: true,
- x: 100,
- y: 200,
- z: 4
- };
-
- this.setState(state);
- assert.ok(!settings.inFullscreen, "Should not be in fullscreen");
- assert.ok(settings.inGrid, "Should be in grid");
- assert.strictEqual(settings.currentPageIndex, 498, "Current page should be bm_500.tif (index of 498)");
- assert.strictEqual(settings.pagesPerRow, 4, "Pages per row should be 4");
- assert.strictEqual(settings.zoomLevel, 4, "Zoom level should be 4");
-
- done();
- });
-
- $.tempDiva({});
-});
-
-QUnit.test("translateFromMaxZoomLevel()", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- var state = {
- f: true,
- v: 'd',
- i: "https://images.simssa.ca/iiif/image/beromunster/bm_005.tif",
- n: 3,
- p: false,
- x: 500,
- y: 300,
- z: this.getMaxZoomLevel()
- };
-
- this.setState(state);
-
- var boxOnMaxPage = {x: 100, y: 100, width:1234, height:1324};
-
- // first check to make sure the box on the max zoom level is the same as the box we feed in.
- assert.strictEqual(this.translateFromMaxZoomLevel(100), boxOnMaxPage.x);
- assert.strictEqual(this.translateFromMaxZoomLevel(100), boxOnMaxPage.y);
- assert.strictEqual(this.translateFromMaxZoomLevel(1234), boxOnMaxPage.width);
- assert.strictEqual(this.translateFromMaxZoomLevel(1324), boxOnMaxPage.height);
-
- // reset the state to a different zoom level
- state = {
- f: true,
- v: 'd',
- i: "https://images.simssa.ca/iiif/image/beromunster/bm_005.tif",
- n: 3,
- p: false,
- x: 500,
- y: 300,
- z: 2
- };
- this.setState(state);
-
- // check that the box translation has changed accordingly.
- assert.strictEqual(this.translateFromMaxZoomLevel(boxOnMaxPage.x), 25);
- assert.strictEqual(this.translateFromMaxZoomLevel(boxOnMaxPage.y), 25);
- assert.strictEqual(this.translateFromMaxZoomLevel(boxOnMaxPage.width), 308.5);
- assert.strictEqual(this.translateFromMaxZoomLevel(boxOnMaxPage.height), 331);
-
- done();
- });
-
- $.tempDiva({});
-});
-
-QUnit.test("translateToMaxZoomLevel()", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- var state = {
- f: true,
- v: 'd',
- i: "https://images.simssa.ca/iiif/image/beromunster/bm_005.tif",
- n: 3,
- p: false,
- x: 500,
- y: 300,
- z: this.getMaxZoomLevel()
- };
-
- this.setState(state);
-
- var boxOnThisPage = {x: 10, y: 10, width:123, height:132};
-
- // first check to make sure the box on the max zoom level is the same as the box we feed in.
- assert.strictEqual(this.translateToMaxZoomLevel(10), boxOnThisPage.x);
- assert.strictEqual(this.translateToMaxZoomLevel(10), boxOnThisPage.y);
- assert.strictEqual(this.translateToMaxZoomLevel(123), boxOnThisPage.width);
- assert.strictEqual(this.translateToMaxZoomLevel(132), boxOnThisPage.height);
-
- // reset the state to a different zoom level
- state = {
- f: true,
- v: 'd',
- i: "https://images.simssa.ca/iiif/image/beromunster/bm_005.tif",
- n: 3,
- p: false,
- x: 500,
- y: 300,
- z: 2
- };
- this.setState(state);
-
- // console.log(this.translateToMaxZoomLevel(boxOnThisPage.x));
- // check that the box translation has changed accordingly. This assumes that
- // the co-ordinate we want to translate is on the current zoom level (2), and we want
- // to get it on the max page. Thus: 123 * (4-2)^2 = 984
- assert.strictEqual(this.translateToMaxZoomLevel(boxOnThisPage.x), 40);
- assert.strictEqual(this.translateToMaxZoomLevel(boxOnThisPage.y), 40);
- assert.strictEqual(this.translateToMaxZoomLevel(boxOnThisPage.width), 492);
- assert.strictEqual(this.translateToMaxZoomLevel(boxOnThisPage.height), 528);
-
- done();
- });
-
- $.tempDiva({});
-});
-
-QUnit.test("getPageDimensionsAtCurrentZoomLevel([pageIndex])", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function ()
- {
- var current = this.getPageDimensionsAtCurrentZoomLevel();
- var page10 = this.getPageDimensionsAtCurrentZoomLevel();
-
- assert.propEqual(current, page10, 'It should default to the current page');
- assert.ok(typeof page10.height === 'number' && typeof page10.width === 'number', 'It should ... have numbers?');
-
- this.leaveGridView();
-
- done();
- });
-
- $.tempDiva({
- goDirectlyTo: 10,
- inGrid: true
- });
-});
-
-QUnit.skip("getPageIndexForPageXYValues()", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- $('.diva-dragger').simulate('drag', { dx: 0, dy: -100000 });
- settings.viewportObject.scroll();
-
- assert.strictEqual(this.getPageIndexForPageXYValues(500, 5000), 93, "scrolled to a later page, click should register on a page");
- assert.strictEqual(this.getPageIndexForPageXYValues(10, 10), false, "click should be outside diva-outer and thus return false");
-
- done();
- });
-
- $.tempDiva({});
-});
diff --git a/tests/unit/settings.js b/tests/unit/settings.js
deleted file mode 100644
index 8bdd5fe4..00000000
--- a/tests/unit/settings.js
+++ /dev/null
@@ -1,638 +0,0 @@
-/*
-Test coverage: pretty much complete
-*/
-
-var $ = require('jquery');
-var clearTempDiva = require('../utils').clearTempDiva;
-var diva = require('../../source/js/diva');
-
-QUnit.module("Settings", { beforeEach: clearTempDiva });
-
-QUnit.test("adaptivePadding enabled", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings) {
- assert.notStrictEqual(settings.verticalPadding, 10, "Adaptive padding should be used, overrides vertical/horizontal");
- assert.notStrictEqual(settings.horizontalPadding, 10, "Horizontal padding should be overridden by adaptive");
- done();
- });
-
- $.tempDiva({
- adaptivePadding: 0.10
- });
-});
-
-QUnit.test("adaptivePadding disabled, fixedPadding set", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual(settings.verticalPadding, 40, "Vertical padding should be 40 (the minimum with plugins enabled)");
- assert.strictEqual(settings.horizontalPadding, 11, "Horizontal padding should be 11 (fixedPadding)");
- done();
- });
-
- $.tempDiva({
- adaptivePadding: 0,
- fixedPadding: 11
- });
-
-});
-
-// enableCanvas and enableDownload are tested in plugins.js
-
-// enableFilename is tested in hashparams.js
-
-QUnit.test("enableFullscreen false", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- // Make sure the fullscreen icon is not there
- assert.strictEqual($(settings.selector + 'fullscreen').length, 0, "Fullscreen icon should not be present");
- done();
- });
-
- $.tempDiva({
- enableFullscreen: false
- });
-});
-
-QUnit.test("enableFullscreen true", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- // Make sure the fullscreen icon is there
- assert.notStrictEqual($(settings.selector + 'fullscreen-icon').length, 0, "Fullscreen icon should be present");
- done();
- });
-
- $.tempDiva({
- enableFullscreen: true
- });
-});
-
-QUnit.test("enableGotoPage false", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual($(settings.selector + 'goto-page').length, 0, "Go-to-page box should not be present");
- done();
- });
-
- $.tempDiva({
- enableGotoPage: false
- });
-});
-
-QUnit.test("enableGotoPage true", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.notStrictEqual($(settings.selector + 'goto-page').length, 0, "Go-to-page box should be present");
- done();
- });
-
- $.tempDiva({
- enableGotoPage: true
- });
-});
-
-//TODO view icon tests
-
-QUnit.test("enableGridIcon false, enableLinkIcon true", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- // Check that the link icon is there
- assert.notStrictEqual($(settings.selector + 'link-icon').length, 0, "Link icon should be present");
- // But the left border should be there for the link icon
- assert.notStrictEqual($(settings.selector + 'link-icon').css('border-left-width'), '0px', "Link icon should have a left border");
-
- done();
- });
-
- $.tempDiva({
- enableGridIcon: false
- });
-});
-
-QUnit.test("enableGridIcon true, enableLinkIcon true", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.notStrictEqual($(settings.selector + 'grid-icon').length, 0, "Grid icon should be present");
- assert.notStrictEqual($(settings.selector + 'link-icon').length, 0, "Link icon should be present");
- done();
- });
-
- $.tempDiva({
- enableGridIcon: true
- });
-});
-
-QUnit.test("enableLinkIcon false, enableGridIcon true", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual($(settings.selector + 'link-icon').length, 0, "Link icon should not be present");
-
- // The grid icon should look normal
- assert.notStrictEqual($(settings.selector + 'grid-icon').css('border-right-width'), '0px', "Link icon should have a right border");
- done();
- });
-
- $.tempDiva({
- enableLinkIcon: false,
- enableGridIcon: true
- });
-});
-
-// Skipping the key and space scroll ones, because they're hard to test
-
-// test enableZoom/Grid Slider/Buttons settings
-QUnit.test("enableGridControls 'slider'", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.notStrictEqual($(settings.selector + 'grid-slider').length, 0, "Grid slider should be present");
- assert.notStrictEqual($(settings.selector + 'grid-label').length, 0, "Grid label should be present");
- assert.strictEqual($(settings.selector + 'grid-out-button').length, 0, "Grid buttons should not be present");
- assert.strictEqual($(settings.selector + 'grid-in-button').length, 0, "Grid buttons should not be present");
- done();
- });
-
- $.tempDiva({
- enableGridControls: 'slider'
- });
-});
-
-QUnit.test("enableZoomControls 'slider'", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.notStrictEqual($(settings.selector + 'zoom-slider').length, 0, "Zoom slider should be present");
- assert.notStrictEqual($(settings.selector + 'zoom-label').length, 0, "Zoom label should be present");
- assert.strictEqual($(settings.selector + 'zoom-out-button').length, 0, "Zoom buttons should not be present");
- assert.strictEqual($(settings.selector + 'zoom-in-button').length, 0, "Zoom buttons should not be present");
- assert.notStrictEqual($(settings.selector + 'grid-label').length, 0, "Grid label should be present");
- done();
- });
-
- $.tempDiva({
- enableZoomControls: 'slider'
- });
-});
-
-QUnit.test("enableGridControls 'buttons'", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.notStrictEqual($(settings.selector + 'grid-out-button').length, 0, "Grid out button should be present");
- assert.notStrictEqual($(settings.selector + 'grid-in-button').length, 0, "Grid in button should be present");
- assert.notStrictEqual($(settings.selector + 'grid-label').length, 0, "Grid label should be present");
- assert.strictEqual($(settings.selector + 'grid-slider').length, 0, "Grid slider should not be present");
- done();
- });
-
- $.tempDiva({
- enableGridControls: 'buttons'
- });
-});
-
-QUnit.test("enableZoomControls 'buttons'", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.notStrictEqual($(settings.selector + 'zoom-out-button').length, 0, "Zoom out button should be present");
- assert.notStrictEqual($(settings.selector + 'zoom-in-button').length, 0, "Zoom in button should be present");
- assert.notStrictEqual($(settings.selector + 'zoom-label').length, 0, "Zoom label should be present");
- assert.strictEqual($(settings.selector + 'zoom-slider').length, 0, "Grid slider should not be present");
- done();
- });
-
- $.tempDiva({
- enableZoomControls: 'buttons'
- });
-});
-
-// fixedPadding tested at the top (along with adaptivePadding)
-
-QUnit.test("fixedHeightGrid false", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function()
- {
- this.enterGridView();
-
- assert.ok(pagesHaveEqualDimension(this, 'width'), 'All page widths should be equal');
- assert.notOk(pagesHaveEqualDimension(this, 'height'), 'All page heights should NOT be equal');
-
- done();
- });
-
- $.tempDiva({
- fixedHeightGrid: false
- });
-});
-
-QUnit.test("fixedHeightGrid true", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function()
- {
- this.enterGridView();
-
- assert.notOk(pagesHaveEqualDimension(this, 'width'), 'All page widths should NOT be equal');
- assert.ok(pagesHaveEqualDimension(this, 'height'), 'All page heights should be equal');
-
- done();
- });
-
- $.tempDiva({
- fixedHeightGrid: true
- });
-});
-
-function pagesHaveEqualDimension(viewer, dimension)
-{
- var dimensions = [];
-
- var numPages = viewer.getNumberOfPages();
-
- for (var i = 0; i < numPages; i++)
- dimensions.push(viewer.getPageDimensionsAtCurrentZoomLevel(i)[dimension]);
-
- var first = dimensions[0];
-
- return dimensions.every(function (dim)
- {
- // FIXME: Should floating point numbers happen here?
- return Math.abs(dim - first) < 0.5;
- });
-}
-
-QUnit.test("goDirectlyTo, valid", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual(settings.currentPageIndex, 10, "The initial page index should be 10");
- done();
- });
-
- $.tempDiva({
- goDirectlyTo: 10
- });
-});
-
-QUnit.test("goDirectlyTo, invalid", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual(settings.currentPageIndex, 0, "The initial page index should be 0 (the fallback)");
- done();
- });
-
- $.tempDiva({
- goDirectlyTo: -10
- });
-});
-
-QUnit.test('hashParamSuffix, omitted', function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual(typeof settings.hashParamSuffix, 'string', "If omitted, hashParamSuffix should default to... some string");
- done();
- });
-
- $.tempDiva({});
-});
-
-QUnit.test('hashParamSuffix, provided', function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual(settings.hashParamSuffix, '!!!!!!!', 'User hashParamSuffix should be honoured');
- done();
- });
-
- $.tempDiva({
- hashParamSuffix: '!!!!!!!'
- });
-});
-
-// iipServerURL can't really be tested, just have to rely on this to work
-
-QUnit.test("inBookLayout true", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.ok(settings.inBookLayout, 'inBookLayout should remain true after initialization');
- assert.ok(this.getPageOffset(1).left < this.getPageOffset(2).left, 'Page 1 should be to the left of page 2');
- assert.ok(this.getPageOffset(2).left > this.getPageOffset(3).left, 'Page 2 should be to the right of page 3');
- done();
- });
-
- $.tempDiva({
- inBookLayout: true
- });
-});
-
-QUnit.test("manifest.paged triggers inBookLayout", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.ok(settings.manifest.paged, 'settings.manifest.paged should be true when manifest has viewingHint: paged');
- assert.ok(settings.inBookLayout, 'settings.inBookLayout should be true when manifest.paged is true');
-
- done();
- });
-
- $.tempDiva({
- objectData: '../demo/beromunster-iiif-test.json'
- });
-});
-
-QUnit.test("inGrid false", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.ok(!settings.inGrid, "inGrid setting should still be false");
- assert.strictEqual($(settings.selector + 'view-menu').children()[0].classList[0], 'diva-document-icon', "Current toolbar view icon should be the document icon");
- done();
- });
-
- $.tempDiva({
- inGrid: false
- });
-});
-
-QUnit.test("inGrid true", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.ok(settings.inGrid, "inGrid setting should be preserved");
- assert.strictEqual($(settings.selector + 'view-menu').children()[0].classList[0], 'diva-grid-icon', "Current toolbar view icon should be the grid icon");
- done();
- });
-
- $.tempDiva({
- inGrid: true
- });
-});
-
-// imageDir cannot really be tested either
-
-QUnit.test("valid max/minPagesPerRow, valid pagesPerRow", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual(settings.minPagesPerRow, 3, "minPagesPerRow should be 3");
- assert.strictEqual(settings.maxPagesPerRow, 5, "maxPagesPerRow should be 5");
- assert.strictEqual(settings.pagesPerRow, 5, "pagesPerRow is valid");
- done();
- });
-
- $.tempDiva({
- minPagesPerRow: 3,
- maxPagesPerRow: 5,
- pagesPerRow: 5
- });
-});
-
-QUnit.test("invalid max/minPagesPerRow, invalid pagesPerRow", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual(settings.minPagesPerRow, 2, "minPagesPerRow is invalid, set to 2");
- assert.strictEqual(settings.maxPagesPerRow, 2, "maxPagesPerRow should be set to min");
- assert.strictEqual(settings.pagesPerRow, 2, "invalid pages per row should be set to min");
- done();
- });
-
- $.tempDiva({
- minPagesPerRow: 1,
- maxPagesPerRow: 0,
- pagesPerRow: 4
- });
-});
-
-QUnit.test("max/minZoomLevel, invalid values", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual(settings.minZoomLevel, 0, "minZoomLevel should be set to 0");
- assert.strictEqual(settings.maxZoomLevel, 4, "maxZoomLevel should be set to 4");
- done();
- });
-
- $.tempDiva({
- minZoomLevel: -2,
- maxZoomLevel: 6
- });
-});
-
-QUnit.test("max/minZoomLevel, valid values, valid zoomLevel", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual(settings.minZoomLevel, 1, "minZoomLevel should be set to 1");
- assert.strictEqual(settings.maxZoomLevel, 3, "maxZoomLevel should be set to 3");
- assert.strictEqual(settings.zoomLevel, 2, "zoomLevel should be 2");
- done();
- });
-
- $.tempDiva({
- minZoomLevel: 1,
- maxZoomLevel: 3,
- zoomLevel: 2
- });
-});
-
-QUnit.test("max/minZoomLevel, valid values, invalid zoomLevel", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual(settings.zoomLevel, 1, "Zoom level should be the minZoomLevel (1)");
- done();
- });
-
- $.tempDiva({
- minZoomLevel: 1,
- maxZoomLevel: 3,
- zoomLevel: 0
- });
-});
-
-QUnit.test("max/minZoomLevel, invalid/valid values, invalid zoomLevel", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual(settings.minZoomLevel, 2, "minZoomLevel should be set to 2 (valid)");
- assert.strictEqual(settings.maxZoomLevel, 4, "maxZoomLevel should be set to 4 (invalid)");
- assert.strictEqual(settings.zoomLevel, 2, "zoomLevel should be 2 (the minimum)");
- done();
- });
-
- $.tempDiva({
- minZoomLevel: 2,
- maxZoomLevel: -2,
- zoomLevel: -2
- });
-});
-
-QUnit.test("object for objectData", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function(settings)
- {
- assert.strictEqual(this.getItemTitle(), "First page of Beromunster", "Should process an object for objectData like a normal manifest");
- done();
- });
-
- $.tempDiva({
- objectData: {
- "@context": "http://iiif.io/api/presentation/2/context.json",
- "@id": "http://dev-diva.simssa.ca/iiif/srv/images/beromunster/manifest.json",
- "@type": "sc:Manifest",
- "label": "First page of Beromunster",
- "viewingHint": "paged",
- "sequences": [
- {
- "@type": "sc:Sequence",
- "canvases": [
- {
- "@id": "http://dev-diva.simssa.ca/iiif/srv/images/beromunster/canvas/bm_001.json",
- "@type": "sc:Canvas",
- "label": "Bm 001",
- "height": 4445,
- "width": 2846,
- "images": [
- {
- "@type": "oa:Annotation",
- "motivation": "sc:painting",
- "resource": {
- "@id": "http://dev-diva.simssa.ca/iiif/srv/images/beromunster/bm_001.tif/full/full/0/default.jpg",
- "@type": "dctypes:Image",
- "format": "image/jpeg",
- "height": 4445,
- "width": 2846,
- "service": {
- "@context": "http://iiif.io/api/image/2/context.json",
- "@id": "http://dev-diva.simssa.ca/iiif/srv/images/beromunster/bm_001.tif",
- "profile": "http://iiif.io/api/image/2/level2.json"
- }
- },
- "on": "http://dev-diva.simssa.ca/iiif/srv/images/beromunster/canvas/bm_001.json"
- }
- ]
- }
- ]
- }
- ]
- }
- });
-});
-
-// pageLoadTimeout is a bit weird to test, but the code is simple so it should be fine
-
-// pagesPerRow is tested above, along with max/minPagesPerRow
-
-// No real point testing tileHeight/Width as we don't have images of different tile sizes
-
-QUnit.test("viewportMargin, value of 0", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function()
- {
- var dv = this;
-
- setTimeout(function ()
- {
- assert.ok(dv.isPageInViewport(0), "The first page should be loaded");
- assert.notOk(dv.isPageInViewport(1), "The second page should not be loaded");
- done();
- }, 100);
- });
-
- $.tempDiva({
- viewportMargin: 0
- });
-});
-
-QUnit.test("viewportMargin, value of 1000", function (assert)
-{
- var done = assert.async();
-
- diva.Events.subscribe('ViewerDidLoad', function()
- {
- var dv = this;
-
- // The second page should be visible after a timeout
- setTimeout(function () {
- assert.ok(dv.isPageInViewport(0), "The first page should be loaded");
- assert.ok(dv.isPageInViewport(1), "The second page should be loaded");
- done();
- }, 100);
- });
-
- $.tempDiva({
- viewportMargin: 1000
- });
-});
diff --git a/tests/unit/utils/elt.js b/tests/unit/utils/elt.js
deleted file mode 100644
index 045ff79c..00000000
--- a/tests/unit/utils/elt.js
+++ /dev/null
@@ -1,102 +0,0 @@
-var elt = require('../../../source/js/utils/elt');
-
-QUnit.module('elt()');
-
-// TODO: Break this up?
-QUnit.test("elt()", function (assert)
-{
- // Serialize node type and text content (not attributes, because those are more complicated)
- var serialize = function (node)
- {
- if (node.nodeName === '#text')
- return node.textContent;
-
- return {
- name: node.nodeName.toLowerCase(),
- childNodes: Array.prototype.map.call(node.childNodes, serialize)
- };
- };
-
- var simple = elt('span');
- var expectedSimple = { name: 'span', childNodes: [] };
- assert.deepEqual(serialize(simple), expectedSimple, 'It should create nodes with the given tag');
-
- var withNull = elt('span', null, undefined);
- var expectedWithNull = { name: 'span', childNodes: [] };
- assert.deepEqual(serialize(withNull), expectedWithNull, 'It should ignore null and undefined values');
-
- var withText = elt('span', 'A', 'B');
- var expectedWithText = { name: 'span', childNodes: ['A', 'B'] };
- assert.deepEqual(serialize(withText), expectedWithText, 'It should add additional string arguments as text');
-
- var withArray = elt('ol', [
- elt('li', 'first'),
- elt('li', 'second'),
- [
- elt('li', 'more'),
- elt('li', 'and more')
- ]
- ]);
- var expectedWithArray = {
- name: 'ol',
- childNodes: [
- { name: 'li', childNodes: ['first'] },
- { name: 'li', childNodes: ['second'] },
- { name: 'li', childNodes: ['more'] },
- { name: 'li', childNodes: ['and more'] }
- ]
- };
- assert.deepEqual(serialize(withArray), expectedWithArray, 'It should recurse on nested arrays');
-
- var withOther = elt('span', 2, false);
- var expectedWithOther = { name: 'span', childNodes: ['2', 'false'] };
- assert.deepEqual(serialize(withOther), expectedWithOther, 'It should coerce other arguments to strings');
-
- var link = elt('a',
- { href: 'http://example.org/', title: 'overridden' },
- 'Hello world!',
- { title: 'additional argument' }
- );
- var expectedLink = {
- name: 'a',
- childNodes: ['Hello world!']
- };
- assert.strictEqual(link.href, 'http://example.org/', 'It should set attributes from object arguments');
- assert.strictEqual(link.title, 'additional argument', 'It should handle multiple attribute arguments');
- assert.deepEqual(serialize(link), expectedLink, 'It should handle children along with attribute arguments');
-
- var fragment = document.createDocumentFragment();
- fragment.appendChild(document.createTextNode(', very'));
-
- var compound = elt('span',
- 'This is ', elt('em', 'very'), fragment, document.createTextNode(' exciting')
- );
- var expectedCompound = {
- name: 'span',
- childNodes: [
- 'This is ',
- {
- name: 'em',
- childNodes: ['very']
- },
- ', very',
- ' exciting'
- ]
- };
- assert.deepEqual(serialize(compound), expectedCompound, 'It should append DOM node arguments');
-
- var hidden = elt('span', {
- style: { display: 'none' }
- });
- assert.strictEqual(hidden.style.display, 'none', 'It should handle objects for the style attribute');
-
- var hiddenAsText = elt('span', {
- style: 'display: none;'
- });
- assert.strictEqual(hiddenAsText.style.display, 'none', 'It should handle strings for the style attribute');
-
- var nullStyle = elt('span', {
- style: null
- });
- assert.strictEqual(nullStyle.style.cssText, '', 'It should ignore a null style');
-});
diff --git a/tests/unit/utils/events.js b/tests/unit/utils/events.js
deleted file mode 100644
index c8982644..00000000
--- a/tests/unit/utils/events.js
+++ /dev/null
@@ -1,244 +0,0 @@
-'use strict';
-
-var Events = require('../../../source/js/utils/events');
-
-QUnit.module('Events');
-
-// TODO: What happens with multiple subscriptions
-
-QUnit.test('subscribe(topic, callback[, instanceID])', function (assert)
-{
- var events = new Events();
-
- var callback = function () {};
- assert.deepEqual(events.subscribe('Topic', callback), ['Topic', callback], 'Global callback handles should have no scope');
- assert.deepEqual(events.subscribe('Topic', callback, 'A'), ['Topic', callback, 'A'], 'Scoped callback handles should have a scope');
-});
-
-QUnit.test('publish(topic[, args])', function (assert)
-{
- var events = new Events();
- var calls = [];
-
- events.subscribe('MyTopic', function ()
- {
- calls.push(['callback 1', this, Array.prototype.slice.call(arguments)]);
- });
-
- events.subscribe('MyTopic', function ()
- {
- calls.push(['callback 2', this, Array.prototype.slice.call(arguments)]);
- });
-
- events.subscribe('MyTopic', function ()
- {
- calls.push(['scoped callback', this, Array.prototype.slice.call(arguments)]);
- }, 'some scope');
-
- events.publish('OtherTopic', []);
- events.publish('MyTopic', [1, 2, 3]);
- events.publish('MyTopic');
-
- assert.deepEqual(calls, [
- ['callback 1', null, [1, 2, 3]],
- ['callback 2', null, [1, 2, 3]],
- ['callback 1', null, []],
- ['callback 2', null, []]
- ], 'Global callbacks should be called for the topic with the arguments in the order subscribed');
-});
-
-QUnit.test('publish(topic, args, scope)', function (assert)
-{
- var scopeID = '1000';
-
- var scopeObject = {
- getInstanceId: function ()
- {
- return scopeID;
- }
- };
-
- var events = new Events();
- var calls = [];
-
- events.subscribe('MyTopic', function ()
- {
- calls.push(['global callback', this, Array.prototype.slice.call(arguments)]);
- });
-
- events.subscribe('MyTopic', function ()
- {
- calls.push(['scoped callback', this, Array.prototype.slice.call(arguments)]);
- }, scopeID);
-
- events.subscribe('MyTopic', function ()
- {
- calls.push(['global callback after scoped', this, Array.prototype.slice.call(arguments)]);
- });
-
- events.subscribe('MyTopic', function ()
- {
- calls.push(['irrelevant callback', this, Array.prototype.slice.call(arguments)]);
- }, 'irrelevant');
-
- events.publish('OtherTopic', ['should not be called'], scopeObject);
- events.publish('MyTopic', [1, 2, 3], scopeObject);
- events.publish('MyTopic', null, scopeObject); // Null arguments should work
-
- assert.deepEqual(calls, [
- ['global callback', scopeObject, [1, 2, 3]],
- ['global callback after scoped', scopeObject, [1, 2, 3]],
- ['scoped callback', scopeObject, [1, 2, 3]],
- ['global callback', scopeObject, []],
- ['global callback after scoped', scopeObject, []],
- ['scoped callback', scopeObject, []]
- ], 'Global and relevant scoped callbacks should be called, with globals first');
-
- calls = [];
-
- var invalidScope = null;
-
- events.publish('MyTopic', [3, 2, 1], invalidScope);
-
- // I don't know if this is really desirable behaviour, but it's what happens
- assert.deepEqual(calls, [
- ['global callback', invalidScope, [3, 2, 1]],
- ['global callback after scoped', invalidScope, [3, 2, 1]]
- ], 'Only global callbacks should be called for invalid scope objects');
-});
-
-QUnit.test('unsubscribe(Array[, completely])', function (assert)
-{
- var events = new Events();
-
- var callback = function () {};
- var otherCallback = function () {};
-
- events.subscribe('MyTopic', callback);
- events.subscribe('MyTopic', otherCallback);
- events.subscribe('MyTopic', callback, 'some scope');
- events.subscribe('MyTopic', otherCallback, 'some scope');
- events.subscribe('MyTopic', callback, 'another scope');
- events.subscribe('MyTopic', otherCallback, 'another scope');
-
- assert.deepEqual(getTestSubscriptions(), {
- 'global': [callback, otherCallback],
- 'some scope': [callback, otherCallback],
- 'another scope': [callback, otherCallback]
- }, 'The callbacks should be subscribed (sanity check)');
-
- assert.ok(events.unsubscribe(['MyTopic', callback]), 'It should return true if events are unsubscribed');
- assert.ok(!events.unsubscribe(['MyTopic', callback, 'unknown']), 'It should return false if the scope is unknown');
- assert.ok(!events.unsubscribe(['Blueberries', callback]), 'It should return false if the topic is unknown');
-
- assert.deepEqual(getTestSubscriptions(), {
- 'global': [otherCallback],
- 'some scope': [callback, otherCallback],
- 'another scope': [callback, otherCallback]
- }, 'The global callback should be removed');
-
- assert.ok(!events.unsubscribe(['MyTopic', callback]), 'It should return false if no events are unsubscribed');
-
- events.unsubscribe(['MyTopic', callback, 'some scope']);
-
- assert.deepEqual(getTestSubscriptions(), {
- 'global': [otherCallback],
- 'some scope': [otherCallback],
- 'another scope': [callback, otherCallback]
- }, 'The relevant scoped callback should be removed');
-
- assert.ok(events.unsubscribe(['MyTopic', callback, 'another scope'], true), 'It should return true if events are unsubscribed (completely)');
- assert.ok(!events.unsubscribe(['MyTopic', callback, 'another scope'], true), 'It should return false if no events are unsubscribed (completely)');
-
- assert.deepEqual(getTestSubscriptions(), {
- 'global': [otherCallback],
- 'some scope': [otherCallback],
- 'another scope': []
- }, 'All scoped callbacks should be removed when `completely` is true');
-
- events.unsubscribe(['MyTopic', callback], true);
-
- assert.deepEqual(getTestSubscriptions(), {
- 'global': [],
- 'some scope': [otherCallback],
- 'another scope': []
- }, 'All global callbacks should be removed when `completely` is true');
-
- function getTestSubscriptions()
- {
- return {
- 'global': subscriptions(events, 'MyTopic'),
- 'some scope': subscriptions(events, 'MyTopic', 'some scope'),
- 'another scope': subscriptions(events, 'MyTopic', 'another scope')
- };
- }
-});
-
-QUnit.test('unsubscribeAll([instanceID])', function (assert)
-{
- var events = new Events();
-
- var callback = function () {};
-
- events.subscribe('MyTopic', callback);
- events.subscribe('MyTopic', callback, 'some scope');
- events.subscribe('MyTopic', callback, 'another scope');
-
- assert.deepEqual(getTestSubscriptions(), {
- 'global': [callback],
- 'some scope': [callback],
- 'another scope': [callback]
- }, 'The callbacks should be subscribed (sanity check)');
-
- events.unsubscribeAll('some scope');
-
- assert.deepEqual(getTestSubscriptions(), {
- 'global': [callback],
- 'some scope': [],
- 'another scope': [callback]
- }, 'All topics for the scope should be unsubscribed');
-
- events.unsubscribeAll('this is not actually a scope');
-
- assert.deepEqual(getTestSubscriptions(), {
- 'global': [callback],
- 'some scope': [],
- 'another scope': [callback]
- }, 'Unsubscribing from an unknown topic should not blow things up');
-
- events.unsubscribeAll();
-
- assert.deepEqual(getTestSubscriptions(), {
- 'global': [],
- 'some scope': [],
- 'another scope': []
- }, 'Unsubscribing without a topic should clear everything');
-
- function getTestSubscriptions()
- {
- return {
- 'global': subscriptions(events, 'MyTopic'),
- 'some scope': subscriptions(events, 'MyTopic', 'some scope'),
- 'another scope': subscriptions(events, 'MyTopic', 'another scope')
- };
- }
-});
-
-/** Reach into an events instance to check private state **/
-function subscriptions(events, topic, instanceID)
-{
- if (typeof instanceID === 'undefined')
- instanceID = 'global';
-
- var topicSubs = events._cache[topic];
-
- if (!topicSubs)
- return [];
-
- var instanceSubs = topicSubs[instanceID];
-
- if (!instanceSubs)
- return [];
-
- return instanceSubs.slice();
-}
diff --git a/tests/unit/utils/hash-params.js b/tests/unit/utils/hash-params.js
deleted file mode 100644
index d1e9edb0..00000000
--- a/tests/unit/utils/hash-params.js
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
-Test coverage: pretty much complete
-Can't really (or don't need to) test any of the others
-*/
-
-var HashParams = require('../../../source/js/utils/hash-params');
-
-QUnit.module("HashParams");
-
-QUnit.test("HashParams.get", function (assert)
-{
- // First try it with no hash params - should return false
- assert.ok(!HashParams.get('anything'), "No hash params, should return false");
-
- // Now set the current URL to something
- var baseUrl = window.location.href;
- window.location.hash = '#p=149&z=2';
- var nonexistentParam = HashParams.get('lol');
- var firstParam = HashParams.get('p');
- var secondParam = HashParams.get('z');
- assert.ok(!nonexistentParam, "The nonexistent param should return false");
- assert.strictEqual(firstParam, '149', "The 'p' param should be 149 (string)");
- assert.strictEqual(secondParam, '2', "The 'z' param should be 2 (string)");
-
- // Now let there be only one element in the URL
- window.location.hash = '#p=149';
- var soleParam = HashParams.get('p');
- assert.strictEqual(soleParam, '149', "The 'p' param should be 149 when it is the sole param");
-
- // Now let there be other elements in the URL
- window.location.hash = '#z=2&p=100&lol=lol';
- var anotherFirstParam = HashParams.get('z');
- var anotherSecondParam = HashParams.get('p');
- var thirdParam = HashParams.get('lol');
- assert.strictEqual(anotherFirstParam, '2', "The 'z' param should be '2' when it is the first param");
- assert.strictEqual(anotherSecondParam, '100', "The 'p' param should be '100' when it is the middle param");
- assert.strictEqual(thirdParam, 'lol', "The last param should be 'lol'");
- window.location.hash = '';
-});
-
-QUnit.test("HashParams.update", function (assert)
-{
- window.location.hash = '';
- // First try it with no hash params in the URL
- HashParams.update('p', '1');
- assert.strictEqual(window.location.hash, '#p=1');
-
- // The key is present but there is no value
- window.location.hash = '#p=';
- HashParams.update('p', '2');
- assert.strictEqual(window.location.hash, '#p=2');
-
- // Then, with a bunch of irrelevant ones
- window.location.hash = '#key=2&another=3';
- HashParams.update('p', '3');
- assert.strictEqual(window.location.hash, '#key=2&another=3&p=3');
-
- // One irrelevant one
- window.location.hash = '#a=b';
- HashParams.update('p', '4');
- assert.strictEqual(window.location.hash, '#a=b&p=4');
-
- // Only one hash param, and it's the one we want to update
- window.location.hash = '#p=1';
- HashParams.update('p', '9001');
- assert.strictEqual(window.location.hash, '#p=9001');
-
- // Two hash params, one of which is the one we want to update
- window.location.hash = '#p=4&h=1';
- HashParams.update('p', '1');
- assert.strictEqual(window.location.hash, '#p=1&h=1');
- HashParams.update('h', '100');
- assert.strictEqual(window.location.hash, '#p=1&h=100');
-
- // Two hash params, both are which are right (choose one)
- // Should never happen unless the user is being malicious
- window.location.hash = '#p=4&p=2';
- HashParams.update('p', '5');
- assert.strictEqual(window.location.hash, '#p=4&p=5');
- // Not actually sure why it chooses the first one to update
-
- // Restore the URL
- window.location.hash = '';
-});
diff --git a/tests/utils.js b/tests/utils.js
deleted file mode 100644
index 3da2b3e6..00000000
--- a/tests/utils.js
+++ /dev/null
@@ -1,64 +0,0 @@
-// Utility methods for testing
-
-var jQuery = require('jquery');
-var $ = jQuery;
-
-var diva = require('../source/js/diva');
-
-var getWrapper = module.exports.getWrapper = function ()
-{
- var wrapper = $('#diva-temp');
-
- // Attach the wrapper to the DOM on first instantiation
- if (wrapper.length === 0)
- {
- // The tests were developed for a viewport width of 1000px,
- // so we set the parent element to have a width of 1000px minus
- // standard body padding
- var width = 1000 - (8 * 2);
-
- var wrapperHtml = (
- '' +
- '' +
- ''
- );
-
- var parent = $(wrapperHtml);
- parent.appendTo(document.body);
-
- wrapper = parent.find('#diva-temp');
- }
-
- return wrapper;
-};
-
-(function () {
- // Allows you to clone, create a document viewer on, then remove an element
- $.tempDiva = function (settings) {
- var wrapper = getWrapper();
-
- settings = settings || {};
- // If the divaserveURL, imageDir, iconPath and iipServerURL settings aren't defined, define them
- settings.objectData = settings.objectData || "../demo/beromunster-iiif.json";
-
- // These are always enabled. I don't think that was really intentional
- // initially, but it's required now to keep existing tests from breaking.
- settings.enableCanvas = true;
- settings.enableDownload = true;
-
- return wrapper.diva(settings).data('diva');
- };
-})(jQuery);
-
-module.exports.clearTempDiva = function()
-{
- // First, empty it in case something else has been using it
- var dv = $('#diva-temp').data('diva');
- if (dv)
- {
- dv.destroy();
- }
-
- // Clear globally subscribed events (i.e. test callbacks)
- diva.Events.unsubscribeAll();
-};
diff --git a/tools/check-git-status.js b/tools/check-git-status.js
deleted file mode 100644
index d46217c3..00000000
--- a/tools/check-git-status.js
+++ /dev/null
@@ -1,34 +0,0 @@
-var spawn = require('child_process').spawn;
-var Promise = global.Promise || require('bluebird');
-
-module.exports = function ()
-{
- return gitExec(['status', '--porcelain']).then(function (output)
- {
- if (output)
- throw new Error('working directory must be clean, but got files:\n' + output);
- });
-};
-
-function gitExec(command)
-{
- return new Promise(function (resolve, reject)
- {
- var proc = spawn('git', command, {stdio: ['inherit', 'pipe', 'inherit']});
-
- var output = '';
-
- proc.stdout.on('data', function (data)
- {
- output += data;
- });
-
- proc.on('exit', function (code)
- {
- if (code === 0)
- resolve(output);
- else
- reject(new Error('git exited with code ' + code));
- });
- });
-}
diff --git a/tools/generate-archives.js b/tools/generate-archives.js
deleted file mode 100644
index 50f9568f..00000000
--- a/tools/generate-archives.js
+++ /dev/null
@@ -1,101 +0,0 @@
-'use strict';
-
-var Promise = global.Promise || require('bluebird');
-
-var fs = require('fs');
-var zlib = require('zlib');
-var tar = require('tar-fs');
-var archiver = require('archiver');
-
-var promisify = require('bluebird').promisify;
-
-var rmRec = promisify(require('rimraf'));
-
-var npmExec = require('./npm-exec');
-
-// Create a tar archive using npm pack and a zip archive based on it
-module.exports = function ()
-{
- // Ensure version is up to date
- delete require.cache[require.resolve('../package.json')];
- var version = require('../package.json').version;
-
- var releaseName = 'diva-v' + version;
- var npmPackFilename = 'diva.js-' + version + '.tgz';
-
- return npmExec(['pack']).then(function ()
- {
- var extractor = tar.extract('.tmp-package');
- var extracterComplete = streamToPromise(extractor, 'finish');
-
- var tgz = fs.createReadStream(npmPackFilename);
- tgz
- .pipe(zlib.Gunzip())
- .pipe(extractor);
-
- return extracterComplete;
- }).then(function ()
- {
- var tarOpts = {
- gzip: true,
- gzipOptions: {
- level: 9
- }
- };
-
- return Promise.all([
- writeArchive('zip', undefined, releaseName, '.zip'),
- writeArchive('tar', tarOpts, releaseName, '.tar.gz')
- ]);
- }).then(function ()
- {
- // No-op, ensure undefined returned
- }, function (err)
- {
- // Catch error to re-raise later
- return err;
- })
- .then(function (err)
- {
- // Cleanup
- return Promise.all([
- rmRec(npmPackFilename),
- rmRec('./.tmp-package')
- ]).then(function ()
- {
- // Re-throw an error if there was one
- if (err)
- throw err;
-
- console.log('Release build complete');
- });
- });
-};
-
-function writeArchive(format, options, releaseName, extension)
-{
- var fname = releaseName + extension;
- var output = fs.createWriteStream(fname);
-
- var archive = archiver(format, options);
-
- var archiverComplete = streamToPromise(archive, 'end');
-
- archive.pipe(output);
- archive.directory('.tmp-package/package', releaseName)
- .finalize();
-
- return archiverComplete.then(function ()
- {
- console.log('Wrote ' + fname + ' (' + archive.pointer() + ' bytes)');
- });
-}
-
-function streamToPromise(stream, endEvent)
-{
- return new Promise(function(resolve, reject)
- {
- stream.on(endEvent, resolve);
- stream.on('error', reject);
- });
-}
diff --git a/tools/npm-exec.js b/tools/npm-exec.js
deleted file mode 100644
index 75a3dd2a..00000000
--- a/tools/npm-exec.js
+++ /dev/null
@@ -1,25 +0,0 @@
-var spawn = require('child_process').spawn;
-var Promise = global.Promise || require('bluebird');
-
-module.exports = function (command)
-{
- return new Promise(function (resolve, reject)
- {
- console.log('executing npm ' + command.join(' '));
- var proc = spawn('npm', command, {shell: true, stdio: 'inherit'});
-
- proc.on('error', function (err)
- {
- console.error('failed to call npm ' + command[0] + ': ' + err);
- reject(err);
- });
-
- proc.on('exit', function (code)
- {
- if (code === 0)
- resolve();
- else
- reject(new Error('npm exited with code ' + code));
- });
- });
-};
diff --git a/webpack.conf.coverage.js b/webpack.conf.coverage.js
deleted file mode 100644
index 8f323b67..00000000
--- a/webpack.conf.coverage.js
+++ /dev/null
@@ -1,33 +0,0 @@
-var path = require('path');
-
-// FIXME: Dedupe common code with the regular test config
-module.exports = {
- externals: {
- // qunit-assert-close looks for this
- qunit: 'QUnit',
- qunitjs: 'QUnit'
- },
-
- module: {
- preLoaders: [
- // instrument only testing sources with Istanbul
- {
- test: /\.js$/,
- include: path.join(__dirname, 'source/js/'),
- loader: 'istanbul-instrumenter'
- }
- ],
- loaders: [
- {
- test: /\.json$/,
- loader: 'json'
- },
- {
- include: path.join(__dirname, 'node_modules/jquery-simulate'),
- loader: 'imports?jQuery=jquery'
- }
- ]
- },
-
- devtool: 'inline-source-map'
-};
diff --git a/webpack.conf.dev.js b/webpack.conf.dev.js
deleted file mode 100644
index 175e9317..00000000
--- a/webpack.conf.dev.js
+++ /dev/null
@@ -1,2 +0,0 @@
-// Output to diva.min.js because that's what the demos use.
-module.exports = require('./get-webpack-config')('development', { outputFilename: 'diva.min.js' });
diff --git a/webpack.conf.prod.js b/webpack.conf.prod.js
deleted file mode 100644
index 7b617273..00000000
--- a/webpack.conf.prod.js
+++ /dev/null
@@ -1,4 +0,0 @@
-module.exports = [
- require('./get-webpack-config')('production'),
- require('./get-webpack-config')('production', { compress: true })
-];
diff --git a/webpack.conf.test.js b/webpack.conf.test.js
deleted file mode 100644
index 69b25f7f..00000000
--- a/webpack.conf.test.js
+++ /dev/null
@@ -1,24 +0,0 @@
-var path = require('path');
-
-module.exports = {
- externals: {
- // qunit-assert-close looks for this
- qunit: 'QUnit',
- qunitjs: 'QUnit'
- },
-
- module: {
- loaders: [
- {
- test: /\.json$/,
- loader: 'json'
- },
- {
- include: path.join(__dirname, 'node_modules/jquery-simulate'),
- loader: 'imports?jQuery=jquery'
- }
- ]
- },
-
- devtool: 'inline-source-map'
-};
diff --git a/webpack.config.js b/webpack.config.js
new file mode 100644
index 00000000..1af58a6a
--- /dev/null
+++ b/webpack.config.js
@@ -0,0 +1,58 @@
+const path = require('path');
+const buildMode = (process.env.NODE_ENV === "production") ? 'production' : 'development';
+const CleanWebpackPlugin = require('clean-webpack-plugin');
+const CopyWebpackPlugin = require('copy-webpack-plugin');
+const MiniCssExtractPlugin = require("mini-css-extract-plugin");
+
+
+module.exports = [{
+ entry: [
+ // 'babel-polyfill',
+ "array.prototype.fill",
+ './source/js/diva.js',
+ './source/css/diva.scss'
+ ],
+ module: {
+ rules: [
+ {
+ test: /\.scss$/,
+ use: ['style-loader', MiniCssExtractPlugin.loader, 'css-loader', 'sass-loader']
+ }
+ ]
+ },
+ plugins: [
+ new CleanWebpackPlugin(['build']),
+ new CopyWebpackPlugin(),
+ new MiniCssExtractPlugin({
+ filename: path.join('diva.css')
+ })
+ ],
+ output: {
+ publicPath: '/build/',
+ path: path.join(__dirname, 'build'),
+ filename: 'diva.js'
+ },
+ mode: buildMode,
+ devtool: (buildMode === "production") ? 'cheap-source-map' : 'cheap-module-eval-source-map',
+ devServer: {
+ contentBase: __dirname,
+ compress: true,
+ port: 9001
+ }
+}, {
+ entry: {
+ 'download': './source/js/plugins/download.js',
+ 'manipulation': './source/js/plugins/manipulation.js',
+ 'metadata': './source/js/plugins/metadata.js'
+ },
+ plugins: [
+ new CleanWebpackPlugin([path.join('build', 'plugins')]),
+ ],
+ output: {
+ publicPath: '/build/plugins/',
+ path: path.join(__dirname, 'build', 'plugins'),
+ filename: '[name].js'
+ },
+ mode: buildMode,
+ devtool: (buildMode === "production") ? 'cheap-source-map' : 'cheap-module-eval-source-map'
+}];
\ No newline at end of file
diff --git a/webpack.config.test.js b/webpack.config.test.js
new file mode 100644
index 00000000..15777372
--- /dev/null
+++ b/webpack.config.test.js
@@ -0,0 +1,45 @@
+var path = require('path');
+
+module.exports = {
+ entry: './test/main.js',
+ mode: 'development',
+ output: {
+ filename: './build/test-bundle.js'
+ },
+ node: {
+ fs: 'empty',
+ net: 'empty',
+ tls: 'empty',
+ child_process: 'empty'
+ },
+ module: {
+ rules: [
+ {
+ loader: "babel-loader",
+ include: [
+ path.resolve(__dirname, "tests")
+ ],
+ query: {
+ presets: ["env"],
+ }
+ },
+ {
+ test: /\.js$/,
+ use: {
+ loader: 'istanbul-instrumenter-loader',
+ options: { esModules: true }
+ },
+ exclude: [
+ // exclude so we don't test coverage of these files
+ // very hard to test them with pure JS anyway
+ /source\/js\/utils\/vanilla\.kinetic\.js/,
+ /source\/js\/utils\/dragscroll\.js/,
+ /source\/js\/plugins\/_filters\.js/,
+ /source\/js\/gesture-events\.js/
+ ],
+ enforce: 'post',
+ include: path.resolve('source/js/')
+ }
+ ]
+ },
+};
' +
- '' +
- '
'
- );
-
- var parent = $(wrapperHtml);
- parent.appendTo(document.body);
-
- wrapper = parent.find('#diva-temp');
- }
-
- return wrapper;
-};
-
-(function () {
- // Allows you to clone, create a document viewer on, then remove an element
- $.tempDiva = function (settings) {
- var wrapper = getWrapper();
-
- settings = settings || {};
- // If the divaserveURL, imageDir, iconPath and iipServerURL settings aren't defined, define them
- settings.objectData = settings.objectData || "../demo/beromunster-iiif.json";
-
- // These are always enabled. I don't think that was really intentional
- // initially, but it's required now to keep existing tests from breaking.
- settings.enableCanvas = true;
- settings.enableDownload = true;
-
- return wrapper.diva(settings).data('diva');
- };
-})(jQuery);
-
-module.exports.clearTempDiva = function()
-{
- // First, empty it in case something else has been using it
- var dv = $('#diva-temp').data('diva');
- if (dv)
- {
- dv.destroy();
- }
-
- // Clear globally subscribed events (i.e. test callbacks)
- diva.Events.unsubscribeAll();
-};
diff --git a/tools/check-git-status.js b/tools/check-git-status.js
deleted file mode 100644
index d46217c3..00000000
--- a/tools/check-git-status.js
+++ /dev/null
@@ -1,34 +0,0 @@
-var spawn = require('child_process').spawn;
-var Promise = global.Promise || require('bluebird');
-
-module.exports = function ()
-{
- return gitExec(['status', '--porcelain']).then(function (output)
- {
- if (output)
- throw new Error('working directory must be clean, but got files:\n' + output);
- });
-};
-
-function gitExec(command)
-{
- return new Promise(function (resolve, reject)
- {
- var proc = spawn('git', command, {stdio: ['inherit', 'pipe', 'inherit']});
-
- var output = '';
-
- proc.stdout.on('data', function (data)
- {
- output += data;
- });
-
- proc.on('exit', function (code)
- {
- if (code === 0)
- resolve(output);
- else
- reject(new Error('git exited with code ' + code));
- });
- });
-}
diff --git a/tools/generate-archives.js b/tools/generate-archives.js
deleted file mode 100644
index 50f9568f..00000000
--- a/tools/generate-archives.js
+++ /dev/null
@@ -1,101 +0,0 @@
-'use strict';
-
-var Promise = global.Promise || require('bluebird');
-
-var fs = require('fs');
-var zlib = require('zlib');
-var tar = require('tar-fs');
-var archiver = require('archiver');
-
-var promisify = require('bluebird').promisify;
-
-var rmRec = promisify(require('rimraf'));
-
-var npmExec = require('./npm-exec');
-
-// Create a tar archive using npm pack and a zip archive based on it
-module.exports = function ()
-{
- // Ensure version is up to date
- delete require.cache[require.resolve('../package.json')];
- var version = require('../package.json').version;
-
- var releaseName = 'diva-v' + version;
- var npmPackFilename = 'diva.js-' + version + '.tgz';
-
- return npmExec(['pack']).then(function ()
- {
- var extractor = tar.extract('.tmp-package');
- var extracterComplete = streamToPromise(extractor, 'finish');
-
- var tgz = fs.createReadStream(npmPackFilename);
- tgz
- .pipe(zlib.Gunzip())
- .pipe(extractor);
-
- return extracterComplete;
- }).then(function ()
- {
- var tarOpts = {
- gzip: true,
- gzipOptions: {
- level: 9
- }
- };
-
- return Promise.all([
- writeArchive('zip', undefined, releaseName, '.zip'),
- writeArchive('tar', tarOpts, releaseName, '.tar.gz')
- ]);
- }).then(function ()
- {
- // No-op, ensure undefined returned
- }, function (err)
- {
- // Catch error to re-raise later
- return err;
- })
- .then(function (err)
- {
- // Cleanup
- return Promise.all([
- rmRec(npmPackFilename),
- rmRec('./.tmp-package')
- ]).then(function ()
- {
- // Re-throw an error if there was one
- if (err)
- throw err;
-
- console.log('Release build complete');
- });
- });
-};
-
-function writeArchive(format, options, releaseName, extension)
-{
- var fname = releaseName + extension;
- var output = fs.createWriteStream(fname);
-
- var archive = archiver(format, options);
-
- var archiverComplete = streamToPromise(archive, 'end');
-
- archive.pipe(output);
- archive.directory('.tmp-package/package', releaseName)
- .finalize();
-
- return archiverComplete.then(function ()
- {
- console.log('Wrote ' + fname + ' (' + archive.pointer() + ' bytes)');
- });
-}
-
-function streamToPromise(stream, endEvent)
-{
- return new Promise(function(resolve, reject)
- {
- stream.on(endEvent, resolve);
- stream.on('error', reject);
- });
-}
diff --git a/tools/npm-exec.js b/tools/npm-exec.js
deleted file mode 100644
index 75a3dd2a..00000000
--- a/tools/npm-exec.js
+++ /dev/null
@@ -1,25 +0,0 @@
-var spawn = require('child_process').spawn;
-var Promise = global.Promise || require('bluebird');
-
-module.exports = function (command)
-{
- return new Promise(function (resolve, reject)
- {
- console.log('executing npm ' + command.join(' '));
- var proc = spawn('npm', command, {shell: true, stdio: 'inherit'});
-
- proc.on('error', function (err)
- {
- console.error('failed to call npm ' + command[0] + ': ' + err);
- reject(err);
- });
-
- proc.on('exit', function (code)
- {
- if (code === 0)
- resolve();
- else
- reject(new Error('npm exited with code ' + code));
- });
- });
-};
diff --git a/webpack.conf.coverage.js b/webpack.conf.coverage.js
deleted file mode 100644
index 8f323b67..00000000
--- a/webpack.conf.coverage.js
+++ /dev/null
@@ -1,33 +0,0 @@
-var path = require('path');
-
-// FIXME: Dedupe common code with the regular test config
-module.exports = {
- externals: {
- // qunit-assert-close looks for this
- qunit: 'QUnit',
- qunitjs: 'QUnit'
- },
-
- module: {
- preLoaders: [
- // instrument only testing sources with Istanbul
- {
- test: /\.js$/,
- include: path.join(__dirname, 'source/js/'),
- loader: 'istanbul-instrumenter'
- }
- ],
- loaders: [
- {
- test: /\.json$/,
- loader: 'json'
- },
- {
- include: path.join(__dirname, 'node_modules/jquery-simulate'),
- loader: 'imports?jQuery=jquery'
- }
- ]
- },
-
- devtool: 'inline-source-map'
-};
diff --git a/webpack.conf.dev.js b/webpack.conf.dev.js
deleted file mode 100644
index 175e9317..00000000
--- a/webpack.conf.dev.js
+++ /dev/null
@@ -1,2 +0,0 @@
-// Output to diva.min.js because that's what the demos use.
-module.exports = require('./get-webpack-config')('development', { outputFilename: 'diva.min.js' });
diff --git a/webpack.conf.prod.js b/webpack.conf.prod.js
deleted file mode 100644
index 7b617273..00000000
--- a/webpack.conf.prod.js
+++ /dev/null
@@ -1,4 +0,0 @@
-module.exports = [
- require('./get-webpack-config')('production'),
- require('./get-webpack-config')('production', { compress: true })
-];
diff --git a/webpack.conf.test.js b/webpack.conf.test.js
deleted file mode 100644
index 69b25f7f..00000000
--- a/webpack.conf.test.js
+++ /dev/null
@@ -1,24 +0,0 @@
-var path = require('path');
-
-module.exports = {
- externals: {
- // qunit-assert-close looks for this
- qunit: 'QUnit',
- qunitjs: 'QUnit'
- },
-
- module: {
- loaders: [
- {
- test: /\.json$/,
- loader: 'json'
- },
- {
- include: path.join(__dirname, 'node_modules/jquery-simulate'),
- loader: 'imports?jQuery=jquery'
- }
- ]
- },
-
- devtool: 'inline-source-map'
-};
diff --git a/webpack.config.js b/webpack.config.js
new file mode 100644
index 00000000..1af58a6a
--- /dev/null
+++ b/webpack.config.js
@@ -0,0 +1,58 @@
+const path = require('path');
+const buildMode = (process.env.NODE_ENV === "production") ? 'production' : 'development';
+const CleanWebpackPlugin = require('clean-webpack-plugin');
+const CopyWebpackPlugin = require('copy-webpack-plugin');
+const MiniCssExtractPlugin = require("mini-css-extract-plugin");
+
+
+module.exports = [{
+ entry: [
+ // 'babel-polyfill',
+ "array.prototype.fill",
+ './source/js/diva.js',
+ './source/css/diva.scss'
+ ],
+ module: {
+ rules: [
+ {
+ test: /\.scss$/,
+ use: ['style-loader', MiniCssExtractPlugin.loader, 'css-loader', 'sass-loader']
+ }
+ ]
+ },
+ plugins: [
+ new CleanWebpackPlugin(['build']),
+ new CopyWebpackPlugin(),
+ new MiniCssExtractPlugin({
+ filename: path.join('diva.css')
+ })
+ ],
+ output: {
+ publicPath: '/build/',
+ path: path.join(__dirname, 'build'),
+ filename: 'diva.js'
+ },
+ mode: buildMode,
+ devtool: (buildMode === "production") ? 'cheap-source-map' : 'cheap-module-eval-source-map',
+ devServer: {
+ contentBase: __dirname,
+ compress: true,
+ port: 9001
+ }
+}, {
+ entry: {
+ 'download': './source/js/plugins/download.js',
+ 'manipulation': './source/js/plugins/manipulation.js',
+ 'metadata': './source/js/plugins/metadata.js'
+ },
+ plugins: [
+ new CleanWebpackPlugin([path.join('build', 'plugins')]),
+ ],
+ output: {
+ publicPath: '/build/plugins/',
+ path: path.join(__dirname, 'build', 'plugins'),
+ filename: '[name].js'
+ },
+ mode: buildMode,
+ devtool: (buildMode === "production") ? 'cheap-source-map' : 'cheap-module-eval-source-map'
+}];
\ No newline at end of file
diff --git a/webpack.config.test.js b/webpack.config.test.js
new file mode 100644
index 00000000..15777372
--- /dev/null
+++ b/webpack.config.test.js
@@ -0,0 +1,45 @@
+var path = require('path');
+
+module.exports = {
+ entry: './test/main.js',
+ mode: 'development',
+ output: {
+ filename: './build/test-bundle.js'
+ },
+ node: {
+ fs: 'empty',
+ net: 'empty',
+ tls: 'empty',
+ child_process: 'empty'
+ },
+ module: {
+ rules: [
+ {
+ loader: "babel-loader",
+ include: [
+ path.resolve(__dirname, "tests")
+ ],
+ query: {
+ presets: ["env"],
+ }
+ },
+ {
+ test: /\.js$/,
+ use: {
+ loader: 'istanbul-instrumenter-loader',
+ options: { esModules: true }
+ },
+ exclude: [
+ // exclude so we don't test coverage of these files
+ // very hard to test them with pure JS anyway
+ /source\/js\/utils\/vanilla\.kinetic\.js/,
+ /source\/js\/utils\/dragscroll\.js/,
+ /source\/js\/plugins\/_filters\.js/,
+ /source\/js\/gesture-events\.js/
+ ],
+ enforce: 'post',
+ include: path.resolve('source/js/')
+ }
+ ]
+ },
+};