bolognese 1.8.10 → 1.8.12

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: a5195c3b55a761942636c85d4f09331f45a91f4099cc49286e4b16815e8bb001
4
- data.tar.gz: 7238555995c287fff505934f794a4deb9666c06ec44e2f422f73e8292b8db774
3
+ metadata.gz: 8e9ef883158d4d5c7759604384e40187b696797da54ef3746110dae68ae4172e
4
+ data.tar.gz: 6df03fa50cdb1902b55e371c5fd32293d5c33b842c9a3ba90b12e78554c8e53b
5
5
  SHA512:
6
- metadata.gz: e102cd718faaba83563b8ba33ff13e30c8dff7c491be161bab401197f695fdbea74b57c9371dfcb922eca7ccf2de7d49e457aa46b0fbece35c407c2b949cad66
7
- data.tar.gz: bd51818f76c120eac5d8a1cf276d5df845fefb7a7eaeba477a2a47d06d1965aa9848e9a357c5d532a85aace58e92361db938afa8f0f1eb30e8ab59839a86cddd
6
+ metadata.gz: 89ba372c20d10fc5315764121c926e574035acf4a5efc6826a82417f263afa48b8593bd50c08252c9330e705de71143bdd3d6f187ea077c3b6cff50ccfbe39f6
7
+ data.tar.gz: 277381d2382c4475d550eb3b1e9904c4720d954ea81c84b0fcbe1914e3c15e6d5d69575fffd9c0cb27fa2a4eacd8e1ccad9168fcd173a796e15247f665276063
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bolognese (1.8.10)
4
+ bolognese (1.8.12)
5
5
  activesupport (>= 4.2.5)
6
6
  benchmark_methods (~> 0.7)
7
7
  bibtex-ruby (>= 5.1.0)
@@ -187,7 +187,7 @@ GEM
187
187
  thread_safe (~> 0.1)
188
188
  unicode_utils (1.4.0)
189
189
  vcr (3.0.3)
190
- webmock (3.9.1)
190
+ webmock (3.9.2)
191
191
  addressable (>= 2.3.6)
192
192
  crack (>= 0.3.2)
193
193
  hashdiff (>= 0.4.0, < 2.0.0)
@@ -247,13 +247,26 @@ module Bolognese
247
247
  if a["surname"].present? || a["given_name"].present? || name_identifiers.present?
248
248
  given_name = parse_attributes(a["given_name"])
249
249
  family_name = parse_attributes(a["surname"])
250
+ affiliation = Array.wrap(a["affiliation"]).map do |a|
251
+ if a.is_a?(Hash) && a.key?("__content__") && a["__content__"].strip.blank?
252
+ nil
253
+ elsif a.is_a?(Hash) && a.key?("__content__")
254
+ { "name" => a["__content__"] }
255
+ elsif a.is_a?(Hash)
256
+ a
257
+ elsif a.strip.blank?
258
+ nil
259
+ elsif a.is_a?(String)
260
+ { "name" => a }
261
+ end
262
+ end.compact
250
263
 
251
264
  { "nameType" => "Personal",
252
265
  "nameIdentifiers" => name_identifiers,
253
266
  "name" => [family_name, given_name].compact.join(", "),
254
267
  "givenName" => given_name,
255
268
  "familyName" => family_name,
256
- "affiliation" => Array.wrap(a["affiliation"]).map { |a| { "name" => a }}.presence,
269
+ "affiliation" => affiliation.presence,
257
270
  "contributorType" => contributor_role == "editor" ? "Editor" : nil }.compact
258
271
  else
