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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a623923550674cf376d416c30b2c8141adf3c133af69ed5dc881f6ed013609a9
4
- data.tar.gz: 22a710f436e23fd9857298baadd71f257e8d0b111e1df721b200d51de89b9843
3
+ metadata.gz: 977d6a120d66d33a10188cfe1b5a36d898fed7ce44c8a4768cf87cba40ffe8a8
4
+ data.tar.gz: 70c0750b9a4f20bde9a97debf3645c6cddc3b0e46a33c330fa408e9014af8050
5
5
  SHA512:
6
- metadata.gz: '069205db8e9c4fac0fa3a44bbdddf210e1e0ce25190429f8d4c282c60100f31755191438c7506ee36f3c73d8d50d57cd0833065ba89b3ec891f5067519730bd2'
7
- data.tar.gz: d150bda3417d388954b69c9e6346e3642e1786a7d71dae8e36430086ec2027a8d36f1f8ac0d5ad55b7e67eaea3e003a7866fc1ca8cc1caf359e3494d0a70cf5d
6
+ metadata.gz: 97cd5c4e5c0bcee84083c74c6f17c7e7993a0bdf8e059527fce8d3e0cea13cb65d6bbe63df0c06621893268a8f6996952ecb82ed8243b7e31a91c7d35a9cc7e3
7
+ data.tar.gz: f33e063f45ea1bc1231bc8baba76cdfda740d604bc3895b5b178d18cea68c3f486c2be6abb46494c317df564116d7d5ae406c5e6c7fc2a652f0cb7556c9fe1fd
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bolognese (1.5)
4
+ bolognese (1.5.1)
5
5
  activesupport (>= 4.2.5)
6
6
  benchmark_methods (~> 0.7)
7
7
  bibtex-ruby (>= 5.1.0)
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Bolognese
2
- VERSION = "1.5"
2
+ VERSION = "1.5.1"
3
3
  end
@@ -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: '1.5'
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-22 00:00:00.000000000 Z
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