bolognese 1.2 → 1.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/bolognese/readers/crossref_reader.rb +2 -1
- data/lib/bolognese/version.rb +1 -1
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/another_book_chapter.yml +89 -0
- data/spec/readers/crossref_reader_spec.rb +15 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f20513d06ae37855e9114cb7a01263875978d0effc4820b84e4b849cf1a5249d
|
4
|
+
data.tar.gz: ddd69443cc4d3fd36d26ec78239a51521ef3ca4be1d075121cbce6716fd5ba8c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c30844e4dfa0903860d09709d8adb4fe009c4f2fb7185505c9ca071bcb4e84e4f9f3c3fc442992c7cec1fb145390acb5d5885561e07a083ba966c339a7b3fe3d
|
7
|
+
data.tar.gz: d2d4da9c4ac6e0b466c2ebc1bf128d2ac48db05c54d1bcaae7f6c8e9587d95218a6fbb4afadc6f8b94976490e1159f169c28a1ff01777023dd429e9ab87923db
|
data/Gemfile.lock
CHANGED
@@ -39,6 +39,7 @@ module Bolognese
|
|
39
39
|
program_metadata = {}
|
40
40
|
journal_metadata = nil
|
41
41
|
journal_issue = {}
|
42
|
+
journal_metadata = nil
|
42
43
|
publisher = query.dig("crm_item", 0)
|
43
44
|
|
44
45
|
case model
|
@@ -48,7 +49,7 @@ module Bolognese
|
|
48
49
|
book_set_metadata = meta.dig("crossref", "book", "book_set_metadata")
|
49
50
|
bibliographic_metadata = meta.dig("crossref", "book", "content_item").to_h
|
50
51
|
resource_type = bibliographic_metadata.fetch("component_type", nil) ? "book-" + bibliographic_metadata.fetch("component_type") : "book"
|
51
|
-
publisher = book_metadata.dig("publisher", "publisher_name")
|
52
|
+
publisher = book_metadata.present? ? book_metadata.dig("publisher", "publisher_name") : book_series_metadata.dig("publisher", "publisher_name")
|
52
53
|
when "conference"
|
53
54
|
event_metadata = meta.dig("crossref", "conference", "event_metadata") || {}
|
54
55
|
bibliographic_metadata = meta.dig("crossref", "conference", "conference_paper").to_h
|
data/lib/bolognese/version.rb
CHANGED
data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/another_book_chapter.yml
ADDED
@@ -0,0 +1,89 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://doi.org/ra/10.1007
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- Mozilla/5.0 (compatible; Maremma/4.2.3; mailto:info@datacite.org)
|
12
|
+
Accept:
|
13
|
+
- text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
|
14
|
+
response:
|
15
|
+
status:
|
16
|
+
code: 200
|
17
|
+
message: ''
|
18
|
+
headers:
|
19
|
+
Date:
|
20
|
+
- Thu, 04 Jul 2019 05:37:41 GMT
|
21
|
+
Content-Type:
|
22
|
+
- application/json;charset=UTF-8
|
23
|
+
Content-Length:
|
24
|
+
- '54'
|
25
|
+
Connection:
|
26
|
+
- keep-alive
|
27
|
+
Set-Cookie:
|
28
|
+
- __cfduid=dc5a0ac7629f1a2c9d22e1fd02e3e10aa1562218661; expires=Fri, 03-Jul-20
|
29
|
+
05:37:41 GMT; path=/; domain=.doi.org; HttpOnly
|
30
|
+
Expect-Ct:
|
31
|
+
- max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
|
32
|
+
Server:
|
33
|
+
- cloudflare
|
34
|
+
Cf-Ray:
|
35
|
+
- 4f0ebfaa2bf669c2-CDG
|
36
|
+
body:
|
37
|
+
encoding: ASCII-8BIT
|
38
|
+
string: |-
|
39
|
+
[
|
40
|
+
{
|
41
|
+
"DOI": "10.1007",
|
42
|
+
"RA": "Crossref"
|
43
|
+
}
|
44
|
+
]
|
45
|
+
http_version:
|
46
|
+
recorded_at: Thu, 04 Jul 2019 05:37:41 GMT
|
47
|
+
- request:
|
48
|
+
method: get
|
49
|
+
uri: https://api.crossref.org/works/10.1007/978-3-319-75889-3_1/transform/application/vnd.crossref.unixsd+xml
|
50
|
+
body:
|
51
|
+
encoding: US-ASCII
|
52
|
+
string: ''
|
53
|
+
headers:
|
54
|
+
User-Agent:
|
55
|
+
- Mozilla/5.0 (compatible; Maremma/4.2.3; mailto:info@datacite.org)
|
56
|
+
Accept:
|
57
|
+
- text/xml
|
58
|
+
response:
|
59
|
+
status:
|
60
|
+
code: 200
|
61
|
+
message: OK
|
62
|
+
headers:
|
63
|
+
Link:
|
64
|
+
- <http://dx.doi.org/10.1007/978-3-319-75889-3_1>; rel="canonical", <http://link.springer.com/content/pdf/10.1007/978-3-319-75889-3_1>;
|
65
|
+
version="vor"; rel="item", <http://www.springer.com/tdm>; rel="license", <http://www.springer.com/tdm>;
|
66
|
+
rel="license"
|
67
|
+
Access-Control-Allow-Origin:
|
68
|
+
- "*"
|
69
|
+
Access-Control-Allow-Headers:
|
70
|
+
- X-Requested-With
|
71
|
+
Content-Length:
|
72
|
+
- '30612'
|
73
|
+
Server:
|
74
|
+
- http-kit
|
75
|
+
Date:
|
76
|
+
- Thu, 04 Jul 2019 05:37:42 GMT
|
77
|
+
X-Rate-Limit-Limit:
|
78
|
+
- '50'
|
79
|
+
X-Rate-Limit-Interval:
|
80
|
+
- 1s
|
81
|
+
Connection:
|
82
|
+
- close
|
83
|
+
body:
|
84
|
+
encoding: ASCII-8BIT
|
85
|
+
string: !binary |-
|
86
|
+
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGNyb3NzcmVmX3Jlc3VsdCB4bWxucz0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvcXJzY2hlbWEvMy4wIiB2ZXJzaW9uPSIzLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvcXJzY2hlbWEvMy4wIGh0dHA6Ly93d3cuY3Jvc3NyZWYub3JnL3NjaGVtYXMvY3Jvc3NyZWZfcXVlcnlfb3V0cHV0My4wLnhzZCI+DQogIDxxdWVyeV9yZXN1bHQ+DQogICAgPGhlYWQ+DQogICAgICA8ZG9pX2JhdGNoX2lkPm5vbmU8L2RvaV9iYXRjaF9pZD4NCiAgICA8L2hlYWQ+DQogICAgPGJvZHk+DQogICAgICA8cXVlcnkgc3RhdHVzPSJyZXNvbHZlZCI+DQogICAgICAgIDxkb2kgdHlwZT0iYm9va19jb250ZW50Ij4xMC4xMDA3Lzk3OC0zLTMxOS03NTg4OS0zXzE8L2RvaT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9InB1Ymxpc2hlci1uYW1lIiB0eXBlPSJzdHJpbmciPlNwcmluZ2VyIFNjaWVuY2UgYW5kIEJ1c2luZXNzIE1lZGlhIExMQzwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJwcmVmaXgtbmFtZSIgdHlwZT0ic3RyaW5nIj5TcHJpbmdlci1WZXJsYWc8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0ibWVtYmVyLWlkIiB0eXBlPSJudW1iZXIiPjI5NzwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJjaXRhdGlvbi1pZCIgdHlwZT0ibnVtYmVyIj45Nzg3ODY1NTwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJib29rLWlkIiB0eXBlPSJudW1iZXIiPjMwMzAwMTU8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0ic2VyaWVzLWlkIiB0eXBlPSJudW1iZXIiPjMwMzAwMTY8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iZGVwb3NpdC10aW1lc3RhbXAiIHR5cGU9Im51bWJlciI+MjAxODA5MDUwNzM1MDE0NTA8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0ib3duZXItcHJlZml4IiB0eXBlPSJzdHJpbmciPjEwLjEwMDc8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0ibGFzdC11cGRhdGUiIHR5cGU9ImRhdGUiPjIwMTgtMDktMDVUMDU6MzY6MTZaPC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9ImNyZWF0ZWQiIHR5cGU9ImRhdGUiPjIwMTgtMDQtMTdUMDk6MjQ6MTdaPC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9ImNpdGVkYnktY291bnQiIHR5cGU9Im51bWJlciI+MDwvY3JtLWl0ZW0+DQogICAgICAgIDxkb2lfcmVjb3JkPg0KICAgICAgICAgIDxjcm9zc3JlZiB4bWxucz0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcveHNjaGVtYS8xLjEiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcveHNjaGVtYS8xLjEgaHR0cDovL2RvaS5jcm9zc3JlZi5vcmcvc2NoZW1hcy91bml4cmVmMS4xLnhzZCI+DQogICAgICAgICAgICA8Ym9vayBib29rX3R5cGU9Im90aGVyIj4NCiAgICAgICAgICAgICAgPGJvb2tfc2VyaWVzX21ldGFkYXRhPg0KICAgICAgICAgICAgICAgIDxzZXJpZXNfbWV0YWRhdGE+DQogICAgICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICA8dGl0bGU+U3ByaW5nZXJCcmllZnMgaW4gTWVkaWNhbCBFYXJ0aCBTY2llbmNlczwvdGl0bGU+DQogICAgICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgICAgIDxpc3NuIG1lZGlhX3R5cGU9InByaW50Ij4yNTIzLTM2MTA8L2lzc24+DQogICAgICAgICAgICAgICAgICA8aXNzbiBtZWRpYV90eXBlPSJlbGVjdHJvbmljIj4yNTIzLTM2Mjk8L2lzc24+DQogICAgICAgICAgICAgICAgPC9zZXJpZXNfbWV0YWRhdGE+DQogICAgICAgICAgICAgICAgPGNvbnRyaWJ1dG9ycz4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBjb250cmlidXRvcl9yb2xlPSJlZGl0b3IiIHNlcXVlbmNlPSJmaXJzdCI+DQogICAgICAgICAgICAgICAgICAgIDxnaXZlbl9uYW1lPll1cmk8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgICAgICAgIDxzdXJuYW1lPkhvc29rYXdhPC9zdXJuYW1lPg0KICAgICAgICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgICAgICA8L2NvbnRyaWJ1dG9ycz4NCiAgICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgICAgPHRpdGxlPkh1bWFuIEhlYWx0aCBhbmQgUGh5c2ljYWwgQWN0aXZpdHkgRHVyaW5nIEhlYXQgRXhwb3N1cmU8L3RpdGxlPg0KICAgICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICAgIDxwdWJsaWNhdGlvbl9kYXRlIG1lZGlhX3R5cGU9InByaW50Ij4NCiAgICAgICAgICAgICAgICAgIDx5ZWFyPjIwMTg8L3llYXI+DQogICAgICAgICAgICAgICAgPC9wdWJsaWNhdGlvbl9kYXRlPg0KICAgICAgICAgICAgICAgIDxpc2JuIG1lZGlhX3R5cGU9InByaW50Ij45NzgtMy0zMTktNzU4ODgtNjwvaXNibj4NCiAgICAgICAgICAgICAgICA8aXNibiBtZWRpYV90eXBlPSJlbGVjdHJvbmljIj45NzgtMy0zMTktNzU4ODktMzwvaXNibj4NCiAgICAgICAgICAgICAgICA8cHVibGlzaGVyPg0KICAgICAgICAgICAgICAgICAgPHB1Ymxpc2hlcl9uYW1lPlNwcmluZ2VyIEludGVybmF0aW9uYWwgUHVibGlzaGluZzwvcHVibGlzaGVyX25hbWU+DQogICAgICAgICAgICAgICAgICA8cHVibGlzaGVyX3BsYWNlPkNoYW08L3B1Ymxpc2hlcl9wbGFjZT4NCiAgICAgICAgICAgICAgICA8L3B1Ymxpc2hlcj4NCiAgICAgICAgICAgICAgICA8YWk6cHJvZ3JhbSB4bWxuczphaT0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvQWNjZXNzSW5kaWNhdG9ycy54c2QiIG5hbWU9IkFjY2Vzc0luZGljYXRvcnMiPg0KICAgICAgICAgICAgICAgICAgPGFpOmxpY2Vuc2VfcmVmPmh0dHA6Ly93d3cuc3ByaW5nZXIuY29tL3RkbTwvYWk6bGljZW5zZV9yZWY+DQogICAgICAgICAgICAgICAgPC9haTpwcm9ncmFtPg0KICAgICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAwNy85NzgtMy0zMTktNzU4ODktMzwvZG9pPg0KICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9saW5rLnNwcmluZ2VyLmNvbS8xMC4xMDA3Lzk3OC0zLTMxOS03NTg4OS0zPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgIDxjb2xsZWN0aW9uIHByb3BlcnR5PSJjcmF3bGVyLWJhc2VkIj4NCiAgICAgICAgICAgICAgICAgICAgPGl0ZW0gY3Jhd2xlcj0iaVBhcmFkaWdtcyI+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9saW5rLnNwcmluZ2VyLmNvbS9jb250ZW50L3BkZi8xMC4xMDA3Lzk3OC0zLTMxOS03NTg4OS0zPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9pdGVtPg0KICAgICAgICAgICAgICAgICAgPC9jb2xsZWN0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNvbGxlY3Rpb24gcHJvcGVydHk9InRleHQtbWluaW5nIj4NCiAgICAgICAgICAgICAgICAgICAgPGl0ZW0+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlIG1pbWVfdHlwZT0iYXBwbGljYXRpb24vcGRmIj5odHRwOi8vbGluay5zcHJpbmdlci5jb20vY29udGVudC9wZGYvMTAuMTAwNy85NzgtMy0zMTktNzU4ODktMy5wZGY8L3Jlc291cmNlPg0KICAgICAgICAgICAgICAgICAgICA8L2l0ZW0+DQogICAgICAgICAgICAgICAgICA8L2NvbGxlY3Rpb24+DQogICAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgICAgPC9ib29rX3Nlcmllc19tZXRhZGF0YT4NCiAgICAgICAgICAgICAgPGNvbnRlbnRfaXRlbSBjb21wb25lbnRfdHlwZT0iY2hhcHRlciIgbGV2ZWxfc2VxdWVuY2VfbnVtYmVyPSIxIiBwdWJsaWNhdGlvbl90eXBlPSJmdWxsX3RleHQiPg0KICAgICAgICAgICAgICAgIDxjb250cmlidXRvcnM+DQogICAgICAgICAgICAgICAgICA8cGVyc29uX25hbWUgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIiBzZXF1ZW5jZT0iZmlyc3QiPg0KICAgICAgICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5IdW50ZXIgTS48L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgICAgICAgIDxzdXJuYW1lPkpvbmVzPC9zdXJuYW1lPg0KICAgICAgICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgICAgICA8L2NvbnRyaWJ1dG9ycz4NCiAgICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgICAgPHRpdGxlPkNsaW1hdGUgQ2hhbmdlIGFuZCBJbmNyZWFzaW5nIFJpc2sgb2YgRXh0cmVtZSBIZWF0PC90aXRsZT4NCiAgICAgICAgICAgICAgICA8L3RpdGxlcz4NCiAgICAgICAgICAgICAgICA8Y29tcG9uZW50X251bWJlcj5DaGFwdGVyIDE8L2NvbXBvbmVudF9udW1iZXI+DQogICAgICAgICAgICAgICAgPHB1YmxpY2F0aW9uX2RhdGUgbWVkaWFfdHlwZT0icHJpbnQiPg0KICAgICAgICAgICAgICAgICAgPHllYXI+MjAxODwveWVhcj4NCiAgICAgICAgICAgICAgICA8L3B1YmxpY2F0aW9uX2RhdGU+DQogICAgICAgICAgICAgICAgPHB1YmxpY2F0aW9uX2RhdGUgbWVkaWFfdHlwZT0ib25saW5lIj4NCiAgICAgICAgICAgICAgICAgIDxtb250aD4wNDwvbW9udGg+DQogICAgICAgICAgICAgICAgICA8ZGF5PjE4PC9kYXk+DQogICAgICAgICAgICAgICAgICA8eWVhcj4yMDE4PC95ZWFyPg0KICAgICAgICAgICAgICAgIDwvcHVibGljYXRpb25fZGF0ZT4NCiAgICAgICAgICAgICAgICA8cGFnZXM+DQogICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgPGxhc3RfcGFnZT4xMzwvbGFzdF9wYWdlPg0KICAgICAgICAgICAgICAgIDwvcGFnZXM+DQogICAgICAgICAgICAgICAgPGNyb3NzbWFyaz4NCiAgICAgICAgICAgICAgICAgIDxjcm9zc21hcmtfdmVyc2lvbj4xPC9jcm9zc21hcmtfdmVyc2lvbj4NCiAgICAgICAgICAgICAgICAgIDxjcm9zc21hcmtfcG9saWN5PjEwLjEwMDcvc3ByaW5nZXJfY3Jvc3NtYXJrX3BvbGljeTwvY3Jvc3NtYXJrX3BvbGljeT4NCiAgICAgICAgICAgICAgICAgIDxjcm9zc21hcmtfZG9tYWlucz4NCiAgICAgICAgICAgICAgICAgICAgPGNyb3NzbWFya19kb21haW4+DQogICAgICAgICAgICAgICAgICAgICAgPGRvbWFpbj5saW5rLnNwcmluZ2VyLmNvbTwvZG9tYWluPg0KICAgICAgICAgICAgICAgICAgICA8L2Nyb3NzbWFya19kb21haW4+DQogICAgICAgICAgICAgICAgICA8L2Nyb3NzbWFya19kb21haW5zPg0KICAgICAgICAgICAgICAgICAgPGNyb3NzbWFya19kb21haW5fZXhjbHVzaXZlPmZhbHNlPC9jcm9zc21hcmtfZG9tYWluX2V4Y2x1c2l2ZT4NCiAgICAgICAgICAgICAgICAgIDxjdXN0b21fbWV0YWRhdGE+DQogICAgICAgICAgICAgICAgICAgIDxhaTpwcm9ncmFtIHhtbG5zOmFpPSJodHRwOi8vd3d3LmNyb3NzcmVmLm9yZy9BY2Nlc3NJbmRpY2F0b3JzLnhzZCIgbmFtZT0iQWNjZXNzSW5kaWNhdG9ycyI+DQogICAgICAgICAgICAgICAgICAgICAgPGFpOmxpY2Vuc2VfcmVmPmh0dHA6Ly93d3cuc3ByaW5nZXIuY29tL3RkbTwvYWk6bGljZW5zZV9yZWY+DQogICAgICAgICAgICAgICAgICAgIDwvYWk6cHJvZ3JhbT4NCiAgICAgICAgICAgICAgICAgIDwvY3VzdG9tX21ldGFkYXRhPg0KICAgICAgICAgICAgICAgIDwvY3Jvc3NtYXJrPg0KICAgICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAwNy85NzgtMy0zMTktNzU4ODktM18xPC9kb2k+DQogICAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cDovL2xpbmsuc3ByaW5nZXIuY29tLzEwLjEwMDcvOTc4LTMtMzE5LTc1ODg5LTNfMTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICA8Y29sbGVjdGlvbiBwcm9wZXJ0eT0iY3Jhd2xlci1iYXNlZCI+DQogICAgICAgICAgICAgICAgICAgIDxpdGVtIGNyYXdsZXI9ImlQYXJhZGlnbXMiPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vbGluay5zcHJpbmdlci5jb20vY29udGVudC9wZGYvMTAuMTAwNy85NzgtMy0zMTktNzU4ODktM18xPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9pdGVtPg0KICAgICAgICAgICAgICAgICAgPC9jb2xsZWN0aW9uPg0KICAgICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGNpdGF0aW9uX2xpc3Q+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxX0NSMSI+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+QXNzb2NpYXRlZCBQcmVzcyBGaXJzdCBoZWF0LCBub3cgZm9nIGRvZ2dpbmcgT2x5bXBpYyBldmVudCBwbGFubmluZyBpbiBTb2NoaSAoMjAxNCkgVGhlIE5hdGlvbmFsIFtJbnRlcm5ldF0uIDIwMTQgRmViIDE3OyBBdmFpbGFibGUgZnJvbTogDQpodHRwczovL3d3dy50aGVuYXRpb25hbC5hZS9zcG9ydC9maXJzdC1oZWF0LW5vdy1mb2ctZG9nZ2luZy1vbHltcGljLWV2ZW50LXBsYW5uaW5nLWluLXNvY2hpLTEuMjgwODc0PC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMV9DUjIiPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPlN0eWxlcyBSLCBCaGF0aWEgUyAoMjAxNikgQ2FsbCB0aGlzIHRoZSBTdW1tZXIgT2x5bXBpY3M/IFRvcnJlbnRpYWwgcmFpbiBhbmQgaGlnaCB3aW5kcyBsZWF2ZSB0ZW5uaXMgZGVsYXllZCwgcm93aW5nIGNhbmNlbGVkIC0gYW5kIHNwZWN0YXRvcnMgZHJlbmNoZWQuIERhaWx5IE1haWwgW0ludGVybmV0XS4gUmlvIGRlIEphbmVpcm87IDIwMTYgQXVnIDEwOyBBdmFpbGFibGUgZnJvbTogDQpodHRwOi8vd3d3LmRhaWx5bWFpbC5jby51ay9uZXdzL2FydGljbGUtMzczMzQzNC9JdC1zLXdhc2hvdXQtT2x5bXBpY3MtYmF0dGVyZWQtdG9ycmVudGlhbC1yYWluLWhpZ2gtd2luZHMtbGF0ZXN0LW1pc2ZvcnR1bmUtaGl0LVJpby5odG1sPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMV9DUjMiPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPkNvb25hbiBDICgyMDA4KSBCZWlqaW5nIGxvc2luZyBiYXR0bGUgYWdhaW5zdCBPbHltcGljIHNtb2cuIFRoZSBJbmRlcGVuZGVudCBbSW50ZXJuZXRdLiBCZWlqaW5nOyAyMDA4IEp1bCAyODsgQXZhaWxhYmxlIGZyb206IA0KaHR0cDovL3d3dy5pbmRlcGVuZGVudC5jby51ay9zcG9ydC9vbHltcGljcy9iZWlqaW5nLWxvc2luZy1iYXR0bGUtYWdhaW5zdC1vbHltcGljLXNtb2ctODc5NDIxLmh0bWw8L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxX0NSNCI+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+RGF2ZXkgTS4gKDIwMDcpIERlYXRoLCBIYXZvYyBhbmQgSGVhdCBNYXIgQ2hpY2FnbyBSYWNlLiBUaGUgTmV3IFlvcmsgVGltZXMgW0ludGVybmV0XS4gQ2hpY2FnbywgSUw7IDIwMDcgT2N0IDg7IEF2YWlsYWJsZSBmcm9tOiANCmh0dHA6Ly93d3cubnl0aW1lcy5jb20vMjAwNy8xMC8wOC91cy8wOGNoaWNhZ28uaHRtbDwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjFfQ1I1Ij4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5OYXRpb25hbCBXZWF0aGVyIFNlcnZpY2UuIFdlYXRoZXIgRmF0YWxpdGllcyAyMDE2IFtJbnRlcm5ldF0uIE5hdHVyYWwgSGF6YXJkIFN0YXRpc3RpY3MuIDIwMTYgW2NpdGVkIDIwMTcgQXVnIDIyXS4gQXZhaWxhYmxlIGZyb206IA0KaHR0cDovL3d3dy5ud3Mubm9hYS5nb3Yvb20vaGF6c3RhdHMuc2h0bWw8L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxX0NSNiI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPk1NV1IgU3VydmVpbGwgU3VtbTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5FIENob3VkaGFyeTwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjYzPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxpc3N1ZT4xMzwvaXNzdWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjE8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDE0PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5DaG91ZGhhcnkgRSwgVmFpZHlhbmF0aGFuIEEgKDIwMTQpIEhlYXQgc3RyZXNzIGlsbG5lc3MgaG9zcGl0YWxpemF0aW9ucyDigJQgZW52aXJvbm1lbnRhbCBwdWJsaWMgaGVhbHRoIHRyYWNraW5nIHByb2dyYW0sIDIwIHN0YXRlcywgMjAwMeKAkzIwMTAuIE1NV1IgU3VydmVpbGwgU3VtbSA2MygxMyk6MeKAkzEwLiBBdmFpbGFibGUgZnJvbTogDQpodHRwczovL3d3dy5jZGMuZ292L21td3IvcGRmL3NzL3NzNjMxMy5wZGY8L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxX0NSNyI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkogQ29tbXVuaXR5IEhlYWx0aDwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5FRCBGZWNodGVyLUxlZ2dldHQ8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT40MTwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8aXNzdWU+MTwvaXNzdWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjU3PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAxNjwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAwNy9zMTA5MDAtMDE1LTAwNjQtNzwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPkZlY2h0ZXItTGVnZ2V0dCBFRCwgVmFpZHlhbmF0aGFuIEEsIENob3VkaGFyeSBFICgyMDE2KSBIZWF0IHN0cmVzcyBpbGxuZXNzIGVtZXJnZW5jeSBkZXBhcnRtZW50IHZpc2l0cyBpbiBOYXRpb25hbCBFbnZpcm9ubWVudGFsIFB1YmxpYyBIZWFsdGggVHJhY2tpbmcgU3RhdGVzLCAyMDA14oCTMjAxMC4gSiBDb21tdW5pdHkgSGVhbHRoIDQxKDEpOjU34oCTNjkuIEF2YWlsYWJsZSBmcm9tOiANCmh0dHA6Ly9saW5rLnNwcmluZ2VyLmNvbS8xMC4xMDA3L3MxMDkwMC0wMTUtMDA2NC03PC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMV9DUjgiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5Qcm9jIE5hdGwgQWNhZCBTY2k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+SkwgU2NobmVsbDwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjExNDwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8aXNzdWU+MTE8L2lzc3VlPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yODU0PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAxNzwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTA3My9wbmFzLjE2MTQ0NTMxMTQ8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5TY2huZWxsIEpMLCBQcmF0aGVyIE1KICgyMDE3KSBDby1vY2N1cnJlbmNlIG9mIGV4dHJlbWVzIGluIHN1cmZhY2Ugb3pvbmUsIHBhcnRpY3VsYXRlIG1hdHRlciwgYW5kIHRlbXBlcmF0dXJlIG92ZXIgZWFzdGVybiBOb3J0aCBBbWVyaWNhLiBQcm9jIE5hdGwgQWNhZCBTY2kgMTE0KDExKToyODU04oCTMjg1OS4gQXZhaWxhYmxlIGZyb206IA0KaHR0cDovL3d3dy5wbmFzLm9yZy9sb29rdXAvZG9pLzEwLjEwNzMvcG5hcy4xNjE0NDUzMTE0PC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMV9DUjkiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5OYXQgR2Vvc2NpPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkRHIE1pcmFsbGVzPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+Nzwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8aXNzdWU+NTwvaXNzdWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjM0NTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTQ8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwMzgvbmdlbzIxNDE8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5NaXJhbGxlcyBERywgVGV1bGluZyBBSiwgdmFuIEhlZXJ3YWFyZGVuIENDLCBWaWzDoC1HdWVyYXUgZGUgQXJlbGxhbm8gSiAoMjAxNCkgTWVnYS1oZWF0d2F2ZSB0ZW1wZXJhdHVyZXMgZHVlIHRvIGNvbWJpbmVkIHNvaWwgZGVzaWNjYXRpb24gYW5kIGF0bW9zcGhlcmljIGhlYXQgYWNjdW11bGF0aW9uLiBOYXQgR2Vvc2NpIDcoNSk6MzQ14oCTMzQ5LiBBdmFpbGFibGUgZnJvbTogDQpodHRwOi8vd3d3Lm5hdHVyZS5jb20vZG9pZmluZGVyLzEwLjEwMzgvbmdlbzIxNDE8L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxX0NSMTAiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5DIFIgQmlvbDwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5KLU0gUm9iaW5lPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MzMxPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxpc3N1ZT4yPC9pc3N1ZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTcxPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwODwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAxNi9qLmNydmkuMjAwNy4xMi4wMDE8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5Sb2JpbmUgSi1NLCBDaGV1bmcgU0xLLCBMZSBSb3kgUywgVmFuIE95ZW4gSCwgR3JpZmZpdGhzIEMsIE1pY2hlbCBKLVAgZXQgYWwgKDIwMDgpIERlYXRoIHRvbGwgZXhjZWVkZWQgNzAsMDAwIGluIEV1cm9wZSBkdXJpbmcgdGhlIHN1bW1lciBvZiAyMDAzLiBDIFIgQmlvbCAzMzEoMik6MTcx4oCTMTc4LiBBdmFpbGFibGUgZnJvbTogDQpodHRwOi8vbGlua2luZ2h1Yi5lbHNldmllci5jb20vcmV0cmlldmUvcGlpL1MxNjMxMDY5MTA3MDAzNzcwPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMV9DUjExIj4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5HdXR0ZXJtYW4gUyAoMjAxMCkgSGVhdCwgc21va2Ugc2VudCBSdXNzaWEgZGVhdGhzIHNvYXJpbmcgaW4gMjAxMDogZ292dC4gUmV1dGVycyBbSW50ZXJuZXRdLiBNb3Njb3c7IDIwMTAgT2N0IDI1OyBBdmFpbGFibGUgZnJvbTogDQpodHRwczovL3d3dy5yZXV0ZXJzLmNvbS9hcnRpY2xlL3VzLXJ1c3NpYS1oZWF0LWRlYXRocy1pZFVTVFJFNjlPNExCMjAxMDEwMjU8L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxX0NSMTIiPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPktsaW5lbmJlcmcgRSAoMjAxNSkgSGVhdCB3YXZlOiBhIHNvY2lhbCBhdXRvcHN5IG9mIGRpc2FzdGVyIGluIENoaWNhZ28uIFVuaXZlcnNpdHkgb2YgQ2hpY2FnbyBQcmVzcywgMzI4IHA8L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxX0NSMTMiPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPlN1bGxpdmFuIEtELCBBdWNpZWxsbyBFUCwgS3JlbWthdSwgTGluZGEgUywgQWRhbXMsIENocmlzdG9waGVyIFIsIEZlbGR0IEosIEZyYW5qZXZpYyBNLCBldCBhbCAoMTk5NSkgSnVseSAxOTk1IEhlYXQgV2F2ZSBOYXR1cmFsIERpc2FzdGVyIFN1cnZleSBSZXBvcnQ8L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxX0NSMTQiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5CdWxsIEFtIE1ldGVvcm9sIFNvYyBbSW50ZXJuZXRdPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPktFIEt1bmtlbDwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjc3PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxpc3N1ZT43PC9pc3N1ZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTUwNzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE5OTY8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExNzUvMTUyMC0wNDc3KDE5OTYpMDc3Jmx0OzE1MDc6VEpIV0lUJmd0OzIuMC5DTzsyPC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+S3Vua2VsIEtFLCBDaGFuZ25vbiBTQSwgUmVpbmtlIEJDLCBBcnJpdHQgUlcgKDE5OTYpIFRoZSBKdWx5IDE5OTUgaGVhdCB3YXZlIGluIHRoZSBNaWR3ZXN0OiBhIGNsaW1hdGljIHBlcnNwZWN0aXZlIGFuZCBjcml0aWNhbCB3ZWF0aGVyIGZhY3RvcnMuIEJ1bGwgQW0gTWV0ZW9yb2wgU29jIFtJbnRlcm5ldF0gNzcoNyk6MTUwN+KAkzE1MTguIEF2YWlsYWJsZSBmcm9tOiANCmh0dHA6Ly9qb3VybmFscy5hbWV0c29jLm9yZy9kb2kvYWJzLzEwLjExNzUvMTUyMC0wNDc3JTI4MTk5NiUyOTA3NyUzQzE1MDclM0FUSkhXSVQlM0UyLjAuQ08lM0IyPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMV9DUjE1Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+Q2xpbSBSZXM8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+RCBDaGFuZ25vbjwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjI0PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxpc3N1ZT4zPC9pc3N1ZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MjQzPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwMzwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMzM1NC9jcjAyNDI0MzwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPkNoYW5nbm9uIEQsIFNhbmRzdHJvbSBNLCBTY2hhZmZlciBDICgyMDAzKSBSZWxhdGluZyBjaGFuZ2VzIGluIGFncmljdWx0dXJhbCBwcmFjdGljZXMgdG8gaW5jcmVhc2luZyBkZXcgcG9pbnRzIGluIGV4dHJlbWUgQ2hpY2FnbyBoZWF0IHdhdmVzLiBDbGltIFJlcyAyNCgzKToyNDPigJMyNTQ8L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxX0NSMTYiPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkpNIE1lbGlsbG88L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTQ8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lX3RpdGxlPkNsaW1hdGUgY2hhbmdlIGltcGFjdHMgaW4gdGhlIFVuaXRlZCBTdGF0ZXM6IHRoZSB0aGlyZCBOYXRpb25hbCBDbGltYXRlIEFzc2Vzc21lbnQ8L3ZvbHVtZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5NZWxpbGxvIEpNLCBSaWNobW9uZCBUVCwgWW9oZSBHICgyMDE0KSBDbGltYXRlIGNoYW5nZSBpbXBhY3RzIGluIHRoZSBVbml0ZWQgU3RhdGVzOiB0aGUgdGhpcmQgTmF0aW9uYWwgQ2xpbWF0ZSBBc3Nlc3NtZW50LiBHb3Zlcm5tZW50IFByaW50aW5nIE9mZmljZSwgVGhpcmQgTmF0aW9uYWwgQ2xpbWF0ZSBBc3Nlc3NtZW50LiBVLlM8L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxX0NSMTciPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5TY2llbmNlICg4MC0gKTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5HQSBNZWVobDwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjMwNTwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8aXNzdWU+NTY4NjwvaXNzdWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjk5NDwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDQ8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExMjYvc2NpZW5jZS4xMDk4NzA0PC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+TWVlaGwgR0EsIFRlYmFsZGkgQyAoMjAwNCkgTW9yZSBpbnRlbnNlLCBtb3JlIGZyZXF1ZW50LCBhbmQgbG9uZ2VyIGxhc3RpbmcgaGVhdCB3YXZlcyBpbiB0aGUgMjFzdCBjZW50dXJ5LiBTY2llbmNlICg4MC0gKSAzMDUoNTY4Nik6OTk04oCTOTk3LiBBdmFpbGFibGUgZnJvbTogDQpodHRwOi8vd3d3LnNjaWVuY2VtYWcub3JnL2NnaS9kb2kvMTAuMTEyNi9zY2llbmNlLjEwOTg3MDQ8L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxX0NSMTgiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5JbnQgSiBFbnZpcm9uIFJlcyBQdWJsaWMgSGVhbHRoPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkQgTG93ZTwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjg8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGlzc3VlPjEyPC9pc3N1ZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NDYyMzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTE8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjMzOTAvaWplcnBoODEyNDYyMzwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPkxvd2UgRCwgRWJpIEtMLCBGb3JzYmVyZyBCICgyMDExKSBIZWF0d2F2ZSBlYXJseSB3YXJuaW5nIHN5c3RlbXMgYW5kIGFkYXB0YXRpb24gYWR2aWNlIHRvIHJlZHVjZSBodW1hbiBoZWFsdGggY29uc2VxdWVuY2VzIG9mIGhlYXR3YXZlcy4gSW50IEogRW52aXJvbiBSZXMgUHVibGljIEhlYWx0aCA4KDEyKTo0NjIz4oCTNDY0OC4gQXZhaWxhYmxlIGZyb206IA0KaHR0cDovL3d3dy5tZHBpLmNvbS8xNjYwLTQ2MDEvOC8xMi80NjIzLzwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjFfQ1IxOSI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkogR2VvcGh5cyBSZXM8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+UE0gRGVsbGEtTWFydGE8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xMTI8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGlzc3VlPkQxNTwvaXNzdWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPkQxNTEwMzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDc8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwMjkvMjAwN0pEMDA4NTEwPC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+RGVsbGEtTWFydGEgUE0sIEhheWxvY2sgTVIsIEx1dGVyYmFjaGVyIEosIFdhbm5lciBIICgyMDA3KSBEb3VibGVkIGxlbmd0aCBvZiB3ZXN0ZXJuIEV1cm9wZWFuIHN1bW1lciBoZWF0IHdhdmVzIHNpbmNlIDE4ODAuIEogR2VvcGh5cyBSZXMgMTEyKEQxNSk6RDE1MTAzLiBBdmFpbGFibGUgZnJvbTogDQpodHRwOi8vZG9pLndpbGV5LmNvbS8xMC4xMDI5LzIwMDdKRDAwODUxMDwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjFfQ1IyMCI+DQogICAgICAgICAgICAgICAgICAgIDxkb2kgcHJvdmlkZXI9ImNyb3NzcmVmIj4xMC4xMDI5LzIwMDNHTDAxODg1NzwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPkJlbmlzdG9uIE0gKDIwMDQpIFRoZSAyMDAzIGhlYXQgd2F2ZSBpbiBFdXJvcGU6IEEgc2hhcGUgb2YgdGhpbmdzIHRvIGNvbWU/IEFuIGFuYWx5c2lzIGJhc2VkIG9uIFN3aXNzIGNsaW1hdG9sb2dpY2FsIGRhdGEgYW5kIG1vZGVsIHNpbXVsYXRpb25zLiBHZW9waHlzIFJlcyBMZXR0IFtJbnRlcm5ldF0gMzEoMikuIEF2YWlsYWJsZSBmcm9tOiANCmh0dHA6Ly9kb2kud2lsZXkuY29tLzEwLjEwMjkvMjAwM0dMMDE4ODU3PC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMV9DUjIxIj4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+Q2xpbSBDaGFuZ2U8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+QyBUZWJhbGRpPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+Nzk8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGlzc3VlPjM8L2lzc3VlPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xODU8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDA2PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDA3L3MxMDU4NC0wMDYtOTA1MS00PC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+VGViYWxkaSBDLCBIYXlob2UgSywgQXJibGFzdGVyIEpNLCBNZWVobCBHQSAoMjAwNikgR29pbmcgdG8gdGhlIGV4dHJlbWVzLiBDbGltIENoYW5nZSA3OSgzKToxODXigJMyMTEuIEF2YWlsYWJsZSBmcm9tOiANCmh0dHBzOi8vZG9pLm9yZy8xMC4xMDA3L3MxMDU4NC0wMDYtOTA1MS00PC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMV9DUjIyIj4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+U2NpZW5jZSAoODAtICk8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+RCBCYXJyaW9wZWRybzwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjMzMjwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8aXNzdWU+NjAyNjwvaXNzdWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjIyMDwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTE8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExMjYvc2NpZW5jZS4xMjAxMjI0PC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+QmFycmlvcGVkcm8gRCwgRmlzY2hlciBFTSwgTHV0ZXJiYWNoZXIgSiwgVHJpZ28gUk0sIEdhcmNpYS1IZXJyZXJhIFIgKDIwMTEpIFRoZSBob3Qgc3VtbWVyIG9mIDIwMTA6IHJlZHJhd2luZyB0aGUgdGVtcGVyYXR1cmUgcmVjb3JkIG1hcCBvZiBFdXJvcGUuIFNjaWVuY2UgKDgwLSApIDMzMig2MDI2KToyMjDigJMyMjQuIEF2YWlsYWJsZSBmcm9tOiANCmh0dHA6Ly93d3cuc2NpZW5jZW1hZy5vcmcvY2dpL2RvaS8xMC4xMTI2L3NjaWVuY2UuMTIwMTIyNDwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjFfQ1IyMyI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPk5hdCBHZW9zY2k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+RU0gRmlzY2hlcjwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjM8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGlzc3VlPjY8L2lzc3VlPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4zOTg8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDEwPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDM4L25nZW84NjY8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5GaXNjaGVyIEVNLCBTY2jDpHIgQyAoMjAxMCkgQ29uc2lzdGVudCBnZW9ncmFwaGljYWwgcGF0dGVybnMgb2YgY2hhbmdlcyBpbiBoaWdoLWltcGFjdCBFdXJvcGVhbiBoZWF0d2F2ZXMuIE5hdCBHZW9zY2kgMyg2KTozOTjigJM0MDMuIEF2YWlsYWJsZSBmcm9tOiANCmh0dHA6Ly93d3cubmF0dXJlLmNvbS9kb2lmaW5kZXIvMTAuMTAzOC9uZ2VvODY2PC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMV9DUjI0Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjEwMjkvMjAxMkdMMDUyOTc5PC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+R2Vyc2h1bm92IEEsIEd1aXJndWlzIEsgKDIwMTIpIENhbGlmb3JuaWEgaGVhdCB3YXZlcyBpbiB0aGUgcHJlc2VudCBhbmQgZnV0dXJlLiBHZW9waHlzIFJlcyBMZXR0IFtJbnRlcm5ldF0gMzkoMTgpLiBBdmFpbGFibGUgZnJvbTogDQpodHRwOi8vZG9pLndpbGV5LmNvbS8xMC4xMDI5LzIwMTJHTDA1Mjk3OTwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjFfQ1IyNSI+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+SVBDQyAoMjAxNCkgQ2xpbWF0ZSBjaGFuZ2UgMjAxNDogaW1wYWN0cywgYWRhcHRhdGlvbiwgYW5kIHZ1bG5lcmFiaWxpdHkuIFBhcnQgQjogcmVnaW9uYWwgYXNwZWN0cy4gQ29udHJpYnV0aW9uIG9mIHdvcmtpbmcgZ3JvdXAgSUkgdG8gdGhlIEZpZnRoIEFzc2Vzc21lbnQgUmVwb3J0IG9mIHRoZSBJbnRlcmdvdmVybm1lbnRhbCBQYW5lbCBvbiBDbGltYXRlIENoYW5nZSBbQmFycm9zLCBWLlIuLCBDLkIuIEZpZWxkLCBELkouIERva2tlbiwgTS5ELiBNYXN0cmFuZHJlYSwgSy5KLiBNYWNoLCBULkUuIEJpbGlyLCBNLiBDaGF0dGVyamVlLCBLLkwuIEViaSwgWS5PLiBFc3RyYWRhLCBSLkMuIEdlbm92YSwgQi4gR2lybWEsIEUuUy4gS2lzc2VsLCBBLk4uIExldnksIFMuIE1hY0NyYWNrZW4sIFAuUi4gTWFzdHJhbmRyZWEsIGFuZCBMLkwuV2hpdGUgKGVkcy4pXS4gQ2FtYnJpZGdlIFVuaXZlcnNpdHkgUHJlc3MsIENhbWJyaWRnZSwgVW5pdGVkIEtpbmdkb20gYW5kIE5ldyBZb3JrLCBOWSwgVVNBLCBwcC4gNjg4PC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMV9DUjI2Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC43OTMwL0owTjI5VjQ1PC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+Vm9zZSwgUi5TLiwgRC5SLiBFYXN0ZXJsaW5nLCBLLkUuIEt1bmtlbCwgQS5OLiBMZUdyYW5kZSwgYW5kIE0uRi4gV2VobmVyICgyMDE3KSBUZW1wZXJhdHVyZSBjaGFuZ2VzIGluIHRoZSBVbml0ZWQgU3RhdGVzLiBJbjogQ2xpbWF0ZSBTY2llbmNlIFNwZWNpYWwgUmVwb3J0OiBGb3VydGggTmF0aW9uYWwgQ2xpbWF0ZSBBc3Nlc3NtZW50LCBWb2x1bWUgSSBbV3VlYmJsZXMsIEQuSi4sIEQuVy4gRmFoZXksIEsuQS4gSGliYmFyZCwgRC5KLiBEb2trZW4sIEIuQy4gU3Rld2FydCwgYW5kIFQuSy4gTWF5Y29jayAoZWRzLildLiBVLlMuIEdsb2JhbCBDaGFuZ2UgUmVzZWFyY2ggUHJvZ3JhbSwgV2FzaGluZ3RvbiwgREMsIFVTQSwgcHAuIDE4NeKAkzIwNiwgZG9pOiANCmh0dHBzOi8vZG9pLm9yZy8xMC43OTMwL0owTjI5VjQ1PC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMV9DUjI3Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjEwMzgvbmNsaW1hdGUzMzU3PC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+TWF1cml0c2VuIFQsIFBpbmN1cyBSICgyMDE3KSBDb21taXR0ZWQgd2FybWluZyBpbmZlcnJlZCBmcm9tIG9ic2VydmF0aW9ucy4gTmF0IENsaW0gQ2hhbmcgW0ludGVybmV0XSBBdmFpbGFibGUgZnJvbTogDQpodHRwOi8vd3d3Lm5hdHVyZS5jb20vZG9pZmluZGVyLzEwLjEwMzgvbmNsaW1hdGUzMzU3PC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMV9DUjI4Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjEwMzgvbmNsaW1hdGUzMzUyPC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+UmFmdGVyeSBBRSwgWmltbWVyIEEsIEZyaWVyc29uIERNVywgU3RhcnR6IFIsIExpdSBQICgyMDE3KSBMZXNzIHRoYW4gMiDCsEMgd2FybWluZyBieSAyMTAwIHVubGlrZWx5LiBOYXQgQ2xpbSBDaGFuZyBbSW50ZXJuZXRdIEF2YWlsYWJsZSBmcm9tOiANCmh0dHA6Ly93d3cubmF0dXJlLmNvbS9kb2lmaW5kZXIvMTAuMTAzOC9uY2xpbWF0ZTMzNTI8L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxX0NSMjkiPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjc5MzAvSjBSNDlOUVg8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5VU0dDUlAgKDIwMTYpIFRoZSBpbXBhY3RzIG9mIGNsaW1hdGUgY2hhbmdlIG9uIGh1bWFuIGhlYWx0aCBpbiB0aGUgVW5pdGVkIFN0YXRlczogYSBzY2llbnRpZmljIGFzc2Vzc21lbnQuIENyaW1taW5zLCBBLiwgSi4gQmFsYnVzLCBKLkwuIEdhbWJsZSwgQy5CLiBCZWFyZCwgSi5FLiBCZWxsLCBELiBEb2RnZW4sIFIuSi4gRWlzZW4sIE4uIEZhbm4sIE0uRC4gSGF3a2lucywgUy5DLiBIZXJyaW5nLCBMLiBKYW50YXJhc2FtaSwgRC5NLiBNaWxscywgUy4gU2FoYSwgTS5DLiBTYXJvZmltLCBKLiBUcnRhbmosIGFuZCBMLiBaaXNrYSwgRWRzLiBVLlMuIEdsb2JhbCBDaGFuZ2UgUmVzZWFyY2ggUHJvZ3JhbSwgV2FzaGluZ3RvbiwgREMsIDMxMiBwcC4gDQpodHRwczovL2RvaS5vcmcvMTAuNzkzMC9KMFI0OU5RWDwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjFfQ1IzMCI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPlByb2MgTmF0bCBBY2FkIFNjaTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5TQyBTaGVyd29vZDwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjEwNzwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8aXNzdWU+MjE8L2lzc3VlPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT45NTUyPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAxMDwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTA3My9wbmFzLjA5MTMzNTIxMDc8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5TaGVyd29vZCBTQywgSHViZXIgTSAoMjAxMCkgQW4gYWRhcHRhYmlsaXR5IGxpbWl0IHRvIGNsaW1hdGUgY2hhbmdlIGR1ZSB0byBoZWF0IHN0cmVzcy4gUHJvYyBOYXRsIEFjYWQgU2NpIDEwNygyMSk6OTU1MuKAkzk1NTUuIEF2YWlsYWJsZSBmcm9tOiANCmh0dHA6Ly93d3cucG5hcy5vcmcvY2dpL2RvaS8xMC4xMDczL3BuYXMuMDkxMzM1MjEwNzwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjFfQ1IzMSI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkxhbmNldDwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5LUiBTbWl0aDwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjM4ODwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8aXNzdWU+MTAwNDU8L2lzc3VlPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT42NDI8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDE2PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2L1MwMTQwLTY3MzYoMTYpMzEzMzUtNjwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPlNtaXRoIEtSLCBXb29kd2FyZCBBLCBMZW1rZSBCLCBPdHRvIE0sIENoYW5nIENKLCBNYW5jZSBBQSBldCBhbCAoMjAxNikgVGhlIGxhc3Qgc3VtbWVyIE9seW1waWNzPyBDbGltYXRlIGNoYW5nZSwgaGVhbHRoLCBhbmQgd29yayBvdXRkb29ycy4gTGFuY2V0IDM4OCgxMDA0NSk6NjQy4oCTNjQ0PC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMV9DUjMyIj4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5QYWwgSlMsIEVsdGFoaXIgRUFCICgyMDE1KSBGdXR1cmUgdGVtcGVyYXR1cmUgaW4gc291dGh3ZXN0IEFzaWEgcHJvamVjdGVkIHRvIGV4Y2VlZCBhIHRocmVzaG9sZCBmb3IgaHVtYW4gYWRhcHRhYmlsaXR5LiBOYXQgQ2xpbSBDaGFuZyBbSW50ZXJuZXRdIEF2YWlsYWJsZSBmcm9tOiANCmh0dHA6Ly93d3cubmF0dXJlLmNvbS9kb2lmaW5kZXIvMTAuMTAzOC9uY2xpbWF0ZTI4MzM8L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxX0NSMzMiPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPk5hdGlvbmFsIEFjYWRlbWllcyBvZiBTY2llbmNlcywgRW5naW5lZXJpbmcsIGFuZCBNZWRpY2luZTwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAxNjwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWVfdGl0bGU+TmV4dCBnZW5lcmF0aW9uIGVhcnRoIHN5c3RlbSBwcmVkaWN0aW9uOiBzdHJhdGVnaWVzIGZvciBzdWJzZWFzb25hbCB0byBzZWFzb25hbCBmb3JlY2FzdHM8L3ZvbHVtZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xNzIyNi8yMTg3MzwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPk5hdGlvbmFsIEFjYWRlbWllcyBvZiBTY2llbmNlcywgRW5naW5lZXJpbmcsIGFuZCBNZWRpY2luZSAoMjAxNikgTmV4dCBnZW5lcmF0aW9uIGVhcnRoIHN5c3RlbSBwcmVkaWN0aW9uOiBzdHJhdGVnaWVzIGZvciBzdWJzZWFzb25hbCB0byBzZWFzb25hbCBmb3JlY2FzdHMuIFRoZSBOYXRpb25hbCBBY2FkZW1pZXMgUHJlc3MsIFdhc2hpbmd0b24sIERDLiANCmh0dHBzOi8vZG9pLm9yZy8xMC4xNzIyNi8yMTg3MzwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjFfQ1IzNCI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkogQXBwbCBSZW1vdGUgU2Vuczwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5HIERhdmlzPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MTwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8aXNzdWU+MTwvaXNzdWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjEyNTA0PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwNzwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTExNy8xLjI2NDIzNDc8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5EYXZpcyBHICgyMDA3KSBIaXN0b3J5IG9mIHRoZSBOT0FBIHNhdGVsbGl0ZSBwcm9ncmFtLiBKIEFwcGwgUmVtb3RlIFNlbnMgMSgxKToxMjUwNC4gQXZhaWxhYmxlIGZyb206IA0KaHR0cDovL3JlbW90ZXNlbnNpbmcuc3BpZWRpZ2l0YWxsaWJyYXJ5Lm9yZy9hcnRpY2xlLmFzcHg/ZG9pPTEwLjExMTcvMS4yNjQyMzQ3PC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMV9DUjM1Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+SiBPcGVyIE9jZWFub2dyPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkRNIExlZ2xlcjwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjg8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGlzc3VlPkF1Z3VzdCAyMDE3PC9pc3N1ZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+czE4OTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTU8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwODAvMTc1NTg3NlguMjAxNS4xMDQ5ODgzPC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+TGVnbGVyIERNLCBGcmVlbGFuZCBISiwgTHVtcGtpbiBSLCBCYWxsIEcsIE1jUGhhZGVuIE1KLCBOb3J0aCBTIGV0IGFsICgyMDE1KSBUaGUgY3VycmVudCBzdGF0dXMgb2YgdGhlIHJlYWwtdGltZSBpbiBzaXR1IGdsb2JhbCBvY2VhbiBvYnNlcnZpbmcgc3lzdGVtIGZvciBvcGVyYXRpb25hbCBvY2Vhbm9ncmFwaHkuIEogT3BlciBPY2Vhbm9nciA4KEF1Z3VzdCAyMDE3KTpzMTg54oCTczIwMDwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjFfQ1IzNiI+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+RmxlbWluZyBKUiAoMjAxNikgSW52ZW50aW5nIGF0bW9zcGhlcmljIHNjaWVuY2U6IEJqZXJrbmVzLCBSb3NzYnksIFdleGxlciwgYW5kIHRoZSBGb3VuZGF0aW9ucyBvZiBNb2Rlcm4gTWV0ZW9yb2xvZ3kgW0ludGVybmV0XS4gTUlUIFByZXNzLiAoSW52ZW50aW5nIEF0bW9zcGhlcmljIFNjaWVuY2UpLiBBdmFpbGFibGUgZnJvbTogDQpodHRwczovL2Jvb2tzLmdvb2dsZS5jb20vYm9va3M/aWQ9UzBHTkN3QUFRQkFKPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMV9DUjM3Ij4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5FZHdhcmRzIFBOICgyMDEwKSBBIHZhc3QgbWFjaGluZTogY29tcHV0ZXIgbW9kZWxzLCBjbGltYXRlIGRhdGEsIGFuZCB0aGUgcG9saXRpY3Mgb2YgZ2xvYmFsIHdhcm1pbmcgW0ludGVybmV0XS4gTUlUIFByZXNzLiAoSW5mcmFzdHJ1Y3R1cmVzKS4gQXZhaWxhYmxlIGZyb206IA0KaHR0cHM6Ly9ib29rcy5nb29nbGUuY29tL2Jvb2tzP2lkPUs5X0xzSkJDcVdNQzwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjFfQ1IzOCI+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+TWlsbGVyIFBBLCBCYXJ0aCBNRiwgQmVuamFtaW4gTEEsIEFydHogUlMsIFBlbmRlcmdyYXNzIFdSICgyMDA1KSBUaGUgTWV0ZW9yb2xvZ2ljYWwgQXNzaW1pbGF0aW9uIGFuZCBEYXRhIEluZ2VzdCBTeXN0ZW0gKE1BRElTKTogUHJvdmlkaW5nIHZhbHVlLWFkZGVkIG9ic2VydmF0aW9ucyB0byB0aGUgbWV0ZW9yb2xvZ2ljYWwgY29tbXVuaXR5LiBJbjogMjFzdCBDb25mZXJlbmNlIG9uIFdlYXRoZXIgQW5hbHlzaXMgYW5kIEZvcmVjYXN0aW5nPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMV9DUjM5Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+QnVsbCBBbSBNZXRlb3JvbCBTb2M8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+SFcgUmVnZXM8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT45Nzwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8aXNzdWU+MTA8L2lzc3VlPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xODMxPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAxNjwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTE3NS9CQU1TLUQtMTQtMDAyMTMuMTwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPlJlZ2VzIEhXLCBEb2Vza2VuIE4sIFR1cm5lciBKLCBOZXdtYW4gTiwgQmVyZ2FudGlubyBBLCBTY2h3YWxiZSBaICgyMDE2KSBDb0NvUmFIUzogdGhlIGV2b2x1dGlvbiBhbmQgYWNjb21wbGlzaG1lbnRzIG9mIGEgdm9sdW50ZWVyIHJhaW4gZ2F1Z2UgbmV0d29yay4gQnVsbCBBbSBNZXRlb3JvbCBTb2MgOTcoMTApOjE4MzHigJMxODQ2LiBBdmFpbGFibGUgZnJvbTogDQpodHRwczovL2RvaS5vcmcvMTAuMTE3NS9iYW1zLWQtMTQtMDAyMTMuMTwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjFfQ1I0MCI+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+UG93bmVyIERBICgyMDE1KSBMYXVuY2ggRGVsYXllZDsgTk9BQSBGYWNlcyBLZXkgRGVjaXNpb25zIG9uIFRpbWluZyBvZiBGdXR1cmUgU2F0ZWxsaXRlcyBbSW50ZXJuZXRdLiBBdmFpbGFibGUgZnJvbTogDQpodHRwOi8vd3d3Lmdhby5nb3YvYXNzZXRzLzY4MC82NzQwOTAucGRmPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMV9DUjQxIj4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+QnVsbCBBbSBNZXRlb3JvbCBTb2M8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+SyBZb25leWFtYTwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjk0PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxpc3N1ZT4xMjwvaXNzdWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjE4NzE8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDEzPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMTc1L0JBTVMtRC0xMi0wMDE1Ny4xPC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+WW9uZXlhbWEgSywgWmhhbmcgQywgTG9uZyBDTiAoMjAxMykgVHJhY2tpbmcgcHVsc2VzIG9mIHRoZSBtYWRkZW7igJNKdWxpYW4gb3NjaWxsYXRpb24uIEJ1bGwgQW0gTWV0ZW9yb2wgU29jIDk0KDEyKToxODcx4oCTMTg5MS4gQXZhaWxhYmxlIGZyb206IA0KaHR0cDovL2pvdXJuYWxzLmFtZXRzb2Mub3JnL2RvaS9hYnMvMTAuMTE3NS9CQU1TLUQtMTItMDAxNTcuMTwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjFfQ1I0MiI+DQogICAgICAgICAgICAgICAgICAgIDxkb2kgcHJvdmlkZXI9ImNyb3NzcmVmIj4xMC4xMDM4L25jbGltYXRlMTUzNjwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPlF1ZXNhZGEgQiwgVmF1dGFyZCBSLCBZaW91IFAsIEhpcnNjaGkgTSwgU2VuZXZpcmF0bmUgU0kgKDIwMTIpIEFzeW1tZXRyaWMgRXVyb3BlYW4gc3VtbWVyIGhlYXQgcHJlZGljdGFiaWxpdHkgZnJvbSB3ZXQgYW5kIGRyeSBzb3V0aGVybiB3aW50ZXJzIGFuZCBzcHJpbmdzLiBOYXQgQ2xpbSBDaGFuZyBbSW50ZXJuZXRdLiBOYXR1cmUgUHVibGlzaGluZyBHcm91cDsgOzIoMTApOjczNuKAkzc0MS4gQXZhaWxhYmxlIGZyb206IA0KaHR0cDovL3d3dy5uYXR1cmUuY29tL2RvaWZpbmRlci8xMC4xMDM4L25jbGltYXRlMTUzNjwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjFfQ1I0MyI+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+TmF0aW9uYWwgQWNhZGVtaWVzIG9mIFNjaWVuY2VzLCBFbmdpbmVlcmluZyBhbmQgTSAoMjAxNikgTmV4dCBnZW5lcmF0aW9uIGVhcnRoIHN5c3RlbSBwcmVkaWN0aW9uOiBzdHJhdGVnaWVzIGZvciBzdWJzZWFzb25hbCB0byBzZWFzb25hbCBmb3JlY2FzdHMgW0ludGVybmV0XS4gV2FzaGluZ3RvbiwgREM6IFRoZSBOYXRpb25hbCBBY2FkZW1pZXMgUHJlc3MuIEF2YWlsYWJsZSBmcm9tOiANCmh0dHBzOi8vd3d3Lm5hcC5lZHUvY2F0YWxvZy8yMTg3My9uZXh0LWdlbmVyYXRpb24tZWFydGgtc3lzdGVtLXByZWRpY3Rpb24tc3RyYXRlZ2llcy1mb3Itc3Vic2Vhc29uYWwtdG8tc2Vhc29uYWw8L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxX0NSNDQiPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPlRva3lvIG1vbml0b3JzIGhlYXRzdHJva2UgcmlzayBmb3IgMjAyMCBPbHltcGljcyBbSW50ZXJuZXRdLiBCQkMgTmV3cy4gMjAxNiBbY2l0ZWQgMjAxNyBBdWcgMjJdLiBBdmFpbGFibGUgZnJvbTogDQpodHRwOi8vd3d3LmJiYy5jb20vbmV3cy9ibG9ncy1uZXdzLWZyb20tZWxzZXdoZXJlLTM3MTA1ODczPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgIDwvY2l0YXRpb25fbGlzdD4NCiAgICAgICAgICAgICAgPC9jb250ZW50X2l0ZW0+DQogICAgICAgICAgICA8L2Jvb2s+DQogICAgICAgICAgPC9jcm9zc3JlZj4NCiAgICAgICAgPC9kb2lfcmVjb3JkPg0KICAgICAgPC9xdWVyeT4NCiAgICA8L2JvZHk+DQogIDwvcXVlcnlfcmVzdWx0Pg0KPC9jcm9zc3JlZl9yZXN1bHQ+
|
87
|
+
http_version:
|
88
|
+
recorded_at: Thu, 04 Jul 2019 05:37:42 GMT
|
89
|
+
recorded_with: VCR 3.0.3
|
@@ -195,6 +195,21 @@ describe Bolognese::Metadata, vcr: true do
|
|
195
195
|
expect(subject.agency).to eq("Crossref")
|
196
196
|
end
|
197
197
|
|
198
|
+
it "another book chapter" do
|
199
|
+
input = "https://doi.org/10.1007/978-3-319-75889-3_1"
|
200
|
+
subject = Bolognese::Metadata.new(input: input)
|
201
|
+
expect(subject.valid?).to be true
|
202
|
+
expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.1007/978-3-319-75889-3_1", "identifierType"=>"DOI"}])
|
203
|
+
expect(subject.url).to eq("http://link.springer.com/10.1007/978-3-319-75889-3_1")
|
204
|
+
expect(subject.types).to eq("bibtex"=>"inbook", "citeproc"=>"chapter", "resourceType"=>"BookChapter", "resourceTypeGeneral"=>"Text", "ris"=>"CHAP", "schemaOrg"=>"Chapter")
|
205
|
+
expect(subject.creators).to eq("familyName"=>"Jones", "givenName"=>"Hunter M.", "name"=>"Jones, Hunter M.", "nameType"=>"Personal")
|
206
|
+
expect(subject.titles).to eq([{"title"=>"Climate Change and Increasing Risk of Extreme Heat"}])
|
207
|
+
expect(subject.dates).to eq([{"date"=>"2018", "dateType"=>"Issued"}, {"date"=>"2018-09-05T05:36:16Z", "dateType"=>"Updated"}])
|
208
|
+
expect(subject.publication_year).to eq("2018")
|
209
|
+
expect(subject.publisher).to eq("Springer International Publishing")
|
210
|
+
expect(subject.agency).to eq("Crossref")
|
211
|
+
end
|
212
|
+
|
198
213
|
it "journal article with" do
|
199
214
|
input = "https://doi.org/10.1111/nph.14619"
|
200
215
|
subject = Bolognese::Metadata.new(input: input)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bolognese
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martin Fenner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-07-
|
11
|
+
date: 2019-07-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: maremma
|
@@ -819,6 +819,7 @@ files:
|
|
819
819
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/DOI_with_ORCID_ID.yml
|
820
820
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/DOI_with_SICI_DOI.yml
|
821
821
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/DOI_with_data_citation.yml
|
822
|
+
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/another_book_chapter.yml
|
822
823
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/book_chapter.yml
|
823
824
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/dataset.yml
|
824
825
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/date_in_future.yml
|