259
272
  { "nameType" => "Organizational",
@@ -1,3 +1,3 @@
1
1
  module Bolognese
2
- VERSION = "1.8.10"
2
+ VERSION = "1.8.12"
3
3
  end
@@ -0,0 +1,100 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://doi.org/ra/10.1177
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Mozilla/5.0 (compatible; Maremma/4.7.2; 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
+ - Mon, 12 Oct 2020 20:19:19 GMT
21
+ Content-Type:
22
+ - application/json;charset=UTF-8
23
+ Connection:
24
+ - keep-alive
25
+ Set-Cookie:
26
+ - __cfduid=d3fd7e0786c5b0c861cf006b8b0b48f451602533959; expires=Wed, 11-Nov-20
27
+ 20:19:19 GMT; path=/; domain=.doi.org; HttpOnly; SameSite=Lax; Secure
28
+ Cf-Cache-Status:
29
+ - DYNAMIC
30
+ Cf-Request-Id:
31
+ - 05c010be770000d6fd45a0e200000001
32
+ Expect-Ct:
33
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
34
+ Report-To:
35
+ - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report?lkg-colo=71&lkg-time=1602533959"}],"group":"cf-nel","max_age":604800}'
36
+ Nel:
37
+ - '{"report_to":"cf-nel","max_age":604800}'
38
+ Strict-Transport-Security:
39
+ - max-age=31536000; includeSubDomains; preload
40
+ Server:
41
+ - cloudflare
42
+ Cf-Ray:
43
+ - 5e1383dd8d78d6fd-FRA
44
+ Alt-Svc:
45
+ - h3-27=":443"; ma=86400, h3-28=":443"; ma=86400, h3-29=":443"; ma=86400
46
+ body:
47
+ encoding: ASCII-8BIT
48
+ string: |-
49
+ [
50
+ {
51
+ "DOI": "10.1177",
52
+ "RA": "Crossref"
53
+ }
54
+ ]
55
+ http_version:
56
+ recorded_at: Mon, 12 Oct 2020 20:19:19 GMT
57
+ - request:
58
+ method: get
59
+ uri: https://api.crossref.org/works/10.1177/0042098011428175/transform/application/vnd.crossref.unixsd+xml
60
+ body:
61
+ encoding: US-ASCII
62
+ string: ''
63
+ headers:
64
+ User-Agent:
65
+ - Mozilla/5.0 (compatible; Maremma/4.7.2; mailto:info@datacite.org)
66
+ Accept:
67
+ - text/xml
68
+ response:
69
+ status:
70
+ code: 200
71
+ message: OK
72
+ headers:
73
+ Link:
74
+ - <http://dx.doi.org/10.1177/0042098011428175>; rel="canonical", <http://journals.sagepub.com/doi/pdf/10.1177/0042098011428175>;
75
+ version="vor"; type="application/pdf"; rel="item", <http://journals.sagepub.com/doi/pdf/10.1177/0042098011428175>;
76
+ version="vor"; rel="item", <http://journals.sagepub.com/page/policies/text-and-data-mining-license>;
77
+ version="tdm"; rel="license"
78
+ Access-Control-Allow-Origin:
79
+ - "*"
80
+ Access-Control-Allow-Headers:
81
+ - X-Requested-With
82
+ Content-Length:
83
+ - '18738'
84
+ Server:
85
+ - http-kit
86
+ Date:
87
+ - Mon, 12 Oct 2020 20:19:19 GMT
88
+ X-Rate-Limit-Limit:
89
+ - '50'
90
+ X-Rate-Limit-Interval:
91
+ - 1s
92
+ Connection:
93
+ - close
94
+ body:
95
+ encoding: ASCII-8BIT
96
+ string: !binary |-
97
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGNyb3NzcmVmX3Jlc3VsdCB4bWxucz0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvcXJzY2hlbWEvMy4wIiB2ZXJzaW9uPSIzLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvcXJzY2hlbWEvMy4wIGh0dHA6Ly93d3cuY3Jvc3NyZWYub3JnL3NjaGVtYXMvY3Jvc3NyZWZfcXVlcnlfb3V0cHV0My4wLnhzZCI+DQogIDxxdWVyeV9yZXN1bHQ+DQogICAgPGhlYWQ+DQogICAgICA8ZG9pX2JhdGNoX2lkPm5vbmU8L2RvaV9iYXRjaF9pZD4NCiAgICA8L2hlYWQ+DQogICAgPGJvZHk+DQogICAgICA8cXVlcnkgc3RhdHVzPSJyZXNvbHZlZCI+DQogICAgICAgIDxkb2kgdHlwZT0iam91cm5hbF9hcnRpY2xlIj4xMC4xMTc3LzAwNDIwOTgwMTE0MjgxNzU8L2RvaT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9InB1Ymxpc2hlci1uYW1lIiB0eXBlPSJzdHJpbmciPlNBR0UgUHVibGljYXRpb25zPC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9InByZWZpeC1uYW1lIiB0eXBlPSJzdHJpbmciPlNBR0UgUHVibGljYXRpb25zPC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9Im1lbWJlci1pZCIgdHlwZT0ibnVtYmVyIj4xNzk8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iY2l0YXRpb24taWQiIHR5cGU9Im51bWJlciI+NTI4OTU4MTE8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iam91cm5hbC1pZCIgdHlwZT0ibnVtYmVyIj40Mjg3PC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9ImRlcG9zaXQtdGltZXN0YW1wIiB0eXBlPSJudW1iZXIiPjIwMTcxMjE3MDAzNzMyMDAyMDI8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0ib3duZXItcHJlZml4IiB0eXBlPSJzdHJpbmciPjEwLjExNzc8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0ibGFzdC11cGRhdGUiIHR5cGU9ImRhdGUiPjIwMTktMDYtMjFUMDg6MDI6MTRaPC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9ImNyZWF0ZWQiIHR5cGU9ImRhdGUiPjIwMTEtMTItMjNUMDU6MTY6NTJaPC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9ImNpdGVkYnktY291bnQiIHR5cGU9Im51bWJlciI+MTE8L2NybS1pdGVtPg0KICAgICAgICA8ZG9pX3JlY29yZD4NCiAgICAgICAgICA8Y3Jvc3NyZWYgeG1sbnM9Imh0dHA6Ly93d3cuY3Jvc3NyZWYub3JnL3hzY2hlbWEvMS4xIiB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cuY3Jvc3NyZWYub3JnL3hzY2hlbWEvMS4xIGh0dHA6Ly9kb2kuY3Jvc3NyZWYub3JnL3NjaGVtYXMvdW5peHJlZjEuMS54c2QiPg0KICAgICAgICAgICAgPGpvdXJuYWw+DQogICAgICAgICAgICAgIDxqb3VybmFsX21ldGFkYXRhIGxhbmd1YWdlPSJlbiI+DQogICAgICAgICAgICAgICAgPGZ1bGxfdGl0bGU+VXJiYW4gU3R1ZGllczwvZnVsbF90aXRsZT4NCiAgICAgICAgICAgICAgICA8YWJicmV2X3RpdGxlPlVyYmFuIFN0dWRpZXM8L2FiYnJldl90aXRsZT4NCiAgICAgICAgICAgICAgICA8aXNzbiBtZWRpYV90eXBlPSJwcmludCI+MDA0Mi0wOTgwPC9pc3NuPg0KICAgICAgICAgICAgICAgIDxpc3NuIG1lZGlhX3R5cGU9ImVsZWN0cm9uaWMiPjEzNjAtMDYzWDwvaXNzbj4NCiAgICAgICAgICAgICAgPC9qb3VybmFsX21ldGFkYXRhPg0KICAgICAgICAgICAgICA8am91cm5hbF9pc3N1ZT4NCiAgICAgICAgICAgICAgICA8cHVibGljYXRpb25fZGF0ZSBtZWRpYV90eXBlPSJvbmxpbmUiPg0KICAgICAgICAgICAgICAgICAgPG1vbnRoPjEyPC9tb250aD4NCiAgICAgICAgICAgICAgICAgIDxkYXk+MjI8L2RheT4NCiAgICAgICAgICAgICAgICAgIDx5ZWFyPjIwMTE8L3llYXI+DQogICAgICAgICAgICAgICAgPC9wdWJsaWNhdGlvbl9kYXRlPg0KICAgICAgICAgICAgICAgIDxwdWJsaWNhdGlvbl9kYXRlIG1lZGlhX3R5cGU9InByaW50Ij4NCiAgICAgICAgICAgICAgICAgIDxtb250aD4xMTwvbW9udGg+DQogICAgICAgICAgICAgICAgICA8eWVhcj4yMDEyPC95ZWFyPg0KICAgICAgICAgICAgICAgIDwvcHVibGljYXRpb25fZGF0ZT4NCiAgICAgICAgICAgICAgICA8am91cm5hbF92b2x1bWU+DQogICAgICAgICAgICAgICAgICA8dm9sdW1lPjQ5PC92b2x1bWU+DQogICAgICAgICAgICAgICAgPC9qb3VybmFsX3ZvbHVtZT4NCiAgICAgICAgICAgICAgICA8aXNzdWU+MTE8L2lzc3VlPg0KICAgICAgICAgICAgICA8L2pvdXJuYWxfaXNzdWU+DQogICAgICAgICAgICAgIDxqb3VybmFsX2FydGljbGUgcHVibGljYXRpb25fdHlwZT0iZnVsbF90ZXh0Ij4NCiAgICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgICAgPHRpdGxlPldvcmtlcnMgYW5kIHRoZSBDaXR5OiBSZXRoaW5raW5nIHRoZSBHZW9ncmFwaGllcyBvZiBQb3dlciBpbiBQb3N0LXNvY2lhbGlzdCBVcmJhbmlzYXRpb248L3RpdGxlPg0KICAgICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICAgIDxjb250cmlidXRvcnM+DQogICAgICAgICAgICAgICAgICA8cGVyc29uX25hbWUgc2VxdWVuY2U9ImZpcnN0IiBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiPg0KICAgICAgICAgICAgICAgICAgICA8Z2l2ZW5fbmFtZT5Ob3JiZXJ0PC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgICA8c3VybmFtZT5QZXRyb3ZpY2k8L3N1cm5hbWU+DQogICAgICAgICAgICAgICAgICAgIDxhZmZpbGlhdGlvbj7CoDwvYWZmaWxpYXRpb24+DQogICAgICAgICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgICAgIDwvY29udHJpYnV0b3JzPg0KICAgICAgICAgICAgICAgIDxwdWJsaWNhdGlvbl9kYXRlIG1lZGlhX3R5cGU9Im9ubGluZSI+DQogICAgICAgICAgICAgICAgICA8bW9udGg+MTI8L21vbnRoPg0KICAgICAgICAgICAgICAgICAgPGRheT4yMjwvZGF5Pg0KICAgICAgICAgICAgICAgICAgPHllYXI+MjAxMTwveWVhcj4NCiAgICAgICAgICAgICAgICA8L3B1YmxpY2F0aW9uX2RhdGU+DQogICAgICAgICAgICAgICAgPHB1YmxpY2F0aW9uX2RhdGUgbWVkaWFfdHlwZT0icHJpbnQiPg0KICAgICAgICAgICAgICAgICAgPG1vbnRoPjExPC9tb250aD4NCiAgICAgICAgICAgICAgICAgIDx5ZWFyPjIwMTI8L3llYXI+DQogICAgICAgICAgICAgICAgPC9wdWJsaWNhdGlvbl9kYXRlPg0KICAgICAgICAgICAgICAgIDxwYWdlcz4NCiAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjIzNzc8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICA8bGFzdF9wYWdlPjIzOTc8L2xhc3RfcGFnZT4NCiAgICAgICAgICAgICAgICA8L3BhZ2VzPg0KICAgICAgICAgICAgICAgIDxwdWJsaXNoZXJfaXRlbT4NCiAgICAgICAgICAgICAgICAgIDxpZGVudGlmaWVyIGlkX3R5cGU9ImRvaSI+MTAuMTE3Ny8wMDQyMDk4MDExNDI4MTc1PC9pZGVudGlmaWVyPg0KICAgICAgICAgICAgICAgIDwvcHVibGlzaGVyX2l0ZW0+DQogICAgICAgICAgICAgICAgPGNyb3NzbWFyaz4NCiAgICAgICAgICAgICAgICAgIDxjcm9zc21hcmtfdmVyc2lvbj4yPC9jcm9zc21hcmtfdmVyc2lvbj4NCiAgICAgICAgICAgICAgICAgIDxjcm9zc21hcmtfcG9saWN5PjEwLjExNzcvc2FnZS1qb3VybmFscy11cGRhdGUtcG9saWN5PC9jcm9zc21hcmtfcG9saWN5Pg0KICAgICAgICAgICAgICAgICAgPGNyb3NzbWFya19kb21haW5zPg0KICAgICAgICAgICAgICAgICAgICA8Y3Jvc3NtYXJrX2RvbWFpbj4NCiAgICAgICAgICAgICAgICAgICAgICA8ZG9tYWluPmpvdXJuYWxzLnNhZ2VwdWIuY29tPC9kb21haW4+DQogICAgICAgICAgICAgICAgICAgIDwvY3Jvc3NtYXJrX2RvbWFpbj4NCiAgICAgICAgICAgICAgICAgIDwvY3Jvc3NtYXJrX2RvbWFpbnM+DQogICAgICAgICAgICAgICAgICA8Y3Jvc3NtYXJrX2RvbWFpbl9leGNsdXNpdmU+dHJ1ZTwvY3Jvc3NtYXJrX2RvbWFpbl9leGNsdXNpdmU+DQogICAgICAgICAgICAgICAgICA8Y3VzdG9tX21ldGFkYXRhPg0KICAgICAgICAgICAgICAgICAgICA8YWk6cHJvZ3JhbSB4bWxuczphaT0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvQWNjZXNzSW5kaWNhdG9ycy54c2QiIG5hbWU9IkFjY2Vzc0luZGljYXRvcnMiPg0KICAgICAgICAgICAgICAgICAgICAgIDxhaTpsaWNlbnNlX3JlZiBhcHBsaWVzX3RvPSJ0ZG0iPmh0dHA6Ly9qb3VybmFscy5zYWdlcHViLmNvbS9wYWdlL3BvbGljaWVzL3RleHQtYW5kLWRhdGEtbWluaW5nLWxpY2Vuc2U8L2FpOmxpY2Vuc2VfcmVmPg0KICAgICAgICAgICAgICAgICAgICA8L2FpOnByb2dyYW0+DQogICAgICAgICAgICAgICAgICA8L2N1c3RvbV9tZXRhZGF0YT4NCiAgICAgICAgICAgICAgICA8L2Nyb3NzbWFyaz4NCiAgICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExNzcvMDA0MjA5ODAxMTQyODE3NTwvZG9pPg0KICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9qb3VybmFscy5zYWdlcHViLmNvbS9kb2kvMTAuMTE3Ny8wMDQyMDk4MDExNDI4MTc1PC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgIDxjb2xsZWN0aW9uIHByb3BlcnR5PSJjcmF3bGVyLWJhc2VkIj4NCiAgICAgICAgICAgICAgICAgICAgPGl0ZW0gY3Jhd2xlcj0iaVBhcmFkaWdtcyI+DQogICAgICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9qb3VybmFscy5zYWdlcHViLmNvbS9kb2kvcGRmLzEwLjExNzcvMDA0MjA5ODAxMTQyODE3NTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICAgIDwvaXRlbT4NCiAgICAgICAgICAgICAgICAgIDwvY29sbGVjdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjb2xsZWN0aW9uIHByb3BlcnR5PSJ0ZXh0LW1pbmluZyI+DQogICAgICAgICAgICAgICAgICAgIDxpdGVtPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZSBtaW1lX3R5cGU9ImFwcGxpY2F0aW9uL3BkZiI+aHR0cDovL2pvdXJuYWxzLnNhZ2VwdWIuY29tL2RvaS9wZGYvMTAuMTE3Ny8wMDQyMDk4MDExNDI4MTc1PC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9pdGVtPg0KICAgICAgICAgICAgICAgICAgPC9jb2xsZWN0aW9uPg0KICAgICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgPGNpdGF0aW9uX2xpc3Q+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJhdHlwYjEiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5JREVBIEFydGEgxZ9pIFNvY2lldGF0ZTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTEwPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjU8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGlzc3VlPjM8L2lzc3VlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwMzwvY1llYXI+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYXR5cGIyIj4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5Cb2RuYXLCoEouRXZpbCBQYXJhZGlzZXM6IERyZWFtd29ybGRzIG9mIE5lb2xpYmVyYWxpc20uIERhdmlzwqBNLiwgTW9ua8KgRC4sIGVkLiBOZXcgWW9yazogTmV3IFByZXNzOyAyMDA3OjE0MC0xNTEuPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYXR5cGIzIj4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+U29jaWFsaXN0IFJldmlldzwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NTM8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MTk8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGlzc3VlPjI8L2lzc3VlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MTk4OTwvY1llYXI+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYXR5cGI0Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+QW1lcmljYW4gSm91cm5hbCBvZiBTb2Npb2xvZ3k8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjEwOTk8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MTA2PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxpc3N1ZT40PC9pc3N1ZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDE8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pIHByb3ZpZGVyPSJjcm9zc3JlZiI+MTAuMTA4Ni8zMjAyOTk8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJhdHlwYjUiPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwODYvMjEwNDAyPC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYXR5cGI2Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+Q29tcGFyYXRpdmUgU3R1ZGllcyBpbiBTb2NpZXR5IGFuZCBIaXN0b3J5PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT43MTQ8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+NDU8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGlzc3VlPjQ8L2lzc3VlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwMzwvY1llYXI+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYXR5cGI3Ij4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZV90aXRsZT5Qcml2YXRpemluZyBQb2xhbmQ6IEJhYnkgRm9vZCwgQmlnIEJ1c2luZXNzLCBhbmQgdGhlIFJlbWFraW5nIG9mIExhYm9yPC92b2x1bWVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDA0PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJhdHlwYjgiPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lX3RpdGxlPk1ha2luZyBDYXBpdGFsaXNtIHdpdGhvdXQgQ2FwaXRhbGlzdHM6IENsYXNzIEZvcm1hdGlvbiBhbmQgRWxpdGUgU3RydWdnbGVzIGluIFBvc3QtY29tbXVuaXN0IENlbnRyYWwgRXVyb3BlPC92b2x1bWVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4xOTk4PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJhdHlwYjkiPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwODYvMzIwMzAwPC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYXR5cGIxMCI+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWVfdGl0bGU+RnJvbSB0aGUgQ3VsdCBvZiBXYXN0ZSB0byB0aGUgVHJhc2ggSGVhcCBvZiBIaXN0b3J5OiBUaGUgUG9saXRpY3Mgb2YgV2FzdGUgaW4gU29jaWFsaXN0IGFuZCBQb3N0c29jaWFsaXN0IEh1bmdhcnk8L3ZvbHVtZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDc8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImF0eXBiMTEiPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lX3RpdGxlPlRyYW5zZm9ybWF0aW9uIG9mIENpdGllcyBpbiBDZW50cmFsIGFuZCBFYXN0ZXJuIEV1cm9wZTwvdm9sdW1lX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwNjwvY1llYXI+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYXR5cGIxMiI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTA4MC8xMzYwNDgxMDkwMzI5ODY3MjwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImF0eXBiMTMiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5DaXR5PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xODA8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MTQ8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGlzc3VlPjE8L2lzc3VlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAxMDwvY1llYXI+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYXR5cGIxNCI+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWVfdGl0bGU+SW52ZW50aW5nIHRoZSBOZWVkeTogR2VuZGVyIGFuZCB0aGUgUG9saXRpY3Mgb2YgV2VsZmFyZSBpbiBIdW5nYXJ5PC92b2x1bWVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDAyPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJhdHlwYjE1Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDE3L1MwMDIwODU5MDA5OTkwNjMwPC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYXR5cGIxNiI+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+SGlydMKgUy4sS292YWNoZXbCoEEuVGhlIFVyYmFuIE1vc2FpYyBvZiBQb3N0LXNvY2lhbGlzdCBFYXN0ZXJuIEV1cm9wZS4gVHNlbmtvdmHCoFMuLCBOZWRvdmljLUJ1ZGljwqBaLiwgZWQuIERvcmRyZWNodDogU3ByaW5nZXI7IDIwMDY6MTEyLTEzMC48L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJhdHlwYjE3Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+SW50ZXJuYXRpb25hbCBMYWJvciBhbmQgV29ya2luZy1jbGFzcyBIaXN0b3J5PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4yNDwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT42ODwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwNTwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2kgcHJvdmlkZXI9ImNyb3NzcmVmIj4xMC4xMDE3L1MwMTQ3NTQ3OTA1MDAwMTg5PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYXR5cGIxOCI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTE0Ni9hbm51cmV2LnNvLjA2LjA4MDE4MC4wMDIyNDU8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJhdHlwYjE5Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDA3L0JGMDA5OTM1OTY8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJhdHlwYjIwIj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZV90aXRsZT5FeHBhbmRpbmcgQ2xhc3M6IFBvd2VyIGFuZCBFdmVyeWRheSBQb2xpdGljcyBpbiBJbmR1c3RyaWFsIENvbW11bml0aWVzPC92b2x1bWVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4xOTk3PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJhdHlwYjIxIj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZV90aXRsZT5Xb3JraW5nLWNsYXNzIEZvcm1hdGlvbjogTmluZXRlZW50aC1jZW50dXJ5IFBhdHRlcm5zIGluIFdlc3Rlcm4gRXVyb3BlIGFuZCB0aGUgVW5pdGVkIFN0YXRlczwvdm9sdW1lX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MTk4NjwvY1llYXI+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYXR5cGIyMiI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkRpYWxlY3RpY2FsIEFudGhyb3BvbG9neTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+Mzk5PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjEyPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxpc3N1ZT40PC9pc3N1ZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE5ODg8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImF0eXBiMjMiPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPktpZGVja2VswqBELlBvc3Rzb2NpYWxpc206IElkZWFscywgSWRlb2xvZ2llcywgYW5kIFByYWN0aWNlcyBpbiBFdXJhc2lhLiBIYW5uwqBDLiwgZWQuIExvbmRvbjogUm91dGxlZGdlOyAyMDAyOjExNC0xMzIuPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYXR5cGIyNCI+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWVfdGl0bGU+R2V0dGluZyBieSBpbiBQb3N0c29jaWFsaXN0IFJvbWFuaWE6IExhYm9yLCB0aGUgQm9keSwgYW5kIFdvcmtpbmcgQ2xhc3MgQ3VsdHVyZTwvdm9sdW1lX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwODwvY1llYXI+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYXR5cGIyNSI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAxNi9qLmNpdGllcy4yMDA2LjAyLjAwMjwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImF0eXBiMjYiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5BcmhpdGVjdHVyYTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NzA8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+NDY8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDY8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImF0eXBiMjciPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5BcmhpdGVjdHVyYTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTM8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MTwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MTk3OTwvY1llYXI+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYXR5cGIyOCI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPklERUEgQXJ0cyBhbmQgU29jaWV0eTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTI1PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjE1PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDAzPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJhdHlwYjI5Ij4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZV90aXRsZT5WaXRhbCBzdGF0aXN0aWNzIGluIHRoZSBjaXR5IG9mIENsdWotTmFwb2NhPC92b2x1bWVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDA3PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJhdHlwYjMwIj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZV90aXRsZT5UaGUgU29jaWFsIEltcGFjdCBvZiBJbmZvcm1hbCBFY29ub21pZXMgaW4gRWFzdGVybiBFdXJvcGU8L3ZvbHVtZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDI8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImF0eXBiMzEiPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lX3RpdGxlPlRoZSBEZWZlYXQgb2YgU29saWRhcml0eTogQW5nZXIgYW5kIFBvbGl0aWNzIGluIFBvc3Rjb21tdW5pc3QgRXVyb3BlPC92b2x1bWVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDA1PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJhdHlwYjMyIj4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+U3R1ZGlhIFNvY2lvbG9naWU8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjk8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+NTM8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGlzc3VlPjI8L2lzc3VlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwOTwvY1llYXI+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYXR5cGIzMyI+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWVfdGl0bGU+VXJiYW4gR2VvZ3JhcGh5OiBBIEdsb2JhbCBQZXJzcGVjdGl2ZTwvdm9sdW1lX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwOTwvY1llYXI+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYXR5cGIzNCI+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+UGV0cm92aWNpwqBOLkhlYWRsaW5lcyBvZiBOYXRpb25hbGlzbSwgU3VidGV4dHMgb2YgQ2xhc3MuIEthbGLCoEQuLCBIYWxtYWnCoEcuLCBlZC4gTmV3IFlvcms6IEJlcmdoYWhuIEJvb2tzOyAyMDExOjU3LTc3LjwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImF0eXBiMzUiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5JbnRlcm5hdGlvbmFsIExhYm9yIGFuZCBXb3JraW5nLWNsYXNzIEhpc3Rvcnk8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjE8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+Njg8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDU8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pIHByb3ZpZGVyPSJjcm9zc3JlZiI+MTAuMTAxNy9TMDE0NzU0NzkwNTAwMDE2NTwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImF0eXBiMzYiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5FYXN0IENlbnRyYWwgRXVyb3BlPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xMzA8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MzY8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGlzc3VlPjE8L2lzc3VlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwOTwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2kgcHJvdmlkZXI9ImNyb3NzcmVmIj4xMC4xMTYzLzE4NzYzMzAwOVg0MTE1Mzk8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJhdHlwYjM3Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+RGViYXR0ZTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NTU8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+MTc8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGlzc3VlPjE8L2lzc3VlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwOTwvY1llYXI+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYXR5cGIzOCI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkpvdXJuYWwgb2YgSG91c2luZyBhbmQgdGhlIEJ1aWx0IEVudmlyb25tZW50PC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT40NzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xODwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8aXNzdWU+MTwvaXNzdWU+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDAzPC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJhdHlwYjM5Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMTc3LzAwMTEzOTIxMDQwNDY2MTk8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJhdHlwYjQwIj4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+Q2l0eTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MjkyPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjEzPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxpc3N1ZT4yPC9pc3N1ZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDk8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImF0eXBiNDEiPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwODAvMTM2MDQ4MTEwMDM2MzM3MTk8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJhdHlwYjQyIj4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+QW50aXBvZGU8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjI4MzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT40MDwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8aXNzdWU+MjwvaXNzdWU+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDA5PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJhdHlwYjQzIj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDAyLzk3ODA0NzA3MTI3MzMuY2gzPC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYXR5cGI0NCI+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWVfdGl0bGU+VGhlIFBvc3Qtc29jaWFsaXN0IENpdHk6IFVyYmFuIEZvcm0gYW5kIFNwYWNlIFRyYW5zZm9ybWF0aW9ucyBpbiBDZW50cmFsIGFuZCBFYXN0ZXJuIEV1cm9wZSBhZnRlciBTb2NpYWxpc208L3ZvbHVtZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDc8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImF0eXBiNDUiPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExMTEvai4xNDY3LTgzMzAuMjAwOC4wMDU3My54PC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYXR5cGI0NiI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTA4MC8wMjY3MzAzOTk4MjY3ODwvZG9pPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImF0eXBiNDciPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPlN6ZWzDqW55acKgSS4sS29zdGVsbG/CoEUuVGhlIE5ldyBJbnN0aXR1dGlvbmFsaXNtIGluIFNvY2lvbG9neS4gTmVlwqBWLiwgQnJpbnRvbsKgTS4sIGVkLiBOZXcgWW9yazogUnVzc2VsbCBTYWdlIEZvdW5kYXRpb247IDE5OTg6MzA1LTMyNi48L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJhdHlwYjQ4Ij4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZV90aXRsZT5UaGUgUG92ZXJ0eSBvZiBUaGVvcnkgYW5kIE90aGVyIEVzc2F5czwvdm9sdW1lX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MTk3ODwvY1llYXI+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYXR5cGI0OSI+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWVfdGl0bGU+U3RhbGluaXNtIGZvciBBbGwgU2Vhc29uczogQSBQb2xpdGljYWwgSGlzdG9yeSBvZiBSb21hbmlhbiBDb21tdW5pc208L3ZvbHVtZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDM8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImF0eXBiNTAiPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPlRvc2ljc8KgSS5UcmFuc2Zvcm1hdGlvbiBvZiBDaXRpZXMgaW4gQ2VudHJhbCBhbmQgRWFzdGVybiBFdXJvcGUuIEhhbWlsdG9uwqBGLiBFLiBJLiwgRGltaXRyb3dza2EgQW5kcmV3c8KgSy4sIFBpY2hsZXItTWlsYW5vdmljwqBOLiwgZWQuIFRva3lvOiBVbml0ZWQgTmF0aW9ucyBVbml2ZXJzaXR5IFByZXNzOyAyMDA2OjQ3LTc4LjwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImF0eXBiNTEiPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lX3RpdGxlPlPEg3DEg3RvciDDrm4gUGlhxaNhIERpc2NvcmRpZWk8L3ZvbHVtZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDU8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9ImF0eXBiNTIiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5JREVBIEFydGEgxZ9pIFNvY2lldGF0ZTwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MTMwPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjU8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGlzc3VlPjM8L2lzc3VlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwMzwvY1llYXI+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iYXR5cGI1MyI+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWVfdGl0bGU+VGhlIFVyYmFuIE1vc2FpYyBvZiBQb3N0LXNvY2lhbGlzdCBFYXN0ZXJuIEV1cm9wZTogU3BhY2UsIEluc3RpdHV0aW9ucyBhbmQgUG9saWN5PC92b2x1bWVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDA2PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSJhdHlwYjU0Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDE3L1MwMDEwNDE3NTAwMDE5OTAzPC9kb2k+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgIDwvY2l0YXRpb25fbGlzdD4NCiAgICAgICAgICAgICAgPC9qb3VybmFsX2FydGljbGU+DQogICAgICAgICAgICA8L2pvdXJuYWw+DQogICAgICAgICAgPC9jcm9zc3JlZj4NCiAgICAgICAgPC9kb2lfcmVjb3JkPg0KICAgICAgPC9xdWVyeT4NCiAgICA8L2JvZHk+DQogIDwvcXVlcnlfcmVzdWx0Pg0KPC9jcm9zc3JlZl9yZXN1bHQ+
98
+ http_version:
99
+ recorded_at: Mon, 12 Oct 2020 20:19:20 GMT
100
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,98 @@
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.7.2; 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
+ - Mon, 12 Oct 2020 21:10:28 GMT
21
+ Content-Type:
22
+ - application/json;charset=UTF-8
23
+ Connection:
24
+ - keep-alive
25
+ Set-Cookie:
26
+ - __cfduid=d46720dbaaa6164af527771d3ccf0993e1602537028; expires=Wed, 11-Nov-20
27
+ 21:10:28 GMT; path=/; domain=.doi.org; HttpOnly; SameSite=Lax; Secure
28
+ Cf-Cache-Status:
29
+ - DYNAMIC
30
+ Cf-Request-Id:
31
+ - 05c03f924a0000dfd3801da200000001
32
+ Expect-Ct:
33
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
34
+ Report-To:
35
+ - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report?lkg-colo=71&lkg-time=1602537028"}],"group":"cf-nel","max_age":604800}'
36
+ Nel:
37
+ - '{"report_to":"cf-nel","max_age":604800}'
38
+ Strict-Transport-Security:
39
+ - max-age=31536000; includeSubDomains; preload
40
+ Server:
41
+ - cloudflare
42
+ Cf-Ray:
43
+ - 5e13ceca1d6bdfd3-FRA
44
+ Alt-Svc:
45
+ - h3-27=":443"; ma=86400, h3-28=":443"; ma=86400, h3-29=":443"; ma=86400
46
+ body:
47
+ encoding: ASCII-8BIT
48
+ string: |-
49
+ [
50
+ {
51
+ "DOI": "10.1007",
52
+ "RA": "Crossref"
53
+ }
54
+ ]
55
+ http_version:
56
+ recorded_at: Mon, 12 Oct 2020 21:10:28 GMT
57
+ - request:
58
+ method: get
59
+ uri: https://api.crossref.org/works/10.1007/978-3-642-34922-5_19/transform/application/vnd.crossref.unixsd+xml
60
+ body:
61
+ encoding: US-ASCII
62
+ string: ''
63
+ headers:
64
+ User-Agent:
65
+ - Mozilla/5.0 (compatible; Maremma/4.7.2; mailto:info@datacite.org)
66
+ Accept:
67
+ - text/xml
68
+ response:
69
+ status:
70
+ code: 200
71
+ message: OK
72
+ headers:
73
+ Link:
74
+ - <http://dx.doi.org/10.1007/978-3-642-34922-5_19>; rel="canonical", <http://www.springerlink.com/index/pdf/10.1007/978-3-642-34922-5_19>;
75
+ version="vor"; rel="item"
76
+ Access-Control-Allow-Origin:
77
+ - "*"
78
+ Access-Control-Allow-Headers:
79
+ - X-Requested-With
80
+ Content-Length:
81
+ - '20454'
82
+ Server:
83
+ - http-kit
84
+ Date:
85
+ - Mon, 12 Oct 2020 21:10:29 GMT
86
+ X-Rate-Limit-Limit:
87
+ - '50'
88
+ X-Rate-Limit-Interval:
89
+ - 1s
90
+ Connection:
91
+ - close
92
+ body:
93
+ encoding: ASCII-8BIT
94
+ string: !binary |-
95
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGNyb3NzcmVmX3Jlc3VsdCB4bWxucz0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvcXJzY2hlbWEvMy4wIiB2ZXJzaW9uPSIzLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcvcXJzY2hlbWEvMy4wIGh0dHA6Ly93d3cuY3Jvc3NyZWYub3JnL3NjaGVtYXMvY3Jvc3NyZWZfcXVlcnlfb3V0cHV0My4wLnhzZCI+DQogIDxxdWVyeV9yZXN1bHQ+DQogICAgPGhlYWQ+DQogICAgICA8ZG9pX2JhdGNoX2lkPm5vbmU8L2RvaV9iYXRjaF9pZD4NCiAgICA8L2hlYWQ+DQogICAgPGJvZHk+DQogICAgICA8cXVlcnkgc3RhdHVzPSJyZXNvbHZlZCI+DQogICAgICAgIDxkb2kgdHlwZT0iYm9va19jb250ZW50Ij4xMC4xMDA3Lzk3OC0zLTY0Mi0zNDkyMi01XzE5PC9kb2k+DQogICAgICAgIDxjcm0taXRlbSBuYW1lPSJwdWJsaXNoZXItbmFtZSIgdHlwZT0ic3RyaW5nIj5TcHJpbmdlciBTY2llbmNlIGFuZCBCdXNpbmVzcyBNZWRpYSBMTEM8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0icHJlZml4LW5hbWUiIHR5cGU9InN0cmluZyI+U3ByaW5nZXItVmVybGFnPC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9Im1lbWJlci1pZCIgdHlwZT0ibnVtYmVyIj4yOTc8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iY2l0YXRpb24taWQiIHR5cGU9Im51bWJlciI+NTgzNjE5NTk8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iYm9vay1pZCIgdHlwZT0ibnVtYmVyIj4xMTYzNzU2PC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9InNlcmllcy1pZCIgdHlwZT0ibnVtYmVyIj4yNjc4ODA8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0iZGVwb3NpdC10aW1lc3RhbXAiIHR5cGU9Im51bWJlciI+MjAxMjEwMzExNjE1NDQ8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0ib3duZXItcHJlZml4IiB0eXBlPSJzdHJpbmciPjEwLjEwMDc8L2NybS1pdGVtPg0KICAgICAgICA8Y3JtLWl0ZW0gbmFtZT0ibGFzdC11cGRhdGUiIHR5cGU9ImRhdGUiPjIwMTktMDctMDVUMDA6MDk6NThaPC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9ImNyZWF0ZWQiIHR5cGU9ImRhdGUiPjIwMTItMTAtMzFUMTE6MTU6NDhaPC9jcm0taXRlbT4NCiAgICAgICAgPGNybS1pdGVtIG5hbWU9ImNpdGVkYnktY291bnQiIHR5cGU9Im51bWJlciI+MTwvY3JtLWl0ZW0+DQogICAgICAgIDxkb2lfcmVjb3JkPg0KICAgICAgICAgIDxjcm9zc3JlZiB4bWxucz0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcveHNjaGVtYS8xLjAiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5jcm9zc3JlZi5vcmcveHNjaGVtYS8xLjAgaHR0cDovL2RvaS5jcm9zc3JlZi5vcmcvc2NoZW1hcy91bml4cmVmMS4wLnhzZCI+DQogICAgICAgICAgICA8Ym9vayBib29rX3R5cGU9Im90aGVyIj4NCiAgICAgICAgICAgICAgPGJvb2tfc2VyaWVzX21ldGFkYXRhPg0KICAgICAgICAgICAgICAgIDxzZXJpZXNfbWV0YWRhdGE+DQogICAgICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgICAgICA8dGl0bGU+U3R1ZGllcyBpbiBGdXp6aW5lc3MgYW5kIFNvZnQgQ29tcHV0aW5nPC90aXRsZT4NCiAgICAgICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICAgICAgPGlzc24gbWVkaWFfdHlwZT0icHJpbnQiPjE0MzQtOTkyMjwvaXNzbj4NCiAgICAgICAgICAgICAgICAgIDxpc3NuIG1lZGlhX3R5cGU9ImVsZWN0cm9uaWMiPjE4NjAtMDgwODwvaXNzbj4NCiAgICAgICAgICAgICAgICA8L3Nlcmllc19tZXRhZGF0YT4NCiAgICAgICAgICAgICAgICA8Y29udHJpYnV0b3JzPg0KICAgICAgICAgICAgICAgICAgPHBlcnNvbl9uYW1lIGNvbnRyaWJ1dG9yX3JvbGU9ImVkaXRvciIgc2VxdWVuY2U9ImZpcnN0Ij4NCiAgICAgICAgICAgICAgICAgICAgPGdpdmVuX25hbWU+Um9uYWxkIFIuPC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgICA8c3VybmFtZT5ZYWdlcjwvc3VybmFtZT4NCiAgICAgICAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICAgICAgICA8cGVyc29uX25hbWUgY29udHJpYnV0b3Jfcm9sZT0iZWRpdG9yIiBzZXF1ZW5jZT0iYWRkaXRpb25hbCI+DQogICAgICAgICAgICAgICAgICAgIDxnaXZlbl9uYW1lPkFsaSBNLjwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPHN1cm5hbWU+QWJiYXNvdjwvc3VybmFtZT4NCiAgICAgICAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICAgICAgICA8cGVyc29uX25hbWUgY29udHJpYnV0b3Jfcm9sZT0iZWRpdG9yIiBzZXF1ZW5jZT0iYWRkaXRpb25hbCI+DQogICAgICAgICAgICAgICAgICAgIDxnaXZlbl9uYW1lPk1hcmVrIFouPC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgICA8c3VybmFtZT5SZWZvcm1hdDwvc3VybmFtZT4NCiAgICAgICAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICAgICAgICA8cGVyc29uX25hbWUgY29udHJpYnV0b3Jfcm9sZT0iZWRpdG9yIiBzZXF1ZW5jZT0iYWRkaXRpb25hbCI+DQogICAgICAgICAgICAgICAgICAgIDxnaXZlbl9uYW1lPlNoYWhuYXogTi48L2dpdmVuX25hbWU+DQogICAgICAgICAgICAgICAgICAgIDxzdXJuYW1lPlNoYWhiYXpvdmE8L3N1cm5hbWU+DQogICAgICAgICAgICAgICAgICA8L3BlcnNvbl9uYW1lPg0KICAgICAgICAgICAgICAgIDwvY29udHJpYnV0b3JzPg0KICAgICAgICAgICAgICAgIDx0aXRsZXM+DQogICAgICAgICAgICAgICAgICA8dGl0bGU+U29mdCBDb21wdXRpbmc6IFN0YXRlIG9mIHRoZSBBcnQgVGhlb3J5IGFuZCBOb3ZlbCBBcHBsaWNhdGlvbnM8L3RpdGxlPg0KICAgICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICAgIDx2b2x1bWU+MjkxPC92b2x1bWU+DQogICAgICAgICAgICAgICAgPHB1YmxpY2F0aW9uX2RhdGUgbWVkaWFfdHlwZT0icHJpbnQiPg0KICAgICAgICAgICAgICAgICAgPHllYXI+MjAxMzwveWVhcj4NCiAgICAgICAgICAgICAgICA8L3B1YmxpY2F0aW9uX2RhdGU+DQogICAgICAgICAgICAgICAgPGlzYm4gbWVkaWFfdHlwZT0icHJpbnQiPjk3OC0zLTY0Mi0zNDkyMS04PC9pc2JuPg0KICAgICAgICAgICAgICAgIDxpc2JuIG1lZGlhX3R5cGU9ImVsZWN0cm9uaWMiPjk3OC0zLTY0Mi0zNDkyMi01PC9pc2JuPg0KICAgICAgICAgICAgICAgIDxwdWJsaXNoZXI+DQogICAgICAgICAgICAgICAgICA8cHVibGlzaGVyX25hbWU+U3ByaW5nZXIgQmVybGluIEhlaWRlbGJlcmc8L3B1Ymxpc2hlcl9uYW1lPg0KICAgICAgICAgICAgICAgICAgPHB1Ymxpc2hlcl9wbGFjZT5CZXJsaW4sIEhlaWRlbGJlcmc8L3B1Ymxpc2hlcl9wbGFjZT4NCiAgICAgICAgICAgICAgICA8L3B1Ymxpc2hlcj4NCiAgICAgICAgICAgICAgICA8ZG9pX2RhdGE+DQogICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwMDcvOTc4LTMtNjQyLTM0OTIyLTU8L2RvaT4NCiAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vd3d3LnNwcmluZ2VybGluay5jb20vaW5kZXgvMTAuMTAwNy85NzgtMy02NDItMzQ5MjItNTwvcmVzb3VyY2U+DQogICAgICAgICAgICAgICAgICA8Y29sbGVjdGlvbiBwcm9wZXJ0eT0iY3Jhd2xlci1iYXNlZCIgc2V0YnlJRD0ic3ByaW5nZXIiPg0KICAgICAgICAgICAgICAgICAgICA8aXRlbSBjcmF3bGVyPSJpUGFyYWRpZ21zIj4NCiAgICAgICAgICAgICAgICAgICAgICA8cmVzb3VyY2U+aHR0cDovL3d3dy5zcHJpbmdlcmxpbmsuY29tL2luZGV4L3BkZi8xMC4xMDA3Lzk3OC0zLTY0Mi0zNDkyMi01PC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgICAgPC9pdGVtPg0KICAgICAgICAgICAgICAgICAgPC9jb2xsZWN0aW9uPg0KICAgICAgICAgICAgICAgIDwvZG9pX2RhdGE+DQogICAgICAgICAgICAgIDwvYm9va19zZXJpZXNfbWV0YWRhdGE+DQogICAgICAgICAgICAgIDxjb250ZW50X2l0ZW0gY29tcG9uZW50X3R5cGU9ImNoYXB0ZXIiIGxldmVsX3NlcXVlbmNlX251bWJlcj0iMSIgcHVibGljYXRpb25fdHlwZT0iZnVsbF90ZXh0Ij4NCiAgICAgICAgICAgICAgICA8Y29udHJpYnV0b3JzPg0KICAgICAgICAgICAgICAgICAgPHBlcnNvbl9uYW1lIGNvbnRyaWJ1dG9yX3JvbGU9ImF1dGhvciIgc2VxdWVuY2U9ImZpcnN0Ij4NCiAgICAgICAgICAgICAgICAgICAgPGdpdmVuX25hbWU+QWxpPC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgICA8c3VybmFtZT5SYXppYjwvc3VybmFtZT4NCiAgICAgICAgICAgICAgICAgIDwvcGVyc29uX25hbWU+DQogICAgICAgICAgICAgICAgICA8cGVyc29uX25hbWUgY29udHJpYnV0b3Jfcm9sZT0iYXV0aG9yIiBzZXF1ZW5jZT0iYWRkaXRpb25hbCI+DQogICAgICAgICAgICAgICAgICAgIDxnaXZlbl9uYW1lPlNjb3R0PC9naXZlbl9uYW1lPg0KICAgICAgICAgICAgICAgICAgICA8c3VybmFtZT5EaWNrPC9zdXJuYW1lPg0KICAgICAgICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgICAgICAgIDxwZXJzb25fbmFtZSBjb250cmlidXRvcl9yb2xlPSJhdXRob3IiIHNlcXVlbmNlPSJhZGRpdGlvbmFsIj4NCiAgICAgICAgICAgICAgICAgICAgPGdpdmVuX25hbWU+VmluY2VudDwvZ2l2ZW5fbmFtZT4NCiAgICAgICAgICAgICAgICAgICAgPHN1cm5hbWU+R2F1ZGV0PC9zdXJuYW1lPg0KICAgICAgICAgICAgICAgICAgPC9wZXJzb25fbmFtZT4NCiAgICAgICAgICAgICAgICA8L2NvbnRyaWJ1dG9ycz4NCiAgICAgICAgICAgICAgICA8dGl0bGVzPg0KICAgICAgICAgICAgICAgICAgPHRpdGxlPkxvZy1Eb21haW4gQXJpdGhtZXRpYyBmb3IgSGlnaC1TcGVlZCBGdXp6eSBDb250cm9sIG9uIGEgRmllbGQtUHJvZ3JhbW1hYmxlIEdhdGUgQXJyYXk8L3RpdGxlPg0KICAgICAgICAgICAgICAgIDwvdGl0bGVzPg0KICAgICAgICAgICAgICAgIDxjb21wb25lbnRfbnVtYmVyPkNoYXB0ZXIgMTk8L2NvbXBvbmVudF9udW1iZXI+DQogICAgICAgICAgICAgICAgPHB1YmxpY2F0aW9uX2RhdGUgbWVkaWFfdHlwZT0icHJpbnQiPg0KICAgICAgICAgICAgICAgICAgPHllYXI+MjAxMzwveWVhcj4NCiAgICAgICAgICAgICAgICA8L3B1YmxpY2F0aW9uX2RhdGU+DQogICAgICAgICAgICAgICAgPHBhZ2VzPg0KICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MjY5PC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgPGxhc3RfcGFnZT4yODc8L2xhc3RfcGFnZT4NCiAgICAgICAgICAgICAgICA8L3BhZ2VzPg0KICAgICAgICAgICAgICAgIDxkb2lfZGF0YT4NCiAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTAwNy85NzgtMy02NDItMzQ5MjItNV8xOTwvZG9pPg0KICAgICAgICAgICAgICAgICAgPHJlc291cmNlPmh0dHA6Ly9saW5rLnNwcmluZ2VyLmNvbS8xMC4xMDA3Lzk3OC0zLTY0Mi0zNDkyMi01XzE5PC9yZXNvdXJjZT4NCiAgICAgICAgICAgICAgICAgIDxjb2xsZWN0aW9uIHByb3BlcnR5PSJjcmF3bGVyLWJhc2VkIiBzZXRieUlEPSJzcHJpbmdlciI+DQogICAgICAgICAgICAgICAgICAgIDxpdGVtIGNyYXdsZXI9ImlQYXJhZGlnbXMiPg0KICAgICAgICAgICAgICAgICAgICAgIDxyZXNvdXJjZT5odHRwOi8vd3d3LnNwcmluZ2VybGluay5jb20vaW5kZXgvcGRmLzEwLjEwMDcvOTc4LTMtNjQyLTM0OTIyLTVfMTk8L3Jlc291cmNlPg0KICAgICAgICAgICAgICAgICAgICA8L2l0ZW0+DQogICAgICAgICAgICAgICAgICA8L2NvbGxlY3Rpb24+DQogICAgICAgICAgICAgICAgPC9kb2lfZGF0YT4NCiAgICAgICAgICAgICAgICA8Y2l0YXRpb25fbGlzdD4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE5X0NSMSI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkluZm9ybWF0aW9uIGFuZCBDb250cm9sPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkwuIFphZGVoPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+ODwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8aXNzdWU+MzwvaXNzdWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjMzODwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE5NjU8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwMTYvUzAwMTktOTk1OCg2NSk5MDI0MS1YPC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+WmFkZWgsIEwuOiBGdXp6eSBTZXRzLiBJbmZvcm1hdGlvbiBhbmQgQ29udHJvbMKgOCgzKSwgMzM44oCTMzUzICgxOTY1KTwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE5X0NSMiI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPklFRUUgVHJhbnMuIENvbXB1dGVyczwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5FLkguIE1hbWRhbmk8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4yNjwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xMTgyPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MTk3NzwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTEwOS9UQy4xOTc3LjE2NzQ3Nzk8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5NYW1kYW5pLCBFLkguOiBBcHBsaWNhdGlvbiBvZiBGdXp6eSBMb2dpYyB0byBBcHByb3hpbWF0ZSBSZWFzb25pbmcuIElFRUUgVHJhbnMuIENvbXB1dGVyc8KgKDI2KSwgMTE4MuKAkzExOTEgKDE5NzcpPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTlfQ1IzIj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjExMDkvRlVaWlkuMjAwNy40Mjk1NjY5PC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+SGFuLCBJLlMuOiBNZW1iZXJzaGlwIEZ1bmN0aW9uIENpcmN1aXQgZm9yIE5ldXJhbC9GdXp6eSBIYXJkd2FyZSBvZiBBbmFsb2ctTWl4ZWQgT3BlcmF0aW9uIEJhc2VkIG9uIHRoZSBQcm9ncmFtbWFibGUgQ29uZHVjdGFuY2UuIEluOiBJRUVFIEludC4gRnV6enkgU3lzdGVtcyBDb25mLiwgcHAuIDHigJM0ICgyMDA3KTwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE5X0NSNCI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkVsZWN0cm9uaWNzIExldHRlcnM8L2pvdXJuYWxfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+TC4gVGlnYWVydTwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjM5PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxpc3N1ZT44PC9pc3N1ZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NjQyPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwMzwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTA0OS9lbDoyMDAzMDQzNDwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPlRpZ2FlcnUsIEwuOiBQcm9ncmFtbWFibGUgYW5hbG9ndWUgbWVtYmVyc2hpcCBmdW5jdGlvbiBjaXJjdWl0IGZvciBoeWJyaWQtbW9kZSBmdXp6eSBzeXN0ZW1zLiBFbGVjdHJvbmljcyBMZXR0ZXJzwqAzOSg4KSwgNjQy4oCTNjQ0ICgyMDAzKTwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE5X0NSNSI+DQogICAgICAgICAgICAgICAgICAgIDxkb2kgcHJvdmlkZXI9ImNyb3NzcmVmIj4xMC4xMTA5L05BRklQUy4yMDAyLjEwMTgwMjE8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5LYWxheWtvdiwgSS4sIFRvbHQsIEcuOiBGYXN0IGZ1enp5IHNpZ25hbCBhbmQgaW1hZ2UgcHJvY2Vzc2luZyBoYXJkd2FyZS4gSW46IEFubnVhbCBNZWV0aW5nIG9mIHRoZSBOb3J0aCBBbWVyaWNhbiBGdXp6eSBJbmZvcm1hdGlvbiBQcm9jZXNzaW5nIFNvY2lldHksIHBwLiA34oCTMTIgKDIwMDIpPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTlfQ1I2Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjExMDkvTkFGSVBTLjIwMDguNDUzMTI1ODwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPkRpY2ssIFMuLCBHYXVkZXQsIFYuLCBCYWksIEguOiBCaXQtc2VyaWFsIGFyaXRobWV0aWM6IEEgbm92ZWwgYXBwcm9hY2ggdG8gZnV6enkgaGFyZHdhcmUgaW1wbGVtZW50YXRpb24uIEluOiBBbm51YWwgTWVldGluZyBvZiB0aGUgTm9ydGggQW1lcmljYW4gRnV6enkgSW5mb3JtYXRpb24gUHJvY2Vzc2luZyBTb2NpZXR5LCBwcC4gMeKAkzYgKDIwMDgpPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTlfQ1I3Ij4NCiAgICAgICAgICAgICAgICAgICAgPGpvdXJuYWxfdGl0bGU+SUVFRSBUcmFuc2FjdGlvbnMgb24gU3lzdGVtcywgTWFuIGFuZCBDeWJlcm5ldGljcywgUGFydCBBPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPlouIFNhbGNpYzwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjMxPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxpc3N1ZT42PC9pc3N1ZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NzMxPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwMTwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTEwOS8zNDY4Ljk4MzQzMDwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPlNhbGNpYywgWi46IEhpZ2gtc3BlZWQgY3VzdG9taXphYmxlIGZ1enp5LWxvZ2ljIHByb2Nlc3NvcjogYXJjaGl0ZWN0dXJlIGFuZCBpbXBsZW1lbnRhdGlvbi4gSUVFRSBUcmFuc2FjdGlvbnMgb24gU3lzdGVtcywgTWFuIGFuZCBDeWJlcm5ldGljcywgUGFydCBBwqAzMSg2KSwgNzMx4oCTNzM3ICgyMDAxKTwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE5X0NSOCI+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+Ui5SLiBTdG9sbDwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MTk3OTwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWVfdGl0bGU+U2V0IFRoZW9yeSBhbmQgTG9naWM8L3ZvbHVtZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5TdG9sbCwgUi5SLjogU2V0IFRoZW9yeSBhbmQgTG9naWMuIERvdmVyIFB1YmxpY2F0aW9ucywgTmV3IFlvcmsgKDE5NzkpPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTlfQ1I5Ij4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5ELlAuIEZpbGV2PC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4xOTk0PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZV90aXRsZT5Fc3NlbnRpYWxzIG9mIEZ1enp5IE1vZGVsaW5nIGFuZCBDb250cm9sPC92b2x1bWVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+RmlsZXYsIEQuUC4sIFlhZ2VyLCBSLlIuOiBFc3NlbnRpYWxzIG9mIEZ1enp5IE1vZGVsaW5nIGFuZCBDb250cm9sLiBXaWxleSwgTmV3IFlvcmsgKDE5OTQpPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTlfQ1IxMCI+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+Si4gSmFudHplbjwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwNzwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWVfdGl0bGU+Rm91bmRhdGlvbnMgb2YgRnV6enkgQ29udHJvbDwvdm9sdW1lX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjEwMDIvOTc4MDQ3MDA2MTE3NjwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPkphbnR6ZW4sIEouOiBGb3VuZGF0aW9ucyBvZiBGdXp6eSBDb250cm9sLiBXaWxleSwgTmV3IFlvcmsgKDIwMDcpPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTlfQ1IxMSI+DQogICAgICAgICAgICAgICAgICAgIDxkb2kgcHJvdmlkZXI9ImNyb3NzcmVmIj4xMC4xMDE2L0I5NzgtMDc1MDY3NjA1LTIvNTAwMDMtWDwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPklicmFoaW0sIEEuOiBGdXp6eSBMb2dpYyBmb3IgRW1iZWRkZWQgU3lzdGVtcyBBcHBsaWNhdGlvbnMuIEVsc2V2aWVyICgyMDA0KTwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE5X0NSMTIiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5JRUVFIFRyYW5zLiBvbiBTeXN0ZW1zLCBNYW4sIGFuZCBDeWJlcm5ldGljcyDigJMgUGFydCBBPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPlkuRC4gS2ltPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWU+Mjc8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGlzc3VlPjE8L2lzc3VlPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT40NTwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE5OTc8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExMDkvMzQ2OC41NTMyMjQ8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5LaW0sIFkuRC46IEhpZ2ggU3BlZWQgRmxleGlibGUgRnV6enkgSGFyZHdhcmUgZm9yIEZ1enp5IEluZm9ybWF0aW9uIFByb2Nlc3NpbmcuIElFRUUgVHJhbnMuIG9uIFN5c3RlbXMsIE1hbiwgYW5kIEN5YmVybmV0aWNzIOKAkyBQYXJ0IEHCoDI3KDEpLCA0NeKAkzU2ICgxOTk3KTwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE5X0NSMTMiPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkMuUy4gTGVlPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4xOTk2PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZV90aXRsZT5OZXVyYWwgRnV6enkgU3lzdGVtczogQSBOZXVyby1GdXp6eSBTeW5lcmdpc20gdG8gSW50ZWxsaWdlbnQgU3lzdGVtczwvdm9sdW1lX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPkxlZSwgQy5TLiwgTGluLCBDLjogTmV1cmFsIEZ1enp5IFN5c3RlbXM6IEEgTmV1cm8tRnV6enkgU3luZXJnaXNtIHRvIEludGVsbGlnZW50IFN5c3RlbXMuIFByZW50aWNlIEhhbGwsIEFsZXhhbmRyaWEgKDE5OTYpPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTlfQ1IxNCI+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+R2luYXJ0LCBBLiwgU2FuY2hleiwgRy46IEZhc3QgRGVmdXp6aWZpY2F0aW9uIE1ldGhvZCBCYXNlZCBvbiBDZW50cm9pZCBFc3RpbWF0aW9uLiBBcHBsaWVkIE1vZGVsbGluZyBhbmQgU2ltdWxhdGlvbiAoMjAwMik8L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxOV9DUjE1Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjExNDUvMzI2NjE5LjMyNjY4ODwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPlJ1bmtsZXIsIFQuLCBHbGVzbmVyLCBNLjogREVDQURF4oCUZmFzdCBjZW50cm9pZCBhcHByb3hpbWF0aW9uIGRlZnV6emlmaWNhdGlvbiBmb3IgcmVhbCB0aW1lIGZ1enp5IGNvbnRyb2wgYXBwbGljYXRpb25zLiBJbjogUHJvY2VlZGluZ3Mgb2YgdGhlIDE5OTQgQUNNIFN5bXBvc2l1bSBvbiBBcHBsaWVkIENvbXB1dGluZywgcHAuIDE2MeKAkzE2NSAoMTk5NCk8L3Vuc3RydWN0dXJlZF9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDwvY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8Y2l0YXRpb24ga2V5PSIxOV9DUjE2Ij4NCiAgICAgICAgICAgICAgICAgICAgPGRvaSBwcm92aWRlcj0iY3Jvc3NyZWYiPjEwLjExMDkvSUNNTk4uMTk5NC41OTM3MjY8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5FaXNlbGUsIE0uLCBIZW50c2NoZWwsIEsuLCBLdW5lbXVuZCwgVC46IEhhcmR3YXJlIHJlYWxpemF0aW9uIG9mIGZhc3QgZGVmdXp6aWZpY2F0aW9uIGJ5IGFkYXB0aXZlIGludGVncmF0aW9uLiBJbjogUHJvY2VlZGluZ3Mgb2YgdGhlIEZvdXJ0aCBJbnRlcm5hdGlvbmFsIENvbmZlcmVuY2Ugb24gTWljcm9lbGVjdHJvbmljcyBmb3IgTmV1cmFsIE5ldHdvcmtzIGFuZCBGdXp6eSBTeXN0ZW1zLCBwcC4gMzE44oCTMzIzICgxOTk0KTwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE5X0NSMTciPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5GdXp6eSBTZXRzIGFuZCBTeXN0ZW1zPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkUuIEJyb2VraG92ZW48L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4xNTc8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGlzc3VlPjc8L2lzc3VlPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT45MDQ8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDA2PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDE2L2ouZnNzLjIwMDUuMTEuMDA1PC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+QnJvZWtob3ZlbiwgRS4sIEJhZXRzLCBCLjogRmFzdCBhbmQgYWNjdXJhdGUgY2VudGVyIG9mIGdyYXZpdHkgZGVmdXp6aWZpY2F0aW9uIG9mIGZ1enp5IHN5c3RlbSBvdXRwdXRzIGRlZmluZWQgb24gdHJhcGV6b2lkYWwgZnV6enkgcGFydGl0aW9ucy4gRnV6enkgU2V0cyBhbmQgU3lzdGVtc8KgMTU3KDcpLCA5MDTigJM5MTggKDIwMDYpPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTlfQ1IxOCI+DQogICAgICAgICAgICAgICAgICAgIDxqb3VybmFsX3RpdGxlPkludGVybmF0aW9uYWwgSm91cm5hbCBvZiBDb21wdXRhdGlvbmFsIENvZ25pdGlvbjwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5BLiBQYXRlbDwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjI8L3ZvbHVtZT4NCiAgICAgICAgICAgICAgICAgICAgPGlzc3VlPjM8L2lzc3VlPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT4xMTU8L2ZpcnN0X3BhZ2U+DQogICAgICAgICAgICAgICAgICAgIDxjWWVhcj4yMDA0PC9jWWVhcj4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5QYXRlbCwgQS46IFRyYW5zZm9ybWF0aW9uIGZ1bmN0aW9ucyBmb3IgdHJhcGV6b2lkYWwgbWVtYmVyc2hpcCBmdW5jdGlvbnMuIEludGVybmF0aW9uYWwgSm91cm5hbCBvZiBDb21wdXRhdGlvbmFsIENvZ25pdGlvbsKgMigzKSwgMTE14oCTMTM1ICgyMDA0KTwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE5X0NSMTkiPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPlMuLUcuIExlZTwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8Zmlyc3RfcGFnZT45MzwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjIwMDc8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8c2VyaWVzX3RpdGxlPkxlY3R1cmUgTm90ZXMgaW4gQXJ0aWZpY2lhbCBJbnRlbGxpZ2VuY2U8L3Nlcmllc190aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZV90aXRsZT5Lbm93bGVkZ2UtQmFzZWQgSW50ZWxsaWdlbnQgSW5mb3JtYXRpb24gYW5kIEVuZ2luZWVyaW5nIFN5c3RlbXM8L3ZvbHVtZV90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGRvaT4xMC4xMDA3Lzk3OC0zLTU0MC03NDgxOS05XzEyPC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+TGVlLCBTLi1HLiwgTWl5YXpha2ksIE0uLCBLaW0sIEouLUkuOiBEZXNpZ24gb2YgVmVyeSBIaWdoLVNwZWVkIEludGVnZXIgRnV6enkgQ29udHJvbGxlciBXaXRob3V0IE11bHRpcGxpY2F0aW9ucyBieSBVc2luZyBWSERMLiBJbjogQXBvbGxvbmksIEIuLCBIb3dsZXR0LCBSLkouLCBKYWluLCBMLiAoZWRzLikgS0VTIDIwMDcsIFBhcnQgSS4gTE5DUyAoTE5BSSksIHZvbC7CoDQ2OTIsIHBwLiA5M+KAkzEwMC4gU3ByaW5nZXIsIEhlaWRlbGJlcmcgKDIwMDcpPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTlfQ1IyMCI+DQogICAgICAgICAgICAgICAgICAgIDxkb2kgcHJvdmlkZXI9ImNyb3NzcmVmIj4xMC4xMTA5L0lDQy4xOTk1LjUyNDI1MzwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPlJvYmVydHNvbiwgUC4sIFZpbGxlYnJ1biwgRS4sIEhvZWhlciwgUC46IEEgQ29tcGFyaXNvbiBvZiBPcHRpbWFsIGFuZCBTdWItT3B0aW1hbCBNQVAgRGVjb2RpbmcgQWxnb3JpdGhtcyBPcGVyYXRpbmcgaW4gdGhlIExvZyBEb21haW4uIEluOiBJRUVFIEludC4gQ29uZi4gQ29tbXVuaWNhdGlvbnMsIFNlYXR0bGUsIFdBLCBwcC4gMTAwOeKAkzEwMTMgKDE5OTUpPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTlfQ1IyMSI+DQogICAgICAgICAgICAgICAgICAgIDxkb2kgcHJvdmlkZXI9ImNyb3NzcmVmIj4xMC4xMTA5L0dMT0NPTS4xOTkwLjExNjU5ODwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPkVyZmFuaWFuLCBKLiwgUGFzdXBhdGh5LCBTLiwgR3VsYWssIEcuOiBSZWR1Y2VkIENvbXBsZXhpdHkgU3ltYm9sIERldGVjdG9ycyB3aXRoIFBhcmFsbGVsIFN0cnVjdHVyZXMuIEluOiBJRUVFIEdMT0JFQ09NLCBwcC4gNzA04oCTNzA4ICgxOTkwKTwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE5X0NSMjIiPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPkthd2FqaSwgUy4sIE1hZWRhLCBULiwgTWF0c3VuYWdhLCBOLjogRnV6enkgQ29udHJvbCBVc2luZyBLbm93bGVkZ2UgQWNxdWlyZWQgZnJvbSBQRCBDb250cm9sLiBJbmR1c3RyaWFsIEVsZWN0cm9uaWNzLCBDb250cm9sIGFuZCBJbnN0cnVtZW50YXRpb27CoDIsIDE1NDnigJMxNTU0ICgxOTkxKTwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE5X0NSMjMiPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPkd3YWx0bmV5LCBELiwgS2luZywgSy4sIFNtaXRoLCBLLiwgT3Jtc2J5LCBKLjogSW1wbGVtZW50YXRpb24gb2YgQWRhcHRpdmUgRGlnaXRhbCBDb250cm9sbGVycyBvbiBQcm9ncmFtbWFibGUgTG9naWMgRGV2aWNlcyAoMjAwMiksIGh0dHBzOi8vd3d3LnJlc2VhcmNoZ2F0ZS5uZXQvcHVibGljYXRpb24vMjM4OTIyOTdfSW1wbGVtZW50YXRpb25fb2ZfQWRhcHRpdmVfRGlnaXRhbF9Db250cm9sbGVyc19vbl9Qcm9ncmFtbWFibGVfTG9naWNfRGV2aWNlczwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE5X0NSMjQiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5JRUVFIFRyYW5zLiBvbiBTeXN0ZW1zLCBNYW4gYW5kIEN5YmVybmV0aWNzPC9qb3VybmFsX3RpdGxlPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yPkouIFRhdXI8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT4yNzwvdm9sdW1lPg0KICAgICAgICAgICAgICAgICAgICA8aXNzdWU+MzwvaXNzdWU+DQogICAgICAgICAgICAgICAgICAgIDxmaXJzdF9wYWdlPjUyNjwvZmlyc3RfcGFnZT4NCiAgICAgICAgICAgICAgICAgICAgPGNZZWFyPjE5OTc8L2NZZWFyPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pPjEwLjExMDkvMzQ3Ny41ODQ5NjA8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5UYXVyLCBKLiwgVGFvLCBDLjogRGVzaWduIGFuZCBBbmFseXNpcyBvZiBSZWdpb24tV2lzZSBMaW5lYXIgRnV6enkgQ29udHJvbGxlcnMuIElFRUUgVHJhbnMuIG9uIFN5c3RlbXMsIE1hbiBhbmQgQ3liZXJuZXRpY3PCoDI3KDMpLCA1MjbigJM1MzIgKDE5OTcpPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTlfQ1IyNSI+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3I+Ti5GLiBNYWNpYTwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwNDwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDx2b2x1bWVfdGl0bGU+TW9kZWxpbmcgYW5kIENvbnRyb2wgb2YgRHluYW1pYyBTeXN0ZW1zPC92b2x1bWVfdGl0bGU+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+TWFjaWEsIE4uRi4sIFRoYWxlciwgRy5KLjogTW9kZWxpbmcgYW5kIENvbnRyb2wgb2YgRHluYW1pYyBTeXN0ZW1zLiBEZWxtYXIgQ2VuZ2FnZSBMZWFybmluZywgQWxiYW55ICgyMDA0KTwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE5X0NSMjYiPg0KICAgICAgICAgICAgICAgICAgICA8ZG9pIHByb3ZpZGVyPSJjcm9zc3JlZiI+MTAuMTEwOS9BSU5BLjIwMDUuMTQ8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5CYXJvbGxpLCBMLiwgZXQgYWwuOiBBIENBQyBzY2hlbWUgZm9yIG11bHRpbWVkaWEgYXBwbGljYXRpb25zIGJhc2VkIG9uIGZ1enp5IGxvZ2ljLiBJbjogUHJvYy4gSW50LiBDLiBBZHZhbmNlZCBJbmYuIE5ldHdvcmtpbmcgJmFtcDsgQXBwcy4sIFRhaXBlaSwgVGFpd2FuICgyMDA1KTwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE5X0NSMjciPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5JRUVFL0FDTSBUcmFucy4gTmV0d29ya2luZzwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5HLiBBc2NpYTwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8dm9sdW1lPjEzPC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxpc3N1ZT4yPC9pc3N1ZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+MjYyPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwNTwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTEwOS9UTkVULjIwMDUuODQ1NTQzPC9kb2k+DQogICAgICAgICAgICAgICAgICAgIDx1bnN0cnVjdHVyZWRfY2l0YXRpb24+QXNjaWEsIEcuLCBDYXRhbmlhLCBWLiwgUGFubm8sIEQuOiBBbiBldm9sdXRpb25hcnkgbWFuYWdlbWVudCBzY2hlbWUgaW4gaGlnaC1wZXJmb3JtYW5jZSBwYWNrZXQgc3dpdGNoZXMuIElFRUUvQUNNIFRyYW5zLiBOZXR3b3JraW5nwqAxMygyKSwgMjYy4oCTMjc1ICgyMDA1KTwvdW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPC9jaXRhdGlvbj4NCiAgICAgICAgICAgICAgICAgIDxjaXRhdGlvbiBrZXk9IjE5X0NSMjgiPg0KICAgICAgICAgICAgICAgICAgICA8am91cm5hbF90aXRsZT5JRUVFIFRyYW5zLiBNb2JpbGUgQ29tcHV0Ljwvam91cm5hbF90aXRsZT4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5ILi1QLiBMaW48L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPHZvbHVtZT40PC92b2x1bWU+DQogICAgICAgICAgICAgICAgICAgIDxpc3N1ZT41PC9pc3N1ZT4NCiAgICAgICAgICAgICAgICAgICAgPGZpcnN0X3BhZ2U+NTMwPC9maXJzdF9wYWdlPg0KICAgICAgICAgICAgICAgICAgICA8Y1llYXI+MjAwNTwvY1llYXI+DQogICAgICAgICAgICAgICAgICAgIDxkb2k+MTAuMTEwOS9UTUMuMjAwNS43MDwvZG9pPg0KICAgICAgICAgICAgICAgICAgICA8dW5zdHJ1Y3R1cmVkX2NpdGF0aW9uPkxpbiwgSC4tUC4sIEp1YW5nLCBSLi1ULiwgTGluLCBELi1CLjogVmFsaWRhdGlvbiBvZiBhbiBpbXByb3ZlZCBsb2NhdGlvbi1iYXNlZCBoYW5kb3ZlciBhbGdvcml0aG0gdXNpbmcgR1NNIG1lYXN1cmVtZW50IGRhdGEuIElFRUUgVHJhbnMuIE1vYmlsZSBDb21wdXQuwqA0KDUpLCA1MzDigJM1MzYgKDIwMDUpPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgICAgPGNpdGF0aW9uIGtleT0iMTlfQ1IyOSI+DQogICAgICAgICAgICAgICAgICAgIDxkb2kgcHJvdmlkZXI9ImNyb3NzcmVmIj4xMC4xMTA5L0lTTVZMLjIwMDkuNDA8L2RvaT4NCiAgICAgICAgICAgICAgICAgICAgPHVuc3RydWN0dXJlZF9jaXRhdGlvbj5SYXppYiwgQS4sIERpY2ssIFMuLCBHYXVkZXQsIFYuOiBEZXNpZ24gb2YgYSBIaWdoLVNwZWVkIEZ1enp5IExvZ2ljIENvbnRyb2xsZXIgQmFzZWQgb24gTG9nLURvbWFpbiBBcml0aG1ldGljLiBJbjogUHJvY2VlZGluZ3MsIElTTVZMIDIwMDksIE5haGEsIE9raW5hd2EsIEphcGFuLCBNYXkgMjEtMjMsIHBwLiAxMznigJMxNDQgKDIwMDkpPC91bnN0cnVjdHVyZWRfY2l0YXRpb24+DQogICAgICAgICAgICAgICAgICA8L2NpdGF0aW9uPg0KICAgICAgICAgICAgICAgIDwvY2l0YXRpb25fbGlzdD4NCiAgICAgICAgICAgICAgPC9jb250ZW50X2l0ZW0+DQogICAgICAgICAgICA8L2Jvb2s+DQogICAgICAgICAgPC9jcm9zc3JlZj4NCiAgICAgICAgPC9kb2lfcmVjb3JkPg0KICAgICAgPC9xdWVyeT4NCiAgICA8L2JvZHk+DQogIDwvcXVlcnlfcmVzdWx0Pg0KPC9jcm9zc3JlZl9yZXN1bHQ+
96
+ http_version:
97
+ recorded_at: Mon, 12 Oct 2020 21:10:29 GMT
98
+ recorded_with: VCR 3.0.3
@@ -683,6 +683,41 @@ describe Bolognese::Metadata, vcr: true do
683
683
  expect(subject.date_registered).to eq("2019-11-02T09:30:06Z")
684
684
  end
685
685
 
686
+ it "affiliation is space" do
687
+ input = "https://doi.org/10.1177/0042098011428175"
688
+ subject = Bolognese::Metadata.new(input: input)
689
+ expect(subject.valid?).to be true
690
+ expect(subject.id).to eq("https://doi.org/10.1177/0042098011428175")
691
+ expect(subject.url).to eq("http://journals.sagepub.com/doi/10.1177/0042098011428175")
692
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
693
+ expect(subject.creators.length).to eq(1)
694
+ expect(subject.creators.first).to eq("familyName"=>"Petrovici", "givenName"=>"Norbert", "name"=>"Petrovici, Norbert", "nameType"=>"Personal")
695
+ expect(subject.titles).to eq([{"title"=>"Workers and the City: Rethinking the Geographies of Power in Post-socialist Urbanisation"}])
696
+ expect(subject.dates).to include({"date"=>"2011-12-22", "dateType"=>"Issued"})
697
+ expect(subject.publication_year).to eq("2011")
698
+ expect(subject.publisher).to eq("SAGE Publications")
699
+ expect(subject.agency).to eq("crossref")
700
+ expect(subject.date_registered).to eq("2017-12-17T00:37:32Z")
701
+ end
702
+
703
+ it "multiple issn" do
704
+ input = "https://doi.org/10.1007/978-3-642-34922-5_19"
705
+ subject = Bolognese::Metadata.new(input: input)
706
+ expect(subject.valid?).to be true
707
+ expect(subject.id).to eq("https://doi.org/10.1007/978-3-642-34922-5_19")
708
+ expect(subject.url).to eq("http://link.springer.com/10.1007/978-3-642-34922-5_19")
709
+ expect(subject.types).to eq("bibtex"=>"inbook", "citeproc"=>"chapter", "resourceType"=>"BookChapter", "resourceTypeGeneral"=>"Text", "ris"=>"CHAP", "schemaOrg"=>"Chapter")
710
+ expect(subject.creators.length).to eq(3)
711
+ expect(subject.creators.first).to eq("familyName"=>"Razib", "givenName"=>"Ali", "name"=>"Razib, Ali", "nameType"=>"Personal")
712
+ expect(subject.titles).to eq([{"title"=>"Log-Domain Arithmetic for High-Speed Fuzzy Control on a Field-Programmable Gate Array"}])
713
+ expect(subject.dates).to include({"date"=>"2013", "dateType"=>"Issued"})
714
+ expect(subject.publication_year).to eq("2013")
715
+ expect(subject.publisher).to eq("Springer Science and Business Media LLC")
716
+ expect(subject.container).to eq("identifier"=>"1860-0808", "identifierType"=>"ISSN", "title"=>"Studies in Fuzziness and Soft Computing", "type"=>"Book Series")
717
+ expect(subject.agency).to eq("crossref")
718
+ expect(subject.date_registered).to eq("2012-10-31T16:15:44Z")
719
+ end
720
+
686
721
  it "posted content copernicus" do
687
722
  input = "https://doi.org/10.5194/CP-2020-95"
688
723
  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: 1.8.10
4
+ version: 1.8.12
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-10-11 00:00:00.000000000 Z
11
+ date: 2020-10-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: maremma
@@ -896,6 +896,7 @@ files:
896
896
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/JaLC.yml
897
897
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/KISTI.yml
898
898
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/OP.yml
899
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/affiliation_is_space.yml
899
900
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/another_book.yml
900
901
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/another_book_chapter.yml
901
902
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/author_literal.yml
@@ -919,6 +920,7 @@ files:
919
920
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/mEDRA.yml
920
921
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/markup.yml
921
922
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/missing_creator.yml
923
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/multiple_issn.yml
922
924
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/multiple_titles.yml
923
925
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/multiple_titles_with_missing.yml
924
926
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/not_found_error.yml