bolognese 1.5 → 1.5.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/datacite_reader.rb +1 -1
- data/lib/bolognese/version.rb +1 -1
- data/spec/fixtures/datacite-formats-with-xs.xml +22 -0
- data/spec/fixtures/datacite-space-in-sizes.xml +52 -0
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/organization_author.yml +48 -0
- data/spec/readers/datacite_reader_spec.rb +17 -0
- data/spec/writers/citeproc_writer_spec.rb +17 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 977d6a120d66d33a10188cfe1b5a36d898fed7ce44c8a4768cf87cba40ffe8a8
|
4
|
+
data.tar.gz: 70c0750b9a4f20bde9a97debf3645c6cddc3b0e46a33c330fa408e9014af8050
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 97cd5c4e5c0bcee84083c74c6f17c7e7993a0bdf8e059527fce8d3e0cea13cb65d6bbe63df0c06621893268a8f6996952ecb82ed8243b7e31a91c7d35a9cc7e3
|
7
|
+
data.tar.gz: f33e063f45ea1bc1231bc8baba76cdfda740d604bc3895b5b178d18cea68c3f486c2be6abb46494c317df564116d7d5ae406c5e6c7fc2a652f0cb7556c9fe1fd
|
data/Gemfile.lock
CHANGED
@@ -176,7 +176,7 @@ module Bolognese
|
|
176
176
|
end
|
177
177
|
related_identifiers = Array.wrap(meta.dig("relatedIdentifiers", "relatedIdentifier")).map do |ri|
|
178
178
|
if ri["relatedIdentifierType"] == "DOI"
|
179
|
-
rid = ri["__content__"].to_s.downcase
|
179
|
+
rid = validate_doi(ri["__content__"].to_s.downcase)
|
180
180
|
else
|
181
181
|
rid = ri["__content__"]
|
182
182
|
end
|
data/lib/bolognese/version.rb
CHANGED
@@ -0,0 +1,22 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
2
|
+
<resource xsi:schemaLocation="http://datacite.org/schema/kernel-2.2 http://schema.datacite.org/meta/kernel-2.2/metadata.xsd" xmlns="http://datacite.org/schema/kernel-2.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
3
|
+
<identifier identifierType="DOI">10.5882/10.5882_hypertonie2011_IS17</identifier>
|
4
|
+
<creators>
|
5
|
+
<creator>
|
6
|
+
<creatorName>Scholze J.</creatorName>
|
7
|
+
</creator>
|
8
|
+
</creators>
|
9
|
+
<titles>
|
10
|
+
<title>Gefäßaktive Therapie der Isoliert Systolischen Hypertonie Ursachen behandeln - Gefäßschädigung und deren Folgen vermeiden</title>
|
11
|
+
</titles>
|
12
|
+
<publisher>Deutsche Hochdruckliga e.V. DHL®</publisher>
|
13
|
+
<publicationYear>2011</publicationYear>
|
14
|
+
<subjects>
|
15
|
+
<subject>Vaskuläre Mechanismen, Atherothrombose</subject>
|
16
|
+
</subjects>
|
17
|
+
<resourceType resourceTypeGeneral="Text">Abstract</resourceType>
|
18
|
+
<formats>
|
19
|
+
<format xsi:type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema">PDF</format>
|
20
|
+
</formats>
|
21
|
+
<version>1.0</version>
|
22
|
+
</resource>
|
@@ -0,0 +1,52 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<resource xmlns="http://datacite.org/schema/kernel-3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://datacite.org/schema/kernel-3 http://schema.datacite.org/meta/kernel-3/metadata.xsd">
|
3
|
+
<identifier identifierType="DOI">10.1594/GFZ.SDDB.1102</identifier>
|
4
|
+
<creators>
|
5
|
+
<creator>
|
6
|
+
<creatorName>Dannowski, Grit</creatorName>
|
7
|
+
</creator>
|
8
|
+
<creator>
|
9
|
+
<creatorName>Schrötter, Jörg</creatorName>
|
10
|
+
</creator>
|
11
|
+
<creator>
|
12
|
+
<creatorName>Erbas, Kemal</creatorName>
|
13
|
+
</creator>
|
14
|
+
<creator>
|
15
|
+
<creatorName>Förster, Andrea</creatorName>
|
16
|
+
</creator>
|
17
|
+
<creator>
|
18
|
+
<creatorName>Huenges, Ernst</creatorName>
|
19
|
+
</creator>
|
20
|
+
</creators>
|
21
|
+
<titles>
|
22
|
+
<title>Borehole Temperature of HSDP-2-A on 07/05/1999</title>
|
23
|
+
</titles>
|
24
|
+
<publisher>Deutsches GeoForschungsZentrum GFZ</publisher>
|
25
|
+
<publicationYear>2007</publicationYear>
|
26
|
+
<subjects>
|
27
|
+
<subject subjectScheme="project">Hawaii Scientific Drilling Project</subject>
|
28
|
+
<subject subjectScheme="platform">Land based</subject>
|
29
|
+
<subject subjectScheme="keyword">Distributed Optical Fibre Temperature Sensing</subject>
|
30
|
+
<subject subjectScheme="keyword">temperature_07/05/99_02:44am</subject>
|
31
|
+
<subject subjectScheme="keyword">temperature_07/05/99_07:22am</subject>
|
32
|
+
</subjects>
|
33
|
+
<dates>
|
34
|
+
<date dateType="Issued">2007-10-09</date>
|
35
|
+
</dates>
|
36
|
+
<language>eng</language>
|
37
|
+
<resourceType resourceTypeGeneral="Dataset">Dataset</resourceType>
|
38
|
+
<relatedIdentifiers>
|
39
|
+
<relatedIdentifier relatedIdentifierType="DOI" relationType="IsCitedBy">http://dx.doi.org/10.1016/S0040-1951(03)00197-5</relatedIdentifier>
|
40
|
+
</relatedIdentifiers>
|
41
|
+
<sizes>
|
42
|
+
<size> </size>
|
43
|
+
</sizes>
|
44
|
+
<descriptions>
|
45
|
+
<description descriptionType="Abstract">The temperature pattern is attributed to a superposition of thermal and hydraulic processes. In the deeper borehole (HSDP-2, depth 3.1 km) detailed temperature monitoring was performed. Temperature measurements reveal two different thermal regimes. The upper part is characterised by cold temperatures and a negative temperature gradient similar to those observed in the shallow pilot borehole. Below 1100 m, increasing temperatures are observed. Different processes, such as topographically driven groundwater flow, ingress of salt water and conductive previous termheatnext term flow are investigated by numerical modeling. A pure conductive scenario fails to match the temperature measurements, implying that both borehole sections are overprinted by advective conditions. Coupled fluid and previous termheatnext term flow modeling with solute transport yield results that agree with observed temperatures. These data were taken at 07/05/1999 from 02.30 a.m. to 07.30 a.m.</description>
|
46
|
+
</descriptions>
|
47
|
+
<geoLocations>
|
48
|
+
<geoLocation>
|
49
|
+
<geoLocationPoint>19.74 -155.05</geoLocationPoint>
|
50
|
+
</geoLocation>
|
51
|
+
</geoLocations>
|
52
|
+
</resource>
|
@@ -0,0 +1,48 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://api.crossref.org/works/10.1186/s13742-015-0103-4/transform/application/vnd.crossref.unixsd+xml
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- Mozilla/5.0 (compatible; Maremma/4.6; mailto:info@datacite.org)
|
12
|
+
Accept:
|
13
|
+
- text/xml
|
14
|
+
response:
|
15
|
+
status:
|
16
|
+
code: 200
|
17
|
+
message: OK
|
18
|
+
headers:
|
19
|
+
Link:
|
20
|
+
- <http://dx.doi.org/10.1186/s13742-015-0103-4>; rel="canonical", <http://link.springer.com/content/pdf/10.1186/s13742-015-0103-4.pdf>;
|
21
|
+
version="vor"; type="application/pdf"; rel="item", <http://link.springer.com/article/10.1186/s13742-015-0103-4/fulltext.html>;
|
22
|
+
version="vor"; type="text/html"; rel="item", <http://academic.oup.com/gigascience/article-pdf/4/1/1/10893879/13742_2015_Article_103.pdf>;
|
23
|
+
version="vor"; rel="item", <http://link.springer.com/content/pdf/10.1186/s13742-015-0103-4.pdf>;
|
24
|
+
version="vor"; type="application/pdf"; rel="item", <http://www.springer.com/tdm>;
|
25
|
+
rel="license"
|
26
|
+
Access-Control-Allow-Origin:
|
27
|
+
- "*"
|
28
|
+
Access-Control-Allow-Headers:
|
29
|
+
- X-Requested-With
|
30
|
+
Content-Length:
|
31
|
+
- '23251'
|
32
|
+
Server:
|
33
|
+
- http-kit
|
34
|
+
Date:
|
35
|
+
- Sat, 22 Feb 2020 08:29:06 GMT
|
36
|
+
X-Rate-Limit-Limit:
|
37
|
+
- '50'
|
38
|
+
X-Rate-Limit-Interval:
|
39
|
+
- 1s
|
40
|
+
Connection:
|
41
|
+
- close
|
42
|
+
body:
|
43
|
+
encoding: ASCII-8BIT
|
44
|
+
string: !binary |-
|
45
|
+
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGNyb3NzcmVmX3Jlc3VsdCB4bWxucz0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvcXJzY2hlbWEvMy4wIiB2ZXJzaW9uPSIzLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvcXJzY2hlbWEvMy4wIGh0dHA6Ly93d3cuY3Jvc3NyZWYub3JnL3NjaGVtYXMvY3Jvc3NyZWZfcXVlcnlfb3V0cHV0My4wLnhzZCI+DQogIDxxdWVyeV9yZXN1bHQ+DQogICAgPGhlYWQ+DQogICAgICA8ZG9pX2JhdGNoX2lkPm5vbmU8L2RvaV9iYXRjaF9pZD4NCiAgICA8L2hlYWQ+DQogICAgPGJvZHk+DQogICAgICA8cXVlcnkgc3RhdHVzPSJyZXNvbHZlZCI+DQogICAgICAgIDxkb2kgdHlwZT0iam91cm5hbF9hcnRpY2xlIj4xMC4xMTg2L3MxMzc0Mi0wMTUtMDEwMy00PC9kb2k+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJwdWJsaXNoZXItbmFtZSIgdHlwZT0ic3RyaW5nIj5PeGZvcmQgVW5pdmVyc2l0eSBQcmVzcyAoT1VQKTwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJwcmVmaXgtbmFtZSIgdHlwZT0ic3RyaW5nIj5PeGZvcmQgVW5pdmVyc2l0eSBQcmVzczwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJtZW1iZXItaWQiIHR5cGU9Im51bWJlciI+Mjg2PC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9ImNpdGF0aW9uLWlkIiB0eXBlPSJudW1iZXIiPjc5NjIzODc3PC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9ImpvdXJuYWwtaWQiIHR5cGU9Im51bWJlciI+MTc5NzY1PC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9ImRlcG9zaXQtdGltZXN0YW1wIiB0eXBlPSJudW1iZXIiPjIwMTYxMDAzMDUyNDE1NzY4PC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9Im93bmVyLXByZWZpeCIgdHlwZT0ic3RyaW5nIj4xMC4xMDkzPC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9Imxhc3QtdXBkYXRlIiB0eXBlPSJkYXRlIj4yMDE3LTA4LTI1VDAyOjU5OjUxWjwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJjcmVhdGVkIiB0eXBlPSJkYXRlIj4yMDE1LTEyLTI0VDA5OjI2OjQwWjwvY3JtLWl0ZW0+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJjaXRlZGJ5LWNvdW50IiB0eXBlPSJudW1iZXIiPjEwPC9jcm0taXRlbT4NCiAgICAgICAgPGRvaV9yZWNvcmQ+DQogICAgICAgICAgPGNyb3NzcmVmIHhtbG5zPSJodHRwOi8vd3d3LmNyb3NzcmVmLm9yZy94c2NoZW1hLzEuMSIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LmNyb3NzcmVmLm9yZy94c2NoZW1hLzEuMSBodHRwOi8vZG9pLmNyb3NzcmVmLm9yZy9zY2hlbWFzL3VuaXhyZWYxLjEueHNkIj4NCiAgICAgICAgICAgIDxqb3VybmFsPg0KICAgICAgICAgICAgICA8am91cm5hbF9tZXRhZGF0YSBsYW5ndWFnZT0iZW4iPg0KICAgICAgICAgICAgICAgIDxmdWxsX3RpdGxlPkdpZ2FTY2llbmNlPC9mdWxsX3RpdGxlPg0KICAgICAgICAgICAgICAgIDxhYmJyZXZfdGl0bGU+R2lnYVNjaTwvYWJicmV2X3RpdGxlPg0KICAgICAgICAgICAgICAgIDxpc3NuIG1lZGlhX3R5cGU9ImVsZWN0cm9uaWMiPjIwNDctMjE3WDwvaXNzbj4NCiAgICAgICAgICAgICAgPC9qb3VybmFsX21ldGFkYXRhPg0KICAgICAgICAgICAgICA8am91cm5hbF9pc3N1ZT4NCiAgICAgICAgICAgICAgICA8cHVibGljYXRpb25fZGF0ZSBtZWRpYV90eXBlPSJwcmludCI+DQogICAgICAgICAgICAgICAgICA8bW9udGg+MTI8L21vbnRoPg0KICAgICAgICAgICAgICAgICAgPHllYXI+MjAxNTwveWVhcj4NCiAgICAgICAgICAgICAgICA8L3B1YmxpY2F0aW9uX2RhdGU+DQogICAgICAgICAgICAgICAgPGpvdXJuYWxfdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgPHZvbHVtZT40PC92b2x1bWU+DQogICAgICAgICAgICAgICAgPC9qb3VybmFsX3ZvbHVtZT4NCiAgICAgICAgICAgICAgICA8aXNzdWU+MTwvaXNzdWU+DQogICAgICAgICAgICAgIDwvam91cm5hbF9pc3N1ZT4NCiAgICAgICAgICAgICAgPGpvdXJuYWxfYXJ0aWNsZSBwdWJsaWNhdGlvbl90eXBlPSJmdWxsX3RleHQiPg0KICAgICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgICA8dGl0bGU+RGlzY292ZXJ5LCBnZW5vdHlwaW5nIGFuZCBjaGFyYWN0ZXJpemF0aW9uIG9mIHN0cnVjdHVyYWwgdmFyaWF0aW9uIGFuZCBub3ZlbCBzZXF1ZW5jZSBhdCBzaW5nbGUgbnVjbGVvdGlkZSByZXNvbHV0aW9uIGZyb20gZGUgbm92byBnZW5vbWUgYXNzZW1ibGllcyBvbiBhIHBvcHVsYXRpb24gc2NhbGU8L3RpdGxlPg0KICAgICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICAgIDxjb250cmlidXRvcnM+DQogICAgICAgICAgICAgICAgICA8b3JnYW5pemF0aW9uIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciIgc2VxdWVuY2U9ImZpcnN0Ij5UaGUgR2Vub21lIERlbm1hcmsgQ29uc29ydGl1bTwvb3JnYW5pemF0aW9uPg0KICAgICAgICAgICAgICAgICAgPHBlcnNvbl9uYW1lIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciIgc2VxdWVuY2U9ImZpcnN0Ij4NCiAgICAgICAgICAgICAgICAgICAgPGdpdmVuX25hbWU+U2l5YW5nPC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgICA8c3VybmFtZT5MaXU8L3N1cm5hbWU+DQogICAgICAgICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgPHBlcnNvbl9uYW1lIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciIgc2VxdWVuY2U9ImFkZGl0aW9uYWwiPg0KICAgICAgICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5TaHVqaWE8L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgICAgICAgIDxzdXJuYW1lPkh1YW5nPC9zdXJuYW1lPg0KICAgICAgICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiIHNlcXVlbmNlPSJhZGRpdGlvbmFsIj4NCiAgICAgICAgICAgICAgICAgICAgPGdpdmVuX25hbWU+SnVuaHVhPC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgICA8c3VybmFtZT5SYW88L3N1cm5hbWU+DQogICAgICAgICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgPHBlcnNvbl9uYW1lIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciIgc2VxdWVuY2U9ImFkZGl0aW9uYWwiPg0KICAgICAgICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5XZWlqaWFuPC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgICA8c3VybmFtZT5ZZTwvc3VybmFtZT4NCiAgICAgICAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICAgICAgICA8cGVyc29uX25hbWUgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIiBzZXF1ZW5jZT0iYWRkaXRpb25hbCI+DQogICAgICAgICAgICAgICAgICAgIDxnaXZlbl9uYW1lPkFuZGVyczwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPHN1cm5hbWU+S3JvZ2g8L3N1cm5hbWU+DQogICAgICAgICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgPHBlcnNvbl9uYW1lIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciIgc2VxdWVuY2U9ImFkZGl0aW9uYWwiPg0KICAgICAgICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5KdW48L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgICAgICAgIDxzdXJuYW1lPldhbmc8L3N1cm5hbWU+DQogICAgICAgICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgICAgIDwvY29udHJpYnV0b3JzPg0KICAgICAgICAgICAgICAgIDxwdWJsaWNhdGlvbl9kYXRlIG1lZGlhX3R5cGU9Im9ubGluZSI+DQogICAgICAgICAgICAgICAgICA8bW9udGg+MTI8L21vbnRoPg0KICAgICAgICAgICAgICAgICAgPGRheT4yNDwvZGF5Pg0KICAgICAgICAgICAgICAgICAgPHllYXI+MjAxNTwveWVhcj4NCiAgICAgICAgICAgICAgICA8L3B1YmxpY2F0aW9uX2RhdGU+DQogICAgICAgICAgICAgICAgPHB1YmxpY2F0aW9uX2RhdGUgbWVkaWFfdHlwZT0icHJpbnQiPg0KICAgICAgICAgICAgICAgICAgPG1vbnRoPjEyPC9tb250aD4NCiAgICAgICAgICAgICAgICAgIDx5ZWFyPjIwMTU8L3llYXI+DQogICAgICAgICAgICAgICAgPC9wdWJsaWNhdGlvbl9kYXRlPg0KICAgICAgICAgICAgICAgIDxwdWJsaXNoZXJfaXRlbT4NCiAgICAgICAgICAgICAgICAgIDxpdGVtX251bWJlciBpdGVtX251bWJlcl90eXBlPSJhcnRpY2xlLW51bWJlciI+NjQ8L2l0ZW1fbnVtYmVyPg0KICAgICAgICAgICAgICAgICAgPGlkZW50aWZpZXIgaWRfdHlwZT0icGlpIj4xMDM8L2lkZW50aWZpZXI+DQogICAgICAgICAgICAgICAgPC9wdWJsaXNoZXJfaXRlbT4NCiAgICAgICAgICAgICAgICA8Y3Jvc3NtYXJrPg0KICAgICAgICAgICAgICAgICAgPGNyb3NzbWFya192ZXJzaW9uPjE8L2Nyb3NzbWFya192ZXJzaW9uPg0KICAgICAgICAgICAgICAgICAgPGNyb3NzbWFya19wb2xpY3k+MTAuMTAwNy9zcHJpbmdlcl9jcm9zc21hcmtfcG9saWN5PC9jcm9zc21hcmtfcG9saWN5Pg0KICAgICAgICAgICAgICAgICAgPGNyb3NzbWFya19kb21haW5zPg0KICAgICAgICAgICAgICAgICAgICA8Y3Jvc3NtYXJrX2RvbWFpbj4NCiAgICAgICAgICAgICAgICAgICAgICA8ZG9tYWluPmxpbmsuc3ByaW5nZXIuY29tPC9kb21haW4+DQogICAgICAgICAgICAgICAgICAgIDwvY3Jvc3NtYXJrX2RvbWFpbj4NCiAgICAgICAgICAgICAgICAgIDwvY3Jvc3NtYXJrX2RvbWFpbnM+DQogICAgICAgICAgICAgICAgICA8Y3Jvc3NtYXJrX2RvbWFpbl9leGNsdXNpdmU+ZmFsc2U8L2Nyb3NzbWFya19kb21haW5fZXhjbHVzaXZlPg0KICAgICAgICAgICAgICAgICAgPGN1c3RvbV9tZXRhZGF0YT4NCiAgICAgICAgICAgICAgICAgICAgPGFpOnByb2dyYW0geG1sbnM6YWk9Imh0dHA6Ly93d3cuY3Jvc3NyZWYub3JnL0FjY2Vzc0luZGljYXRvcnMueHNkIiBuYW1lPSJBY2Nlc3NJbmRpY2F0b3JzIj4NCiAgICAgICAgICAgICAgICAgICAgICA8YWk6bGljZW5zZV9yZWY+aHR0cDovL3d3dy5zcHJpbmdlci5jb20vdGRtPC9haTpsaWNlbnNlX3JlZj4NCiAgICAgICAgICAgICAgICAgICAgPC9haTpwcm9ncmFtPg0KICAgICAgICAgICAgICAgICAgPC9jdXN0b21fbWV0YWRhdGE+DQogICAgICAgICAgICAgICAgPC9jcm9zc21hcms+DQogICAgICAgICAgICAgICAgPGRvaV9kYXRhPg0KICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMTg2L3MxMzc0Mi0wMTUtMDEwMy00PC9kb2k+DQogICAgICAgICAgICAgICAgICA8dGltZXN0YW1wPjIwMTYxMDAzMDUyNDE1NzY4PC90aW1lc3RhbXA+DQogICAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cHM6Ly9hY2FkZW1pYy5vdXAuY29tL2dpZ2FzY2llbmNlL2FydGljbGUtbG9va3VwL2RvaS8xMC4xMTg2L3MxMzc0Mi0wMTUtMDEwMy00PC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgIDxjb2xsZWN0aW9uIHByb3BlcnR5PSJjcmF3bGVyLWJhc2VkIj4NCiAgICAgICAgICAgICAgICAgICAgPGl0ZW0gY3Jhd2xlcj0iaVBhcmFkaWdtcyI+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9hY2FkZW1pYy5vdXAuY29tL2dpZ2FzY2llbmNlL2FydGljbGUtcGRmLzQvMS8xLzEwODkzODc5LzEzNzQyXzIwMTVfQXJ0aWNsZV8xMDMucGRmPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9pdGVtPg0KICAgICAgICAgICAgICAgICAgICA8aXRlbSBjcmF3bGVyPSJpUGFyYWRpZ21zIj4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2UgbWltZV90eXBlPSJhcHBsaWNhdGlvbi9wZGYiPmh0dHA6Ly9saW5rLnNwcmluZ2VyLmNvbS9jb250ZW50L3BkZi8xMC4xMTg2L3MxMzc0Mi0wMTUtMDEwMy00LnBkZjwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICAgIDwvaXRlbT4NCiAgICAgICAgICAgICAgICAgIDwvY29sbGVjdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjb2xsZWN0aW9uIHByb3BlcnR5PSJ0ZXh0LW1pbmluZyI+DQogICAgICAgICAgICAgICAgICAgIDxpdGVtPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZSBtaW1lX3R5cGU9ImFwcGxpY2F0aW9uL3BkZiI+aHR0cDovL2xpbmsuc3ByaW5nZXIuY29tL2NvbnRlbnQvcGRmLzEwLjExODYvczEzNzQyLTAxNS0wMTAzLTQucGRmPC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9pdGVtPg0KICAgICAgICAgICAgICAgICAgICA8aXRlbT4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2UgbWltZV90eXBlPSJ0ZXh0L2h0bWwiPmh0dHA6Ly9saW5rLnNwcmluZ2VyLmNvbS9hcnRpY2xlLzEwLjExODYvczEzNzQyLTAxNS0wMTAzLTQvZnVsbHRleHQuaHRtbDwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICAgIDwvaXRlbT4NCiAgICAgICAgICAgICAgICAgIDwvY29sbGVjdGlvbj4NCiAgICAgICAgICAgICAgICA8L2RvaV9kYXRhPg0KICAgICAgICAgICAgICAgIDxjaXRhdGlvbl9saXN0Pg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTAzX0NSMSI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPk5hdHVyZTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5EUiBCZW50bGV5PC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+NDU2PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjUzPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwODwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAzOC9uYXR1cmUwNzUxNzwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPkJlbnRsZXkgRFIsIEJhbGFzdWJyYW1hbmlhbiBTLCBTd2VyZGxvdyBIUCwgU21pdGggR1AsIE1pbHRvbiBKLCBCcm93biBDRywgZXQgYWwuIEFjY3VyYXRlIHdob2xlIGh1bWFuIGdlbm9tZSBzZXF1ZW5jaW5nIHVzaW5nIHJldmVyc2libGUgdGVybWluYXRvciBjaGVtaXN0cnkuIE5hdHVyZS4gMjAwODs0NTY6NTPigJM5LjwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjEwM19DUjIiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5OYXQgR2VuZXQ8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+TUEgRGVQcmlzdG88L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT40Mzwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT40OTE8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDExPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDM4L25nLjgwNjwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPkRlUHJpc3RvIE1BLCBCYW5rcyBFLCBQb3BsaW4gUiwgR2FyaW1lbGxhIEtWLCBNYWd1aXJlIEpSLCBIYXJ0bCBDLCBldCBhbC4gQSBmcmFtZXdvcmsgZm9yIHZhcmlhdGlvbiBkaXNjb3ZlcnkgYW5kIGdlbm90eXBpbmcgdXNpbmcgbmV4dC1nZW5lcmF0aW9uIEROQSBzZXF1ZW5jaW5nIGRhdGEuIE5hdCBHZW5ldC4gMjAxMTs0Mzo0OTHigJM4LjwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjEwM19DUjMiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5OYXQgR2VuZXQ8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+QSBSaW1tZXI8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT40Njwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT45MTI8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDE0PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDM4L25nLjMwMzY8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5SaW1tZXIgQSwgUGhhbiBILCBNYXRoaWVzb24gSSwgSXFiYWwgWiwgVHdpZ2cgU1JGLCBXaWxraWUgQU9NLCBldCBhbC4gSW50ZWdyYXRpbmcgbWFwcGluZy0sIGFzc2VtYmx5LSBhbmQgaGFwbG90eXBlLWJhc2VkIGFwcHJvYWNoZXMgZm9yIGNhbGxpbmcgdmFyaWFudHMgaW4gY2xpbmljYWwgc2VxdWVuY2luZyBhcHBsaWNhdGlvbnMuIE5hdCBHZW5ldC4gMjAxNDs0Njo5MTLigJM4LjwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjEwM19DUjQiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5OYXR1cmU8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+MTAwMCBHZW5vbWVzIFByb2plY3QgQ29uc29ydGl1bTwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjQ5MTwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT41NjwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTI8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwMzgvbmF0dXJlMTE2MzI8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj4xMDAwIEdlbm9tZXMgUHJvamVjdCBDb25zb3J0aXVtLiBBbiBpbnRlZ3JhdGVkIG1hcCBvZiBnZW5ldGljIHZhcmlhdGlvbiBmcm9tIDEsMDkyIGh1bWFuIGdlbm9tZXMuIE5hdHVyZS4gMjAxMjs0OTE6NTbigJM2NS48L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxMDNfQ1I1Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TmF0dXJlPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPlJFIE1pbGxzPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+NDcwPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjU5PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAxMTwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAzOC9uYXR1cmUwOTcwODwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPk1pbGxzIFJFLCBXYWx0ZXIgSywgU3Rld2FydCBDLCBIYW5kc2FrZXIgUkUsIENoZW4gSywgQWxrYW4gQywgZXQgYWwuIE1hcHBpbmcgY29weSBudW1iZXIgdmFyaWF0aW9uIGJ5IHBvcHVsYXRpb24tc2NhbGUgZ2Vub21lIHNlcXVlbmNpbmcuIE5hdHVyZS4gMjAxMTs0NzA6NTnigJM2NS48L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxMDNfQ1I2Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TmF0IEdlbmV0PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPlJFIEhhbmRzYWtlcjwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjQzPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjI2OTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTE8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwMzgvbmcuNzY4PC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+SGFuZHNha2VyIFJFLCBLb3JuIEpNLCBOZW1lc2ggSiwgTWNDYXJyb2xsIFNBLiBEaXNjb3ZlcnkgYW5kIGdlbm90eXBpbmcgb2YgZ2Vub21lIHN0cnVjdHVyYWwgcG9seW1vcnBoaXNtIGJ5IHNlcXVlbmNpbmcgb24gYSBwb3B1bGF0aW9uIHNjYWxlLiBOYXQgR2VuZXQuIDIwMTE7NDM6MjY54oCTNzYuPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTAzX0NSNyI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkJpb2luZm9ybWF0aWNzPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkggTGk8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4zMDwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yODQzPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAxNDwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTA5My9iaW9pbmZvcm1hdGljcy9idHUzNTY8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5MaSBILiBUb3dhcmQgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgYXJ0aWZhY3RzIGluIHZhcmlhbnQgY2FsbGluZyBmcm9tIGhpZ2gtY292ZXJhZ2Ugc2FtcGxlcy4gQmlvaW5mb3JtYXRpY3MuIDIwMTQ7MzA6Mjg0M+KAkzUxLjwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjEwM19DUjgiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5Bbm51IFJldiBNZWQ8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+UCBTdGFua2lld2ljejwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjYxPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjQzNzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTA8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExNDYvYW5udXJldi1tZWQtMTAwNzA4LTIwNDczNTwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPlN0YW5raWV3aWN6IFAsIEx1cHNraSBKUi4gU3RydWN0dXJhbCB2YXJpYXRpb24gaW4gdGhlIGh1bWFuIGdlbm9tZSBhbmQgaXRzIHJvbGUgaW4gZGlzZWFzZS4gQW5udSBSZXYgTWVkLiAyMDEwOzYxOjQzN+KAkzU1LjwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjEwM19DUjkiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5QTG9TIEdlbmV0PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkEgS2llenVuPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+OTwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAxMzwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTM3MS9qb3VybmFsLnBnZW4uMTAwMzMwMTwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPktpZXp1biBBLCBQdWxpdCBTTCwgRnJhbmNpb2xpIExDLCB2YW4gRGlqayBGLCBTd2VydHogTSwgQm9vbXNtYSBESSwgZXQgYWwuIERlbGV0ZXJpb3VzIEFsbGVsZXMgaW4gdGhlIEh1bWFuIEdlbm9tZSBBcmUgb24gQXZlcmFnZSBZb3VuZ2VyIFRoYW4gTmV1dHJhbCBBbGxlbGVzIG9mIHRoZSBTYW1lIEZyZXF1ZW5jeS4gUExvUyBHZW5ldC4gMjAxMzs5OjHigJMxMi48L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxMDNfQ1IxMCI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkNlbGw8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+TCBZYW5nPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MTUzPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjkxOTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTM8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwMTYvai5jZWxsLjIwMTMuMDQuMDEwPC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+WWFuZyBMLCBMdXF1ZXR0ZSBMSiwgR2VobGVuYm9yZyBOLCBYaSBSLCBIYXNlbGV5IFBTLCBIc2llaCBDLUgsIGV0IGFsLiBEaXZlcnNlIG1lY2hhbmlzbXMgb2Ygc29tYXRpYyBzdHJ1Y3R1cmFsIHZhcmlhdGlvbnMgaW4gaHVtYW4gY2FuY2VyIGdlbm9tZXMuIENlbGwuIDIwMTM7MTUzOjkxOeKAkzI5LjwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjEwM19DUjExIj4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TmF0IE1ldGhvZHMuPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkMgQWxrYW48L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT44PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjYxPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAxMTwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAzOC9ubWV0aC4xNTI3PC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+QWxrYW4gQywgU2FqamFkaWFuIFMsIEVpY2hsZXIgRUUuIExpbWl0YXRpb25zIG9mIG5leHQtZ2VuZXJhdGlvbiBnZW5vbWUgc2VxdWVuY2UgYXNzZW1ibHkuIE5hdCBNZXRob2RzLiAyMDExOzg6NjHigJM2NS48L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxMDNfQ1IxMiI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPk5hdCBCaW90ZWNobm9sPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPlkgTGk8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4yOTwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT43MjM8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDExPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDM4L25idC4xOTA0PC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+TGkgWSwgWmhlbmcgSCwgTHVvIFIsIFd1IEgsIFpodSBILCBMaSBSLCBldCBhbC4gU3RydWN0dXJhbCB2YXJpYXRpb24gaW4gdHdvIGh1bWFuIGdlbm9tZXMgbWFwcGVkIGF0IHNpbmdsZS1udWNsZW90aWRlIHJlc29sdXRpb24gYnkgd2hvbGUgZ2Vub21lIGRlIG5vdm8gYXNzZW1ibHkuIE5hdCBCaW90ZWNobm9sLiAyMDExOzI5OjcyM+KAkzMwLjwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjEwM19DUjEzIj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjEwMzgvbmJ0LjE1OTY8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5MaSBSLCBMaSBZLCBaaGVuZyBILCBMdW8gUiwgWmh1IEgsIExpIFEsIGV0IGFsLiBCdWlsZGluZyB0aGUgc2VxdWVuY2UgbWFwIG9mIHRoZSBodW1hbiBwYW4tZ2Vub21lLiBOYXQgQmlvdGVjaG5vbC4gMjAxMDs1N+KAkzYzLjwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjEwM19DUjE0Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TmF0IENvbW11bjwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5TIEJlc2VuYmFjaGVyPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+Njwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT41OTY5PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAxNTwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAzOC9uY29tbXM2OTY5PC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+QmVzZW5iYWNoZXIgUywgTGl1IFMsIEl6YXJ6dWdhemEgSk1HLCBHcm92ZSBKLCBCZWxsaW5nIEssIEJvcmstSmVuc2VuIEosIGV0IGFsLiBOb3ZlbCB2YXJpYXRpb24gYW5kIGRlIG5vdm8gbXV0YXRpb24gcmF0ZXMgaW4gcG9wdWxhdGlvbi13aWRlIGRlIG5vdm8gYXNzZW1ibGVkIERhbmlzaCB0cmlvcy4gTmF0IENvbW11bi4gMjAxNTs2OjU5NjkuPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTAzX0NSMTUiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5OYXQgUmV2IEdlbmV0PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPlBKIEhhc3RpbmdzPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MTA8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NTUxPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAxMDwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAzOC9ucmcyNTkzPC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+SGFzdGluZ3MgUEosIEx1cHNraSBKUiwgUm9zZW5iZXJnIFNNLCBJcmEgRy4gTWVjaGFuaXNtcyBvZiBjaGFuZ2UgaW4gZ2VuZSBjb3B5IG51bWJlci4gTmF0IFJldiBHZW5ldC4gMjAxMDsxMDo1NTHigJM2NC48L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxMDNfQ1IxNiI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkdlbm9tZSBSZXM8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+U00gS2llxYJiYXNhPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MjE8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NDg3PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAxMTwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTEwMS9nci4xMTM5ODUuMTEwPC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+S2llxYJiYXNhIFNNLCBXYW4gUiwgU2F0byBLLCBIb3J0b24gUCwgRnJpdGggTUMuIEFkYXB0aXZlIHNlZWRzIHRhbWUgZ2Vub21pYyBzZXF1ZW5jZSBjb21wYXJpc29uLiBHZW5vbWUgUmVzLiAyMDExOzIxOjQ4N+KAkzkzLjwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjEwM19DUjE3Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjEwOTMvYmlvaW5mb3JtYXRpY3MvYnRxNzEzPC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+QWJ5em92IEEsIEdlcnN0ZWluIE0uIEFHRTogZGVmaW5pbmcgYnJlYWtwb2ludHMgb2YgZ2Vub21pYyBzdHJ1Y3R1cmFsIHZhcmlhbnRzIGF0IHNpbmdsZS1udWNsZW90aWRlIHJlc29sdXRpb24sIHRocm91Z2ggb3B0aW1hbCBhbGlnbm1lbnRzIHdpdGggZ2FwIGV4Y2lzaW9uLiBCaW9pbmZvcm1hdGljcy4gMjAxMTs1OTXigJM2MDMuPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTAzX0NSMTgiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5OYXQgQmlvdGVjaG5vbDwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5KTSBab29rPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MzI8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MjQ2PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAxNDwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAzOC9uYnQuMjgzNTwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPlpvb2sgSk0sIENoYXBtYW4gQiwgV2FuZyBKLCBNaXR0ZWxtYW4gRCwgSG9mbWFubiBPLCBIaWRlIFcsIGV0IGFsLiBJbnRlZ3JhdGluZyBodW1hbiBzZXF1ZW5jZSBkYXRhIHNldHMgcHJvdmlkZXMgYSByZXNvdXJjZSBvZiBiZW5jaG1hcmsgU05QIGFuZCBpbmRlbCBnZW5vdHlwZSBjYWxscy4gTmF0IEJpb3RlY2hub2wuIDIwMTQ7MzI6MjQ24oCTNTEuPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTAzX0NSMTkiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5OYXQgQmlvdGVjaG5vbDwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5IWUsgTGFtPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+Mjg8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NDc8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDEwPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDM4L25idC4xNjAwPC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+TGFtIEhZSywgTXUgWEosIFN0w7x0eiBBTSwgVGFuemVyIEEsIENheXRpbmcgUEQsIFNueWRlciBNLCBldCBhbC4gTnVjbGVvdGlkZS1yZXNvbHV0aW9uIGFuYWx5c2lzIG9mIHN0cnVjdHVyYWwgdmFyaWFudHMgdXNpbmcgQnJlYWtTZXEgYW5kIGEgYnJlYWtwb2ludCBsaWJyYXJ5LiBOYXQgQmlvdGVjaG5vbC4gMjAxMDsyODo0N+KAkzU1LjwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjEwM19DUjIwIj4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+R2Vub21lIFJlczwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5TQiBNb250Z29tZXJ5PC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MjM8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NzQ5PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAxMzwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTEwMS9nci4xNDg3MTguMTEyPC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+TW9udGdvbWVyeSBTQiwgR29vZGUgREwsIEt2aWtzdGFkIEUsIEFsYmVycyBDQSwgWmhhbmcgWkQsIE11IFhKLCBldCBhbC4gVGhlIG9yaWdpbiwgZXZvbHV0aW9uLCBhbmQgZnVuY3Rpb25hbCBpbXBhY3Qgb2Ygc2hvcnQgaW5zZXJ0aW9uLWRlbGV0aW9uIHZhcmlhbnRzIGlkZW50aWZpZWQgaW4gMTc5IGh1bWFuIGdlbm9tZXMuIEdlbm9tZSBSZXMuIDIwMTM7MjM6NzQ54oCTNjEuPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTAzX0NSMjEiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5DeXRvZ2VuZXQgR2Vub21lIFJlczwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5KIEp1cmthPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MTEwPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjQ2MjwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDU8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExNTkvMDAwMDg0OTc5PC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+SnVya2EgSiwgS2FwaXRvbm92IFZWLCBQYXZsaWNlayBBLCBLbG9ub3dza2kgUCwgS29oYW55IE8sIFdhbGljaGlld2ljeiBKLiBSZXBiYXNlIFVwZGF0ZSwgYSBkYXRhYmFzZSBvZiBldWthcnlvdGljIHJlcGV0aXRpdmUgZWxlbWVudHMuIEN5dG9nZW5ldCBHZW5vbWUgUmVzLiAyMDA1OzExMDo0NjLigJM3LjwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjEwM19DUjIyIj4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+TnVjbGVpYyBBY2lkcyBSZXM8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+UyBNY0dpbm5pczwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjMyPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxpc3N1ZT5XZWIgU2VydmVyPC9pc3N1ZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+VzIwPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwNDwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTA5My9uYXIvZ2toNDM1PC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+TWNHaW5uaXMgUywgTWFkZGVuIFRMLiBCTEFTVDogYXQgdGhlIGNvcmUgb2YgYSBwb3dlcmZ1bCBhbmQgZGl2ZXJzZSBzZXQgb2Ygc2VxdWVuY2UgYW5hbHlzaXMgdG9vbHMuIE51Y2xlaWMgQWNpZHMgUmVzLiAyMDA0OzMyKFdlYiBTZXJ2ZXIpOlcyMOKAkzUuPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTAzX0NSMjMiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5CaW9pbmZvcm1hdGljczwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5QIERhbmVjZWs8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4yNzwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yMTU2PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAxMTwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTA5My9iaW9pbmZvcm1hdGljcy9idHIzMzA8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5EYW5lY2VrIFAsIEF1dG9uIEEsIEFiZWNhc2lzIEcsIEFsYmVycyBDQSwgQmFua3MgRSwgRGVQcmlzdG8gTUEsIGV0IGFsLiBUaGUgdmFyaWFudCBjYWxsIGZvcm1hdCBhbmQgVkNGdG9vbHMuIEJpb2luZm9ybWF0aWNzLiAyMDExOzI3OjIxNTbigJM4LjwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjEwM19DUjI0Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+UExvUyBCaW9sPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPlMgTGV2eTwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjU8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGlzc3VlPjEwPC9pc3N1ZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+ZTI1NDwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDc8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEzNzEvam91cm5hbC5wYmlvLjAwNTAyNTQ8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5MZXZ5IFMsIFN1dHRvbiBHLCBOZyBQQywgRmV1ayBMLCBIYWxwZXJuIEFMLCBXYWxlbnogQlAsIGV0IGFsLiBUaGUgRGlwbG9pZCBHZW5vbWUgU2VxdWVuY2Ugb2YgYW4gSW5kaXZpZHVhbCBIdW1hbi4gUExvUyBCaW9sLiAyMDA3OzUoMTApOmUyNTQuPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTAzX0NSMjUiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5HaWdhc2NpZW5jZTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5DQyBDaGFuZzwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjQ8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMTU8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExODYvczEzNzQyLTAxNS0wMDQ3LTg8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5DaGFuZyBDQywgQ2hvdyBDQywgVGVsbGllciBMQywgVmF0dGlrdXRpIFMsIFB1cmNlbGwgU00sIExlZSBKSi4gU2Vjb25kZ2VuZXJhdGlvbiBQTElOSzogcmlzaW5nIHRvIHRoZSBjaGFsbGVuZ2Ugb2YgbGFyZ2VyIGFuZCByaWNoZXIgZGF0YXNldHMuIEdpZ2FzY2llbmNlLiAyMDE1OzQ6Ny48L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxMDNfQ1IyNiI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuNTUyNC8xMDAxNzM8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5IdWFuZyBTLCBLcm9naCBBLCBMaXUgUywgUmFvIEosIFNjaGllcnVwIE1ILCBUaGUgR2Vub21lIERlbm1hcmsgQ29uc29ydGl1bSwgZXQgYWwuIEFzbVZhcjogdG9vbHMgYW5kIGV4ZW1wbGFyIGRhdGEuIEdpZ2FTY2llbmNlIERhdGFiYXNlLiAyMDE1LiBkb2k6IDEwLjU1MjQvMTAwMTczIC48L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxMDNfQ1IyNyI+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+WyBmdHA6Ly9mdHAubmNiaS5ubG0ubmloLmdvdi9wdWIvZGJWYXIvZGF0YS9Ib21vX3NhcGllbnMvYnlfc3R1ZHkvZXN0ZDU5XzEwMDBfR2Vub21lc19Db25zb3J0aXVtX1BpbG90X1Byb2plY3QgXS4gVGhlIGRiVmFyIHN0cnVjdHVyYWwgdmFyaWF0aW9uIGZvciBOQTEyODc4LjwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjEwM19DUjI4Ij4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5baGdkb3dubG9hZC5jc2UudWNzYy5lZHUvZ29sZGVuUGF0aC9yaGVNYWMzL2JpZ1ppcHMvXS4gVGhlIGFzc2VtYmx5IHNlcXVlbmNlIGZvciByaGVNYWMzLjwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjEwM19DUjI5Ij4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5baGdkb3dubG9hZC5jc2UudWNzYy5lZHUvZ29sZGVuUGF0aC9wb25BYmUyL2JpZ1ppcHNdLiBUaGUgYXNzZW1ibHkgc2VxdWVuY2UgZm9yIHBvbkFiZTIuPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTAzX0NSMzAiPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPltoZ2Rvd25sb2FkLmNzZS51Y3NjLmVkdS9nb2xkZW5QYXRoL3BhblRybzQvYmlnWmlwc10uIFRoZSBhc3NlbWJseSBzZXF1ZW5jZSBmb3IgcGFuVHJvNC48L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxMDNfQ1IzMSI+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+W2hnZG93bmxvYWQuY3NlLnVjc2MuZWR1L2dvbGRlblBhdGgvZ29yR29yMy9iaWdaaXBzXS4gVGhlIGFzc2VtYmx5IHNlcXVlbmNlIGZvciBnb3JHb3IzLjwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICA8L2NpdGF0aW9uX2xpc3Q+DQogICAgICAgICAgICAgIDwvam91cm5hbF9hcnRpY2xlPg0KICAgICAgICAgICAgPC9qb3VybmFsPg0KICAgICAgICAgIDwvY3Jvc3NyZWY+DQogICAgICAgIDwvZG9pX3JlY29yZD4NCiAgICAgIDwvcXVlcnk+DQogICAgPC9ib2R5Pg0KICA8L3F1ZXJ5X3Jlc3VsdD4NCjwvY3Jvc3NyZWZfcmVzdWx0Pg==
|
46
|
+
http_version:
|
47
|
+
recorded_at: Sat, 22 Feb 2020 08:29:06 GMT
|
48
|
+
recorded_with: VCR 3.0.3
|
@@ -995,6 +995,23 @@ describe Bolognese::Metadata, vcr: true do
|
|
995
995
|
expect(subject.errors.first).to eq("31:0: ERROR: Element '{http://datacite.org/schema/kernel-4}fundingReference': Missing child element(s). Expected is one of ( {http://datacite.org/schema/kernel-4}funderName, {http://datacite.org/schema/kernel-4}funderIdentifier, {http://datacite.org/schema/kernel-4}awardNumber, {http://datacite.org/schema/kernel-4}awardTitle ).")
|
996
996
|
end
|
997
997
|
|
998
|
+
it "space in sizes" do
|
999
|
+
input = fixture_path + "datacite-space-in-sizes.xml"
|
1000
|
+
subject = Bolognese::Metadata.new(input: input, regenerate: false)
|
1001
|
+
expect(subject.valid?).to be true
|
1002
|
+
expect(subject.sizes).to be_empty
|
1003
|
+
expect(subject.related_identifiers).to eq([{"relatedIdentifier"=>"10.1016/s0040-1951(03)00197-5",
|
1004
|
+
"relatedIdentifierType"=>"DOI",
|
1005
|
+
"relationType"=>"IsCitedBy"}])
|
1006
|
+
end
|
1007
|
+
|
1008
|
+
it "formats with xs" do
|
1009
|
+
input = fixture_path + "datacite-formats-with-xs.xml"
|
1010
|
+
subject = Bolognese::Metadata.new(input: input, regenerate: false)
|
1011
|
+
expect(subject.valid?).to be true
|
1012
|
+
expect(subject.formats).to eq(["PDF"])
|
1013
|
+
end
|
1014
|
+
|
998
1015
|
it "dissertation" do
|
999
1016
|
input = "10.3204/desy-2014-01645"
|
1000
1017
|
subject = Bolognese::Metadata.new(input: input)
|
@@ -219,5 +219,22 @@ describe Bolognese::Metadata, vcr: true do
|
|
219
219
|
expect(json["DOI"]).to eq("10.1594/pangaea.721193")
|
220
220
|
expect(json["categories"]).to include("Animalia", "Bottles or small containers/Aquaria ( 20 L)", "Calcification/Dissolution", "Coast and continental shelf", "Development", "Growth/Morphology", "Laboratory experiment", "Mollusca", "Pelagos", "Single species", "Temperate", "Zooplankton", "Experimental treatment", "Carbonate system computation flag", "Temperature, water", "Salinity", "pH", "Alkalinity, total", "Carbon, inorganic, dissolved", "Carbon dioxide", "Bicarbonate ion", "Carbonate ion", "Partial pressure of carbon dioxide (water) at sea surface temperature (wet air)", "Fugacity of carbon dioxide (water) at sea surface temperature (wet air)", "Aragonite saturation state", "Calcite saturation state", "Proportion", "Crassostrea gigas, larvae length", "Crassostrea gigas, larvae height", "Crassostrea gigas, non mineralized", "Crassostrea gigas, partially mineralized", "Crassostrea gigas, fully mineralized", "Calculated using seacarb after Nisumaa et al. (2010)", "Refractometer (Atago 100-S)", "pH meter (Mettler Toledo)", "pH meter (PHM290, Radiometer)", "Measured", "European Project on Ocean Acidification (EPOCA)", "European network of excellence for Ocean Ecosystems Analysis (EUR-OCEANS)", "Ocean Acidification International Coordination Centre (OA-ICC)")
|
221
221
|
end
|
222
|
+
|
223
|
+
it "organization author" do
|
224
|
+
input = "https://doi.org/10.1186/s13742-015-0103-4"
|
225
|
+
subject = Bolognese::Metadata.new(input: input, from: "crossref")
|
226
|
+
json = JSON.parse(subject.citeproc)
|
227
|
+
expect(json["type"]).to eq("article-journal")
|
228
|
+
expect(json["id"]).to eq("https://doi.org/10.1186/s13742-015-0103-4")
|
229
|
+
expect(json["DOI"]).to eq("10.1186/s13742-015-0103-4")
|
230
|
+
expect(json["author"]).to eq([{"family"=>"Liu", "given"=>"Siyang"},
|
231
|
+
{"family"=>"Huang", "given"=>"Shujia"},
|
232
|
+
{"family"=>"Rao", "given"=>"Junhua"},
|
233
|
+
{"family"=>"Ye", "given"=>"Weijian"},
|
234
|
+
{"family"=>"Krogh", "given"=>"Anders"},
|
235
|
+
{"family"=>"Wang", "given"=>"Jun"},
|
236
|
+
{"literal"=>"The Genome Denmark Consortium"}])
|
237
|
+
expect(json["container-title"]).to eq("GigaScience")
|
238
|
+
end
|
222
239
|
end
|
223
240
|
end
|
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.5.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: 2020-02-
|
11
|
+
date: 2020-02-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: maremma
|
@@ -746,6 +746,7 @@ files:
|
|
746
746
|
- spec/fixtures/datacite-example-geolocation-2.xml
|
747
747
|
- spec/fixtures/datacite-example-geolocation.xml
|
748
748
|
- spec/fixtures/datacite-example-polygon-v4.1.xml
|
749
|
+
- spec/fixtures/datacite-formats-with-xs.xml
|
749
750
|
- spec/fixtures/datacite-funderIdentifier.xml
|
750
751
|
- spec/fixtures/datacite-geolocation-empty.xml
|
751
752
|
- spec/fixtures/datacite-metadata-sample-complicated-v2.2.xml
|
@@ -753,6 +754,7 @@ files:
|
|
753
754
|
- spec/fixtures/datacite-multiple-rights.xml
|
754
755
|
- spec/fixtures/datacite-schema-2.2.xml
|
755
756
|
- spec/fixtures/datacite-seriesinformation.xml
|
757
|
+
- spec/fixtures/datacite-space-in-sizes.xml
|
756
758
|
- spec/fixtures/datacite-xml-lang.xml
|
757
759
|
- spec/fixtures/datacite.json
|
758
760
|
- spec/fixtures/datacite.xml
|
@@ -1081,6 +1083,7 @@ files:
|
|
1081
1083
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/maremma.yml
|
1082
1084
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/missing_creator.yml
|
1083
1085
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/multiple_abstracts.yml
|
1086
|
+
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/organization_author.yml
|
1084
1087
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/software.yml
|
1085
1088
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/with_first_page.yml
|
1086
1089
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/with_only_first_page.yml
|