spacex 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 58a0fbf1d077cbf0176536bb63223efff8c67f33
4
- data.tar.gz: 90864481997988c4cfc40ebc9932bb5dca6ff0d7
3
+ metadata.gz: 34d0f69775d8b88dc1ae18095c0f0bdb56b26d79
4
+ data.tar.gz: 572954573b7371c0bc4d7b90f686d23be4a9da9f
5
5
  SHA512:
6
- metadata.gz: f3bc930432c4d80021beed2eeb8d9ec0d00f80af446753ee7ce63dcd9b2ab2eb66250ff1eda6ecaa3734c1af036fa4172f1db7b4f25026bf3e3191617926a6d2
7
- data.tar.gz: 5a6b7134c8a491ba4f7d6f87e454f9ac92f488fc035f42bc51114e078fbaf70b0b612e4a6c1fc1d688b8ab49a7d41996391eb3ab33c6b0f854c62ab45a2a1e90
6
+ metadata.gz: 1474c8fb7d0fa7a9bc182b5031cf42ab5b81e9da553e2a9a71c114043cef62fcb6d3b0d5bd369dc68902a9c748a7f84b5328f04f0cda44a5f6aafcc7a0562d15
7
+ data.tar.gz: c46d6c09a8848cd5d19168ff70af8a1048945d730debf141e8e1da7cabd21861fbd0aefaaa43d1f34e12bb91cc7d9956858ab3b0e777a4dc7c3c495eff5e3221
data/.rubocop_todo.yml CHANGED
@@ -1,6 +1,6 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2018-10-13 07:55:19 -0400 using RuboCop version 0.51.0.
3
+ # on 2018-11-01 20:09:44 -0400 using RuboCop version 0.51.0.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
@@ -12,12 +12,12 @@ Lint/ParenthesesAsGroupedExpression:
12
12
  - 'spec/spacex/dragon_capsules_spec.rb'
13
13
  - 'spec/spacex/ships_spec.rb'
14
14
 
15
- # Offense count: 24
15
+ # Offense count: 36
16
16
  # Configuration parameters: CountComments, ExcludedMethods.
17
17
  Metrics/BlockLength:
18
- Max: 265
18
+ Max: 625
19
19
 
20
- # Offense count: 117
20
+ # Offense count: 136
21
21
  # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
22
22
  # URISchemes: http, https
23
23
  Metrics/LineLength:
data/CHANGELOG.md CHANGED
@@ -1,7 +1,18 @@
1
- ### 1.0.1 (next)
1
+ ### 1.0.2 (next)
2
2
 
3
3
  * Your contribution here.
4
4
 
5
+
6
+ ### 1.0.1
7
+
8
+ * [#45](https://github.com/rodolfobandeira/spacex/pull/45): Implement History endpoint [@invacuo](http://github.com/invacuo).
9
+ * [#48](https://github.com/rodolfobandeira/spacex/pull/48): Add ability to query specific Launch via `.info('flight_number')` - [@mtking2](http://github.com/mtking2).
10
+ * [#51](https://github.com/rodolfobandeira/spacex/pull/51): Added payloads endpoint [@maiafernando](http://github.com/maiafernando).
11
+ * [#52](https://github.com/rodolfobandeira/spacex/pull/52): Add ability to query Past Launches - [@mtking2](http://github.com/mtking2).
12
+ * [#54](https://github.com/rodolfobandeira/spacex/pull/54): Refactor ENDPOINT_URI - [@ludamillion](http://github.com/ludamillion).
13
+ * [#56](https://github.com/rodolfobandeira/spacex/pull/56): Add ability to query upcoming launches - [@mtking2](http://github.com/mtking2).
14
+
15
+
5
16
  ### 1.0.0 (2018/10/15)
6
17
 
7
18
  * [#41](https://github.com/rodolfobandeira/spacex/pull/41): General Refactor cleaning endpoint classes [@invacuo](http://github.com/invacuo).
@@ -16,6 +27,7 @@
16
27
  * [#25](https://github.com/rodolfobandeira/spacex/pull/25): Add code coverage tools - [@harman28](https://github.com/harman28).
17
28
  * [#27](https://github.com/rodolfobandeira/spacex/pull/27): Add ability to query next launch - [@Andrey-Raspopov](https://github.com/Andrey-Raspopov)
18
29
 
30
+
19
31
  ### 0.0.7 (2018/10/07)
20
32
 
21
33
  * Refactor responses getting multiple objects like Ships, Capsules to wrap a specific object. This helps translating specific properties like `id` and `class` to `ship_id`, `ship_class` - [@rodolfobandeira](https://github.com/rodolfobandeira).
@@ -25,14 +37,17 @@
25
37
  * [#9](https://github.com/rodolfobandeira/spacex/pull/9): Added Dragon Capsules information - [@JackieCalapristi](https://github.com/JackieCalapristi).
26
38
  * [#16](https://github.com/rodolfobandeira/spacex/pull/16): Added missions information - [@maiafernando](https://github.com/maiafernando).
27
39
 
40
+
28
41
  ### 0.0.6 (2018/08/22)
29
42
 
30
43
  * Added Roadster information - [@rodolfobandeira](https://github.com/rodolfobandeira).
31
44
 
45
+
32
46
  ### 0.0.5 (2018/08/21)
33
47
 
34
48
  * Added Company information and General Refactors - [@rodolfobandeira](https://github.com/rodolfobandeira).
35
49
 
50
+
36
51
  ### 0.0.4 (2018/08/21)
37
52
 
38
53
  * Initial public release - [@rodolfobandeira](https://github.com/rodolfobandeira).
data/README.md CHANGED
@@ -15,21 +15,32 @@ A Ruby library that consumes the [SpaceX API](https://github.com/r-spacex/SpaceX
15
15
  - [Capsules](#capsules)
16
16
  - `SPACEX::Capsules.info`
17
17
  - `SPACEX::Capsules.info('capsule_serial')`
18
- - [Company Info](#company-info) - `SPACEX::CompanyInfo.info`
18
+ - [Company Info](#company-info)
19
+ - `SPACEX::CompanyInfo.info`
19
20
  - [Cores](#cores)
20
21
  - `SPACEX::Cores.info`
21
22
  - `SPACEX::Cores.info('core_serial')`
22
23
  - [Dragon Capsules](#dragon-capsules)
23
24
  - `SPACEX::DragonCapsules.info`
24
25
  - `SPACEX::DragonCapsules.info('dragon_id')`
26
+ - [History](#history)
27
+ - `SPACEX::History.info`
28
+ - `SPACEX::History.info(4)`
25
29
  - [Launches](#launches)
30
+ - `SPACEX::Launches.all`
26
31
  - `SPACEX::Launches.info`
32
+ - `SPACEX::Launches.info('flight_number')`
27
33
  - `SPACEX::Launches.latest`
28
34
  - `SPACEX::Launches.next`
35
+ - `SPACEX::Launches.past`
29
36
  - [Missions](#missions)
30
37
  - `SPACEX::Missions.info`
31
38
  - `SPACEX::Missions.info('mission_id')`
32
- - [Roadster](#roadster) - `SPACEX::Roadster.info`
39
+ - [Payloads](#payloads)
40
+ - `SPACEX::Payloads.info`
41
+ - `SPACEX::Payloads.info('payload_id')`
42
+ - [Roadster](#roadster)
43
+ - `SPACEX::Roadster.info`
33
44
  - [Rockets](#rockets)
34
45
  - `SPACEX::Rockets.info`
35
46
  - `SPACEX::Rockets.info('falcon1')`
@@ -126,8 +137,8 @@ cores_info.first.water_landing # false
126
137
 
127
138
  ### Dragon Capsules
128
139
 
129
- - Get all dragon capsules: `SPACEX::DragonCapsules.info`
130
- - Get a specific dragon capsule (e.g., `dragon1`) by including the id in the call: `SPACEX::DragonCapsules.info('dragon_id')`
140
+ - Get information for all dragon capsules: `SPACEX::DragonCapsules.info`
141
+ - Get information about a specific dragon capsule: `SPACEX::DragonCapsules.info('dragon_id')`
131
142
 
132
143
  This code snippet shows the `dragon1` dragon capsule information:
133
144
 
@@ -177,14 +188,68 @@ dragon_capsules.first.wikipedia # "https://en.wikipedia.org/wiki/SpaceX_Dragon"
177
188
  dragon_capsules.first.description # "Dragon is a reusable spacecraft developed by SpaceX, an American private space transportation company based in Hawthorne, California. Dragon is launched into space by the SpaceX Falcon 9 two-stage-to-orbit launch vehicle. The Dragon spacecraft was originally designed for human travel, but so far has only been used to deliver cargo to the International Space Station (ISS)."
178
189
  ```
179
190
 
191
+ ### History
192
+
193
+ - Get information for all historical events: `SPACEX::History.info`
194
+ - Get information about a specific historical event: `SPACEX::History.info('4')`
195
+
196
+ ```ruby
197
+ require 'spacex'
198
+ historical_events = SPACEX::History.info
199
+
200
+ first_event = historical_events.first
201
+ first_event.id # 1
202
+ first_event.title # Falcon 1 Makes History
203
+ first_event.event_date_utc # 2008-09-28T23:15:00Z
204
+ first_event.event_date_unix # 1222643700
205
+ first_event.flight_number # 4
206
+ first_event.details # Falcon 1 becomes the first privately developed liquid fuel rocket to reach Earth orbit.
207
+ first_event.links['reddit'] # nil
208
+ first_event.links['article'] # http://www.spacex.com/news/2013/02/11/flight-4-launch-update-0
209
+ first_event.links['wikipedia'] # https://en.wikipedia.org/wiki/Falcon_1
210
+ ```
211
+
180
212
  ### Launches
181
213
 
182
- - Get information on all launches: `SPACEX::Launches.info`
214
+ - Get information for all launches: `SPACEX::Launches.all` or `SPACEX::Launches.info`
215
+ - Get information about a specific launch: `SPACEX::Launches.info('flight_number')`
216
+ - Get information on past launches: `SPACEX::Launches.past`
183
217
  - Get information on the next launch: `SPACEX::Launches.next`
184
218
  - Get the latest launch information: `SPACEX::Launches.latest`
219
+ - Get information on upcoming launches: `SPACEX::Launches.upcoming`
220
+
221
+ This code snippet shows how to get information for a specific launch by flight number and list the fields:
222
+
223
+ ```ruby
224
+ require 'spacex'
225
+ launch_68 = SPACEX::Launches.info(68)
226
+
227
+ launch_68.flight_number # 68
228
+ launch_68.mission_name # 'Telstar 18V'
229
+ launch_68.rocket.rocket_name # 'Falcon 9'
230
+ launch_68.rocket.first_stage.cores.first.land_success # true
231
+ ```
232
+
233
+ This code snippet shows how to get information on past launches:
234
+ ```ruby
235
+ past_launches = SPACEX::Launches.past
236
+
237
+ past_launches.first.flight_number # 1
238
+ past_launches.first.mission_name # 'FalconSat'
239
+ past_launches.first.rocket.rocket_name # 'Falcon 1'
240
+ past_launches.first.launch_success # false
241
+
242
+ past_launches.last.flight_number # 69
243
+ past_launches.last.mission_name # 'SAOCOM 1A'
244
+ past_launches.last.rocket.rocket_name # 'Falcon 9'
245
+ past_launches.last.rocket.first_stage.cores.first.land_success # true
246
+ past_launches.last.launch_success # true
247
+ ```
248
+
249
+
185
250
 
186
251
  The following code snippet shows the latest launch information and the data fields available on the Launch object:
187
-
252
+
188
253
  ```ruby
189
254
  require 'spacex'
190
255
  latest_launch = SPACEX::Launches.latest
@@ -255,10 +320,23 @@ latest_launch.upcoming # false
255
320
  latest_launch.static_fire_date_utc # '2018-08-02T15:53:00.000Z'
256
321
  ```
257
322
 
323
+ This code snippet shows how to get information on upcoming launches:
324
+ ```ruby
325
+ upcoming_launches = SPACEX::Launches.upcoming
326
+
327
+ upcoming_launches.first.flight_number # 70
328
+ upcoming_launches.first.mission_name # 'Es’hail 2'
329
+ upcoming_launches.first.launch_date_utc # '2018-11-14T20:46:00.000Z'
330
+
331
+ upcoming_launches.last.flight_number # 91
332
+ upcoming_launches.last.mission_name # 'GPS IIIA-3'
333
+ upcoming_launches.last.launch_date_utc # '2019-10-01T00:00:00.000Z'
334
+ ```
335
+
258
336
  ### Missions
259
337
 
260
- - Get all mission information: `SPACEX::Missions.info`
261
- - Get information about a specific mission (e.g., `F3364BF`): `SPACEX::Missions.info('mission_id')`
338
+ - Get information for all mission: `SPACEX::Missions.info`
339
+ - Get information about a specific mission: `SPACEX::Missions.info('mission_id')`
262
340
 
263
341
  This code shows how to get the first mission information and lists the fields:
264
342
 
@@ -275,6 +353,28 @@ missions.first.twitter # "https://twitter.com/IridiumBoss?lang=en"
275
353
  missions.first.description # "In 2017, Iridium began launching Iridium NEXT, a second-generation worldwide network of telecommunications satellites, consisting of 66 active satellites, with another nine in-orbit spares and six on-ground spares. These satellites will incorporate features such as data transmission that were not emphasized in the original design. The constellation will provide L-band data speeds of up to 128 kbit/s to mobile terminals, up to 1.5 Mbit/s to Iridium Pilot marine terminals, and high-speed Ka-band service of up to 8 Mbit/s to fixed/transportable terminals. The next-generation terminals and service are expected to be commercially available by the end of 2018. However, Iridium's proposed use of its next-generation satellites has raised concerns the service will harmfully interfere with GPS devices. The satellites will incorporate a secondary payload for Aireon, a space-qualified ADS-B data receiver. This is for use by air traffic control and, via FlightAware, for use by airlines. A tertiary payload on 58 satellites is a marine AIS ship-tracker receiver, for Canadian company exactEarth Ltd. Iridium can also be used to provide a data link to other satellites in space, enabling command and control of other space assets regardless of the position of ground stations and gateways."
276
354
  ```
277
355
 
356
+ ### Payloads
357
+
358
+ - Get information for all payloads: `SPACEX::Payloads.info`
359
+ - Get information about a specific payload: `SPACEX::Payloads.info('payload_id')`
360
+
361
+ The following code shows how to get information about a specific payload and lists the payload data fields:
362
+
363
+ ```ruby
364
+ payload = SPACEX::Payloads.info('FalconSAT-2')
365
+
366
+ payload.payload_id # 'FalconSAT-2'
367
+ payload.reused # false
368
+ payload.customers # ['DARPA']
369
+ payload.nationality # 'United States'
370
+ payload.manufacturer # 'SSTL'
371
+ payload.payload_type # 'Satellite'
372
+ payload.payload_mass_kg # 20
373
+ payload.payload_mass_lbs # 43
374
+ payload.orbit # 'LEO'
375
+ payload.orbit_params # {"reference_system"=>"geocentric", "regime"=>"low-earth", "longitude"=>nil, "semi_major_axis_km"=>nil, "eccentricity"=>nil, "periapsis_km"=>400, "apoapsis_km"=>500, "inclination_deg"=>39, "period_min"=>nil, "lifespan_years"=>nil, "epoch"=>nil, "mean_motion"=>nil, "raan"=>nil, "arg_of_pericenter"=>nil, "mean_anomaly"=>nil}
376
+ ```
377
+
278
378
  ### Roadster
279
379
 
280
380
  - Get roadster orbital data: `SPACEX::Roadster.info`
@@ -312,7 +412,7 @@ roadster.details # "Elon Musk's Tesla Roadster is an electric sports car that se
312
412
  ### Rockets
313
413
 
314
414
  - Get information for all rockets: `SPACEX::Rockets.info`
315
- - Get information about a specific rocket (e.g., `falcon1`: `SPACEX::Rockets.info('falcon1')`
415
+ - Get information about a specific rocket: `SPACEX::Rockets.info('rocket_id')`
316
416
 
317
417
  This example shows a single rocket and its data fields:
318
418
 
@@ -347,8 +447,8 @@ first_rocket.flickr_images # ["https://www.spacex.com/sites/spacex/files/styles/
347
447
 
348
448
  ### Ships
349
449
 
350
- - Get all ship information: `SPACEX::Ships.info`
351
- - Get information about a specific ship (e.g., `AMERICANCHAMPION`): `SPACEX::Ships.info('ship_id')`
450
+ - Get information for all ships: `SPACEX::Ships.info`
451
+ - Get information about a specific ship: `SPACEX::Ships.info('ship_id')`
352
452
 
353
453
  The following code shows how to get information about a specific ship and lists the ship data fields:
354
454
 
data/lib/spacex.rb CHANGED
@@ -4,13 +4,16 @@ require 'faraday_middleware/response_middleware'
4
4
  require 'hashie'
5
5
 
6
6
  require_relative 'spacex/base_request'
7
- require_relative 'spacex/version'
8
- require_relative 'spacex/launches'
7
+ require_relative 'spacex/capsules'
9
8
  require_relative 'spacex/company_info'
10
- require_relative 'spacex/roadster'
9
+ require_relative 'spacex/cores'
11
10
  require_relative 'spacex/dragon_capsules'
12
- require_relative 'spacex/ships'
11
+ require_relative 'spacex/endpoint'
12
+ require_relative 'spacex/history'
13
+ require_relative 'spacex/launches'
13
14
  require_relative 'spacex/missions'
15
+ require_relative 'spacex/payloads'
16
+ require_relative 'spacex/roadster'
14
17
  require_relative 'spacex/rockets'
15
- require_relative 'spacex/capsules'
16
- require_relative 'spacex/cores'
18
+ require_relative 'spacex/ships'
19
+ require_relative 'spacex/version'
@@ -42,7 +42,7 @@ module SPACEX
42
42
 
43
43
  def conn(path)
44
44
  Faraday.new(
45
- url: "#{SPACEX::ROOT_URI}/#{path}",
45
+ url: "#{SPACEX::ENDPOINT_URI}/#{path}",
46
46
  request: {
47
47
  params_encoder: Faraday::FlatParamsEncoder
48
48
  }
@@ -1,3 +1,3 @@
1
1
  module SPACEX
2
- ENDPOINT = 'https://api.spacexdata.com/v3/'.freeze
2
+ ENDPOINT_URI = 'https://api.spacexdata.com/v3'.freeze
3
3
  end
@@ -0,0 +1,7 @@
1
+ module SPACEX
2
+ module History
3
+ def self.info(id = nil)
4
+ SPACEX::BaseRequest.info("history/#{id}")
5
+ end
6
+ end
7
+ end
@@ -1,5 +1,9 @@
1
1
  module SPACEX
2
2
  module Launches
3
+ def self.info(flight_number = nil)
4
+ SPACEX::BaseRequest.info("launches/#{flight_number}")
5
+ end
6
+
3
7
  def self.latest
4
8
  SPACEX::BaseRequest.info('launches/latest')
5
9
  end
@@ -8,12 +12,16 @@ module SPACEX
8
12
  SPACEX::BaseRequest.info('launches/next')
9
13
  end
10
14
 
11
- def self.all
12
- SPACEX::BaseRequest.info('launches')
15
+ def self.past
16
+ SPACEX::BaseRequest.info('launches/past')
13
17
  end
14
18
 
15
- def self.info
16
- all
19
+ def self.upcoming
20
+ SPACEX::BaseRequest.info('launches/upcoming')
21
+ end
22
+
23
+ def self.all
24
+ info
17
25
  end
18
26
  end
19
27
  end
@@ -0,0 +1,7 @@
1
+ module SPACEX
2
+ module Payloads
3
+ def self.info(id = nil)
4
+ SPACEX::BaseRequest.info("payloads/#{id}")
5
+ end
6
+ end
7
+ end
@@ -1,6 +1,5 @@
1
1
  module SPACEX
2
- VERSION = '1.0.0'.freeze
3
- ROOT_URI = 'https://api.spacexdata.com/v3'.freeze
2
+ VERSION = '1.0.1'.freeze
4
3
 
5
4
  def self.help
6
5
  puts 'https://github.com/rodolfobandeira/spacex'
@@ -0,0 +1,62 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.spacexdata.com/v3/history/
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.15.3
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - "*/*"
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Date:
22
+ - Tue, 16 Oct 2018 02:39:03 GMT
23
+ Content-Type:
24
+ - application/json; charset=utf-8
25
+ Transfer-Encoding:
26
+ - chunked
27
+ Connection:
28
+ - keep-alive
29
+ Set-Cookie:
30
+ - __cfduid=d9de20e41d3db5772f4d955e6b09a65b81539657543; expires=Wed, 16-Oct-19
31
+ 02:39:03 GMT; path=/; domain=.spacexdata.com; HttpOnly; Secure
32
+ Vary:
33
+ - Accept-Encoding, Origin
34
+ X-Dns-Prefetch-Control:
35
+ - 'off'
36
+ X-Frame-Options:
37
+ - SAMEORIGIN
38
+ Strict-Transport-Security:
39
+ - max-age=15552000; includeSubDomains
40
+ X-Download-Options:
41
+ - noopen
42
+ X-Content-Type-Options:
43
+ - nosniff
44
+ X-Xss-Protection:
45
+ - 1; mode=block
46
+ Access-Control-Allow-Origin:
47
+ - "*"
48
+ X-Response-Time:
49
+ - 40ms
50
+ Expect-Ct:
51
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
52
+ Server:
53
+ - cloudflare
54
+ Cf-Ray:
55
+ - 46a7271e795d2438-IAD
56
+ body:
57
+ encoding: ASCII-8BIT
58
+ string: !binary |-
59
+ W3siaWQiOjEsInRpdGxlIjoiRmFsY29uIDEgTWFrZXMgSGlzdG9yeSIsImV2ZW50X2RhdGVfdXRjIjoiMjAwOC0wOS0yOFQyMzoxNTowMFoiLCJldmVudF9kYXRlX3VuaXgiOjEyMjI2NDM3MDAsImZsaWdodF9udW1iZXIiOjQsImRldGFpbHMiOiJGYWxjb24gMSBiZWNvbWVzIHRoZSBmaXJzdCBwcml2YXRlbHkgZGV2ZWxvcGVkIGxpcXVpZCBmdWVsIHJvY2tldCB0byByZWFjaCBFYXJ0aCBvcmJpdC4iLCJsaW5rcyI6eyJyZWRkaXQiOm51bGwsImFydGljbGUiOiJodHRwOi8vd3d3LnNwYWNleC5jb20vbmV3cy8yMDEzLzAyLzExL2ZsaWdodC00LWxhdW5jaC11cGRhdGUtMCIsIndpa2lwZWRpYSI6Imh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0ZhbGNvbl8xIn19LHsiaWQiOjIsInRpdGxlIjoiU3BhY2VYIFdpbnMgJDEuNkIgQ1JTIENvbnRyYWN0IiwiZXZlbnRfZGF0ZV91dGMiOiIyMDA4LTEyLTIzVDAxOjAwOjAwWiIsImV2ZW50X2RhdGVfdW5peCI6MTIyOTk5NDAwMCwiZmxpZ2h0X251bWJlciI6bnVsbCwiZGV0YWlscyI6Ik5BU0EgYXdhcmRzIFNwYWNlWCAkMS42QiBDb21tZXJjaWFsIFJlc3VwcGx5IFNlcnZpY2VzIChDUlMpIGNvbnRyYWN0LiIsImxpbmtzIjp7InJlZGRpdCI6bnVsbCwiYXJ0aWNsZSI6Imh0dHBzOi8vd3d3Lm5hc2FzcGFjZWZsaWdodC5jb20vMjAwOC8xMi9zcGFjZXgtYW5kLW9yYml0YWwtd2luLWh1Z2UtY3JzLWNvbnRyYWN0LWZyb20tbmFzYS8iLCJ3aWtpcGVkaWEiOiJodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Db21tZXJjaWFsX1Jlc3VwcGx5X1NlcnZpY2VzIn19LHsiaWQiOjMsInRpdGxlIjoiRmFsY29uIDEgRmxpZ2h0IDUgTWFrZXMgSGlzdG9yeSIsImV2ZW50X2RhdGVfdXRjIjoiMjAwOS0wNy0xM1QwMzozNTowMFoiLCJldmVudF9kYXRlX3VuaXgiOjEyNDc0NTYxMDAsImZsaWdodF9udW1iZXIiOjUsImRldGFpbHMiOiJGYWxjb24gMSBGbGlnaHQgNSBtYWtlcyBoaXN0b3J5LCBiZWNvbWluZyB0aGUgZmlyc3QgcHJpdmF0ZWx5IGRldmVsb3BlZCBsaXF1aWQgZnVlbCByb2NrZXQgdG8gZGVsaXZlciBhIGNvbW1lcmNpYWwgc2F0ZWxsaXRlIHRvIEVhcnRoIG9yYml0LiIsImxpbmtzIjp7InJlZGRpdCI6bnVsbCwiYXJ0aWNsZSI6Imh0dHA6Ly93d3cuc3BhY2V4LmNvbS9uZXdzLzIwMTMvMDIvMTIvZmFsY29uLTEtZmxpZ2h0LTUiLCJ3aWtpcGVkaWEiOiJodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9GYWxjb25fMSJ9fSx7ImlkIjo0LCJ0aXRsZSI6IkZhbGNvbiA5IEZpcnN0IEZsaWdodCIsImV2ZW50X2RhdGVfdXRjIjoiMjAxMC0wNi0wNFQxODo0NTowMFoiLCJldmVudF9kYXRlX3VuaXgiOjEyNzU2NzcxMDAsImZsaWdodF9udW1iZXIiOjYsImRldGFpbHMiOiJNZXQgMTAwJSBvZiBtaXNzaW9uIG9iamVjdGl2ZXMgb24gdGhlIGZpcnN0IGZsaWdodCEiLCJsaW5rcyI6eyJyZWRkaXQiOm51bGwsImFydGljbGUiOiJodHRwOi8vd3d3LmJiYy5jb20vbmV3cy8xMDIwOTcwNCIsIndpa2lwZWRpYSI6Imh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0RyYWdvbl9TcGFjZWNyYWZ0X1F1YWxpZmljYXRpb25fVW5pdCJ9fSx7ImlkIjo1LCJ0aXRsZSI6IkRyYWdvbiBSZXR1cm5zIEZyb20gRWFydGggT3JiaXQiLCJldmVudF9kYXRlX3V0YyI6IjIwMTAtMTItMDhUMTU6NDM6MDBaIiwiZXZlbnRfZGF0ZV91bml4IjoxMjkxODIyOTgwLCJmbGlnaHRfbnVtYmVyIjo3LCJkZXRhaWxzIjoiT24gRGVjZW1iZXIgOCwgMjAxMCwgRHJhZ29uIGJlY2FtZSB0aGUgZmlyc3QgcHJpdmF0ZWx5IGRldmVsb3BlZCBzcGFjZWNyYWZ0IGluIGhpc3RvcnkgdG8gcmUtZW50ZXIgZnJvbSBsb3ctRWFydGggb3JiaXQuIiwibGlua3MiOnsicmVkZGl0IjpudWxsLCJhcnRpY2xlIjoiaHR0cDovL3d3dy5jbm4uY29tLzIwMTAvVVMvMTIvMDgvc3BhY2UuZmxpZ2h0L2luZGV4Lmh0bWwiLCJ3aWtpcGVkaWEiOiJodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TcGFjZVhfQ09UU19EZW1vX0ZsaWdodF8xIn19LHsiaWQiOjYsInRpdGxlIjoiRmlyc3QgRHJhZ29uIFZpc2l0IHRvIFNwYWNlIFN0YXRpb24iLCJldmVudF9kYXRlX3V0YyI6IjIwMTItMTAtMDhUMDA6MzU6MDBaIiwiZXZlbnRfZGF0ZV91bml4IjoxMzQ5NjU2NTAwLCJmbGlnaHRfbnVtYmVyIjo5LCJkZXRhaWxzIjoiRHJhZ29uIGJlY29tZXMgdGhlIGZpcnN0IHByaXZhdGUgc3BhY2VjcmFmdCBpbiBoaXN0b3J5IHRvIHZpc2l0IHRoZSBzcGFjZSBzdGF0aW9uLiIsImxpbmtzIjp7InJlZGRpdCI6bnVsbCwiYXJ0aWNsZSI6Imh0dHA6Ly90aGVzcGFjZXJldmlldy5jb20vYXJ0aWNsZS8yMTY4LzEiLCJ3aWtpcGVkaWEiOiJodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TcGFjZVhfQ1JTLTEifX0seyJpZCI6NywidGl0bGUiOiJHcmFzc2hvcHBlciBDb21wbGV0ZXMgSGFsZi1NaWxlIEZsaWdodCIsImV2ZW50X2RhdGVfdXRjIjoiMjAxMy0xMC0wN1QwMTowMDowMFoiLCJldmVudF9kYXRlX3VuaXgiOjEzODExMDc2MDAsImZsaWdodF9udW1iZXIiOm51bGwsImRldGFpbHMiOiJUaGUgR3Jhc3Nob3BwZXIgcHJvZ3JhbSBmaW5pc2hlZCB3aXRoIGEgNzQ0bSBmbGlnaHQsIGhvdmVyLCBhbmQgbGFuZGluZy4iLCJsaW5rcyI6eyJyZWRkaXQiOm51bGwsImFydGljbGUiOiJodHRwOi8vc3BhY2VuZXdzLmNvbS8zNzc0MHNwYWNleC1yZXRpcmVzLWdyYXNzaG9wcGVyLW5ldy10ZXN0LXJpZy10by1mbHktaW4tZGVjZW1iZXIvIiwid2lraXBlZGlhIjoiaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvR3Jhc3Nob3BwZXJfKHJvY2tldCkifX0seyJpZCI6OCwidGl0bGUiOiJGaXJzdCBGbGlnaHQgb2YgRmFsY29uIDkgdG8gR1RPIiwiZXZlbnRfZGF0ZV91dGMiOiIyMDEzLTEyLTAzVDIyOjQxOjAwWiIsImV2ZW50X2RhdGVfdW5peCI6MTM4NjExMDQ2MCwiZmxpZ2h0X251bWJlciI6MTIsImRldGFpbHMiOiJGYWxjb24gOSByZWFjaGVzIEdlb3N5bmNocm9ub3VzIFRyYW5zZmVyIE9yYml0IiwibGlua3MiOnsicmVkZGl0IjpudWxsLCJhcnRpY2xlIjoiaHR0cDovL3d3dy5uZXdzcGFjZWpvdXJuYWwuY29tLzIwMTMvMDMvMjcvYWZ0ZXItZHJhZ29uLXNwYWNleHMtZm9jdXMtcmV0dXJucy10by1mYWxjb24vIiwid2lraXBlZGlhIjoiaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvU0VTLTgifX0seyJpZCI6OSwidGl0bGUiOiJGaXJzdCBTdGFnZSBMYW5kaW5nIiwiZXZlbnRfZGF0ZV91dGMiOiIyMDE0LTA0LTE4VDE5OjI1OjAwWiIsImV2ZW50X2RhdGVfdW5peCI6MTM5Nzg0OTEwMCwiZmxpZ2h0X251bWJlciI6MTQsImRldGFpbHMiOiJGYWxjb24gOSBmaXJzdCBzdGFnZSBzdWNjZXNzZnVsbHkgbGFuZHMgaW4gQXRsYW50aWMgT2NlYW4uIiwibGlua3MiOnsicmVkZGl0IjpudWxsLCJhcnRpY2xlIjoiaHR0cHM6Ly93d3cuc3BhY2UuY29tLzI1NTYyLXNwYWNleC1mYWxjb24tOS1yZXVzYWJsZS1yb2NrZXQtdGVzdC5odG1sIiwid2lraXBlZGlhIjoiaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvU3BhY2VYX0NSUy0zIn19LHsiaWQiOjEwLCJ0aXRsZSI6IkZhbGNvbiA5IFJldXNhYmxlIFRlc3QgVmVoaWNsZSBGbGllcyAxMDAwTSIsImV2ZW50X2RhdGVfdXRjIjoiMjAxNC0wNS0wMlQwMTowMDowMFoiLCJldmVudF9kYXRlX3VuaXgiOjEzOTg5OTI0MDAsImZsaWdodF9udW1iZXIiOm51bGwsImRldGFpbHMiOiJWZWhpY2xlIGNvbXBsZXRlcyBoaWdoZXN0IGxlYXAgdG8gZGF0ZSwgbGFuZHMgc2FmZWx5LiIsImxpbmtzIjp7InJlZGRpdCI6bnVsbCwiYXJ0aWNsZSI6Imh0dHA6Ly93d3cucGFyYWJvbGljYXJjLmNvbS8yMDE0LzA1LzAyL2ZhbGNvbi05LXJldXNhYmxlLXZlaGljbGUtZmxpZXMtMTAwMC1tZXRlcnMvIiwid2lraXBlZGlhIjpudWxsfX0seyJpZCI6MTEsInRpdGxlIjoiU3BhY2VYIEF3YXJkZWQgQ29tbWVyY2lhbCBDcmV3IENvbnRyYWN0IiwiZXZlbnRfZGF0ZV91dGMiOiIyMDE0LTA5LTE2VDAxOjAwOjAwWiIsImV2ZW50X2RhdGVfdW5peCI6MTQxMDgyOTIwMCwiZmxpZ2h0X251bWJlciI6bnVsbCwiZGV0YWlscyI6Ik5BU0EgYXdhcmRzICQyLjYgYmlsbGlvbiBTcGFjZVggY29udHJhY3QgdG8gZmx5IEFtZXJpY2FuIGFzdHJvbmF1dHMuIiwibGlua3MiOnsicmVkZGl0IjpudWxsLCJhcnRpY2xlIjoiaHR0cHM6Ly93d3cud2FzaGluZ3RvbnBvc3QuY29tL25ld3MvdGhlLXN3aXRjaC93cC8yMDE0LzA5LzE2L25hc2EtYXdhcmRzLXNwYWNlLWNvbnRyYWN0LXRvLWJvZWluZy1hbmQtc3BhY2V4Lz91dG1fdGVybT0uZDYzODgzOTBkMDcxIiwid2lraXBlZGlhIjpudWxsfX0seyJpZCI6MTIsInRpdGxlIjoiRHJvbmUgU2hpcCBMYW5kaW5ncyIsImV2ZW50X2RhdGVfdXRjIjoiMjAxNS0wMS0xMFQwOTo0NzowMFoiLCJldmVudF9kYXRlX3VuaXgiOjE0MjA4ODMyMjAsImZsaWdodF9udW1iZXIiOjE5LCJkZXRhaWxzIjoiU3BhY2VYIGJlZ2lucyBzZXJpZXMgb2YgZmlyc3Qgc3RhZ2UgbGFuZGluZyBhdHRlbXB0cyBvbiBhbiBhdXRvbm9tb3VzIHNwYWNlcG9ydCBkcm9uZSBzaGlwLiIsImxpbmtzIjp7InJlZGRpdCI6Imh0dHA6Ly93d3cucmVkZGl0LmNvbS9yL3NwYWNleC9jb21tZW50cy8ycnJkaGEiLCJhcnRpY2xlIjoiaHR0cHM6Ly9zcGFjZWZsaWdodG5vdy5jb20vMjAxNS8wMS8xMC9kcmFnb24tc3VjY2Vzc2Z1bGx5LWxhdW5jaGVkLXJvY2tldC1yZWNvdmVyeS1kZW1vLWNyYXNoLWxhbmRzLyIsIndpa2lwZWRpYSI6Imh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1NwYWNlWF9DUlMtNSJ9fSx7ImlkIjoxMywidGl0bGUiOiJQYWQgQWJvcnQgVGVzdCIsImV2ZW50X2RhdGVfdXRjIjoiMjAxNS0wNS0wNlQxMzowMDowMFoiLCJldmVudF9kYXRlX3VuaXgiOjE0MzA5MTcyMDAsImZsaWdodF9udW1iZXIiOm51bGwsImRldGFpbHMiOiJDcmV3IERyYWdvbiB0ZXN0cyBsYXVuY2ggYWJvcnQgc3lzdGVtLCB3aGljaCBjYW4gcHJvdmlkZSBhc3Ryb25hdXRzIHdpdGggZXNjYXBlIGNhcGFiaWxpdHkgYWxsIHRoZSB3YXkgdG8gb3JiaXQuIiwibGlua3MiOnsicmVkZGl0IjoiaHR0cHM6Ly93d3cucmVkZGl0LmNvbS9yL3NwYWNleC9jb21tZW50cy8zNTI3enYvb2ZmaWNpYWxfdmlkZW9fcGFkX2Fib3J0X3Rlc3RfMjAxNS8iLCJhcnRpY2xlIjoiaHR0cHM6Ly9zcGFjZWZsaWdodG5vdy5jb20vMjAxNS8wNC8yMS9kcmFnb24tcGFkLWFib3J0LXRlc3Qtc2V0LWZvci1lYXJseS1tYXkvIiwid2lraXBlZGlhIjoiaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvUGFkX2Fib3J0X3Rlc3QifX0seyJpZCI6MTQsInRpdGxlIjoiRmlyc3QgTGFuZCBMYW5kaW5nIiwiZXZlbnRfZGF0ZV91dGMiOiIyMDE1LTEyLTIyVDAxOjI5OjAwWiIsImV2ZW50X2RhdGVfdW5peCI6MTQ1MDc0Nzc0MCwiZmxpZ2h0X251bWJlciI6MjUsImRldGFpbHMiOiJPbiBEZWNlbWJlciAyMSwgMjAxNSwgdGhlIEZhbGNvbiA5IHJvY2tldCBkZWxpdmVyZWQgMTEgY29tbXVuaWNhdGlvbnMgc2F0ZWxsaXRlcyB0byBvcmJpdCwgYW5kIHRoZSBmaXJzdCBzdGFnZSByZXR1cm5lZCBhbmQgbGFuZGVkIGF0IExhbmRpbmcgWm9uZSAxIC3igJMgdGhlIGZpcnN0LWV2ZXIgb3JiaXRhbCBjbGFzcyByb2NrZXQgbGFuZGluZy4iLCJsaW5rcyI6eyJyZWRkaXQiOiJodHRwczovL3d3dy5yZWRkaXQuY29tL3Ivc3BhY2V4L2NvbW1lbnRzLzN4Z3hoNS9yc3BhY2V4X29yYmNvbW1fb2cyX2xhdW5jaF8yX29mZmljaWFsX2xhdW5jaC8iLCJhcnRpY2xlIjoiaHR0cHM6Ly9zcGFjZWZsaWdodG5vdy5jb20vMjAxNS8xMi8yMi9yb3VuZC10cmlwLXJvY2tldC1mbGlnaHQtZ2l2ZXMtc3BhY2V4LWEtdHJpZmVjdGEtb2Ytc3VjY2Vzc2VzLyIsIndpa2lwZWRpYSI6Imh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0ZhbGNvbl85X2ZsaWdodF8yMCJ9fSx7ImlkIjoxNSwidGl0bGUiOiJEcm9uZXNoaXAgTGFuZGluZyIsImV2ZW50X2RhdGVfdXRjIjoiMjAxNi0wNC0wOFQyMDo0MzowMFoiLCJldmVudF9kYXRlX3VuaXgiOjE0NjAxNDgxODAsImZsaWdodF9udW1iZXIiOjI4LCJkZXRhaWxzIjoiT24gQXByaWwgOCwgMjAxNiwgdGhlIEZhbGNvbiA5IHJvY2tldCBsYXVuY2hlZCB0aGUgRHJhZ29uIHNwYWNlY3JhZnQgdG8gdGhlIEludGVybmF0aW9uYWwgU3BhY2UgU3RhdGlvbiwgYW5kIHRoZSBmaXJzdCBzdGFnZSByZXR1cm5lZCBhbmQgbGFuZGVkIG9uIHRoZSBPZiBDb3Vyc2UgSSBTdGlsbCBMb3ZlIFlvdSBkcm9uZXNoaXAuIiwibGlua3MiOnsicmVkZGl0IjoiaHR0cHM6Ly93d3cucmVkZGl0LmNvbS9yL3NwYWNleC9jb21tZW50cy80ZHRvbHkvcnNwYWNleF9zcGFjZXhfY3JzOF9vZmZpY2lhbF9sYXVuY2hfZGlzY3Vzc2lvbi8iLCJhcnRpY2xlIjoiaHR0cHM6Ly9zcGFjZWZsaWdodG5vdy5jb20vMjAxNi8wNC8wOC9zcGFjZXgtbGFuZHMtcm9ja2V0LW9uLWZsb2F0aW5nLXBsYXRmb3JtLWFmdGVyLXN0YXRpb24tcmVzdXBwbHktbGF1bmNoLyIsIndpa2lwZWRpYSI6Imh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1NwYWNlWF9DUlMtOCJ9fSx7ImlkIjoxNiwidGl0bGUiOiJGaXJzdCBSZWZsaWdodCIsImV2ZW50X2RhdGVfdXRjIjoiMjAxNy0wMy0zMFQyMjoyNzowMFoiLCJldmVudF9kYXRlX3VuaXgiOjE0OTA5MTI4MjAsImZsaWdodF9udW1iZXIiOjM4LCJkZXRhaWxzIjoiT24gTWFyY2ggMzAsIDIwMTcsIFNwYWNlWCBhY2hpZXZlZCB0aGUgd29ybGQncyBmaXJzdCByZWZsaWdodCBvZiBhbiBvcmJpdGFsIGNsYXNzIHJvY2tldC4gRm9sbG93aW5nIGRlbGl2ZXJ5IG9mIHRoZSBwYXlsb2FkLCB0aGUgRmFsY29uIDkgZmlyc3Qgc3RhZ2UgcmV0dXJuZWQgdG8gRWFydGggZm9yIHRoZSBzZWNvbmQgdGltZS4iLCJsaW5rcyI6eyJyZWRkaXQiOiJodHRwczovL3d3dy5yZWRkaXQuY29tL3Ivc3BhY2V4L2NvbW1lbnRzLzYyYXFpNy9yc3BhY2V4X3NlczEwX29mZmljaWFsX2xhdW5jaF9kaXNjdXNzaW9uX3VwZGF0ZXMvIiwiYXJ0aWNsZSI6Imh0dHBzOi8vc3BhY2VmbGlnaHRub3cuY29tLzIwMTcvMDMvMzEvc3BhY2V4LWZsaWVzLXJvY2tldC1mb3Itc2Vjb25kLXRpbWUtaW4taGlzdG9yaWMtdGVzdC1vZi1jb3N0LWN1dHRpbmctdGVjaG5vbG9neS8iLCJ3aWtpcGVkaWEiOiJodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TRVMtMTAifX0seyJpZCI6MTcsInRpdGxlIjoiRmlyc3QgRHJhZ29uIFJlZmxpZ2h0IiwiZXZlbnRfZGF0ZV91dGMiOiIyMDE3LTA2LTAzVDIxOjA3OjAwWiIsImV2ZW50X2RhdGVfdW5peCI6MTQ5NjUyNDAyMCwiZmxpZ2h0X251bWJlciI6NDEsImRldGFpbHMiOiJUaGlzIERyYWdvbiByZXN1cHBseSBtaXNzaW9uIHJlcHJlc2VudGVkIHRoZSBmaXJzdCByZWZsaWdodCBvZiBhIGNvbW1lcmNpYWwgc3BhY2VjcmFmdCB0byBhbmQgZnJvbSB0aGUgSW50ZXJuYXRpb25hbCBTcGFjZSBTdGF0aW9uLiIsImxpbmtzIjp7InJlZGRpdCI6Imh0dHBzOi8vd3d3LnJlZGRpdC5jb20vci9zcGFjZXgvY29tbWVudHMvNmVrdGt0L3dlbGNvbWVfdG9fdGhlX3JzcGFjZXhfY3JzMTFfb2ZmaWNpYWxfbGF1bmNoLyIsImFydGljbGUiOiJodHRwczovL3NwYWNlZmxpZ2h0bm93LmNvbS8yMDE3LzA2LzAzL3JldXNlZC1kcmFnb24tY2FyZ28tY2Fwc3VsZS1sYXVuY2hlZC1vbi1qb3VybmV5LXRvLXNwYWNlLXN0YXRpb24vIiwid2lraXBlZGlhIjoiaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvU3BhY2VYX0NSUy0xMSJ9fSx7ImlkIjoxOCwidGl0bGUiOiJGYWxjb24gSGVhdnkgVGVzdCBGbGlnaHQiLCJldmVudF9kYXRlX3V0YyI6IjIwMTgtMDItMDZUMjA6NDU6MDBaIiwiZXZlbnRfZGF0ZV91bml4IjoxNTE3OTQ5OTAwLCJmbGlnaHRfbnVtYmVyIjo1NSwiZGV0YWlscyI6Ik1haWRlbiBmbGlnaHQgb2YgRmFsY29uIEhlYXZ5LCB1c2luZyB0d28gcmVjb3ZlcmVkIEZhbGNvbiA5IGNvcmVzIGFzIHNpZGUgYm9vc3RlcnMgKGZyb20gdGhlIFRoYWljb20gOCBhbmQgQ1JTLTkgbWlzc2lvbnMpLCBhcyB3ZWxsIGFzIGEgbW9kaWZpZWQgQmxvY2sgMyBib29zdGVyIHJlaW5mb3JjZWQgdG8gZW5kdXJlIHRoZSBhZGRpdGlvbmFsIGxvYWQgZnJvbSB0aGUgdHdvIHNpZGUgYm9vc3RlcnMuIFRoZSBzdGF0aWMgZmlyZSB0ZXN0LCBoZWxkIG9uIEphbnVhcnkgMjQsIHdhcyB0aGUgZmlyc3QgdGltZSAyNyBlbmdpbmVzIHdlcmUgdGVzdGVkIHRvZ2V0aGVyLiBUaGUgbGF1bmNoIHdhcyBhIHN1Y2Nlc3MsIGFuZCB0aGUgc2lkZSBib29zdGVycyBsYW5kZWQgc2ltdWx0YW5lb3VzbHkgYXQgYWRqYWNlbnQgZ3JvdW5kIHBhZHMuIERyb25lIHNoaXAgbGFuZGluZyBvZiB0aGUgY2VudHJhbCBjb3JlIGZhaWxlZCBkdWUgdG8gVEVB4oCTVEVCIGNoZW1pY2FsIGlnbml0ZXIgcnVubmluZyBvdXQsIHByZXZlbnRpbmcgdHdvIG9mIGl0cyBlbmdpbmVzIGZyb20gcmVzdGFydGluZzsgdGhlIGxhbmRpbmcgZmFpbHVyZSBjYXVzZWQgZGFtYWdlIHRvIHRoZSBuZWFyYnkgZHJvbmUgc2hpcC4gRmluYWwgYnVybiB0byBoZWxpb2NlbnRyaWMgTWFyc+KAk0VhcnRoIG9yYml0IHdhcyBwZXJmb3JtZWQgYWZ0ZXIgdGhlIHNlY29uZCBzdGFnZSBhbmQgcGF5bG9hZCBjcnVpc2VkIGZvciA2IGhvdXJzIHRocm91Z2ggdGhlIFZhbiBBbGxlbiBiZWx0cy4gTGF0ZXIsIEVsb24gTXVzayB0d2VldGVkIHRoYXQgdGhlIHRoaXJkIGJ1cm4gd2FzIHN1Y2Nlc3NmdWwsIGFuZCBKUEwncyBIT1JJWk9OUyBzeXN0ZW0gc2hvd2VkIHRoZSBzZWNvbmQgc3RhZ2UgYW5kIHBheWxvYWQgaW4gYW4gb3JiaXQgd2l0aCBhbiBhcGhlbGlvbiBvZiAxLjY3IEFVLiBUaGUgbGl2ZSB3ZWJjYXN0IHByb3ZlZCBpbW1lbnNlbHkgcG9wdWxhciwgYXMgaXQgYmVjYW1lIHRoZSBzZWNvbmQgbW9zdCB3YXRjaGVkIGxpdmVzdHJlYW0gZXZlciBvbiBZb3VUdWJlLCByZWFjaGluZyBvdmVyIDIuMyBtaWxsaW9uIGNvbmN1cnJlbnQgdmlld3MuIiwibGlua3MiOnsicmVkZGl0IjoiaHR0cHM6Ly93d3cucmVkZGl0LmNvbS9yL3NwYWNleC9jb21tZW50cy83dmc2M3gvcnNwYWNleF9mYWxjb25faGVhdnlfdGVzdF9mbGlnaHRfb2ZmaWNpYWxfbGF1bmNoLyIsImFydGljbGUiOiJodHRwczovL3NwYWNlZmxpZ2h0bm93LmNvbS8yMDE4LzAyLzA3L3NwYWNleC1kZWJ1dHMtd29ybGRzLW1vc3QtcG93ZXJmdWwtcm9ja2V0LXNlbmRzLXRlc2xhLXRvd2FyZC10aGUtYXN0ZXJvaWQtYmVsdC8iLCJ3aWtpcGVkaWEiOiJodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9GYWxjb25fSGVhdnlfdGVzdF9mbGlnaHQifX0seyJpZCI6MTksInRpdGxlIjoiRmlyc3QgQmxvY2sgNSBMYXVuY2giLCJldmVudF9kYXRlX3V0YyI6IjIwMTgtMDUtMTFUMjA6MTQ6MDBaIiwiZXZlbnRfZGF0ZV91bml4IjoxNTI2MDY5NjQwLCJmbGlnaHRfbnVtYmVyIjo2MSwiZGV0YWlscyI6IlRoZSBCYW5nYWJhbmRodSBTYXRlbGxpdGUtMSBtaXNzaW9uIHNlcnZlZCBhcyB0aGUgZmlyc3QgZmxpZ2h0IG9mIEZhbGNvbiA5IEJsb2NrIDUsIHRoZSBmaW5hbCBzdWJzdGFudGlhbCB1cGdyYWRlIHRvIFNwYWNlWOKAmXMgRmFsY29uIDkgbGF1bmNoIHZlaGljbGUuIEZhbGNvbiA5IEJsb2NrIDUgaXMgZGVzaWduZWQgdG8gYmUgY2FwYWJsZSBvZiAxMCBvciBtb3JlIGZsaWdodHMgd2l0aCB2ZXJ5IGxpbWl0ZWQgcmVmdXJiaXNobWVudCBhcyBTcGFjZVggY29udGludWVzIHRvIHN0cml2ZSBmb3IgcmFwaWQgcmV1c2FiaWxpdHkgYW5kIGV4dHJlbWVseSBoaWdoIHJlbGlhYmlsaXR5LiIsImxpbmtzIjp7InJlZGRpdCI6Imh0dHBzOi8vd3d3LnJlZGRpdC5jb20vci9zcGFjZXgvY29tbWVudHMvOGlvcTN1L3JzcGFjZXhfYmFuZ2FiYW5kaHUxX29mZmljaWFsX2xhdW5jaF9kaXNjdXNzaW9uLyIsImFydGljbGUiOiJodHRwczovL3NwYWNlZmxpZ2h0bm93LmNvbS8yMDE4LzA1LzExL3NwYWNleC1kZWJ1dHMtYW4taW1wcm92ZWQtaHVtYW4tcmF0ZWQtbW9kZWwtb2YtdGhlLWZhbGNvbi05LXJvY2tldC8iLCJ3aWtpcGVkaWEiOiJodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9CYW5nYWJhbmRodS0xIn19LHsiaWQiOjIwLCJ0aXRsZSI6IkZpcnN0IEJsb2NrIDUgUmVmbGlnaHQiLCJldmVudF9kYXRlX3V0YyI6IjIwMTgtMDgtMDdUMDU6MTg6MDAuMDAwWiIsImV2ZW50X2RhdGVfdW5peCI6MTUzMzYxOTA4MCwiZmxpZ2h0X251bWJlciI6NjcsImRldGFpbHMiOiJJbmRvbmVzaWFuIGNvbXNhdCBpbnRlbmRlZCB0byByZXBsYWNlIHRoZSBhZ2luZyBUZWxrb20gMSBhdCAxMDjCsCBFLiBGaXJzdCByZWZsaWdodCBvZiBhIEJsb2NrIDUtdmVyc2lvbiBib29zdGVyLiIsImxpbmtzIjp7InJlZGRpdCI6Imh0dHBzOi8vd3d3LnJlZGRpdC5jb20vci9zcGFjZXgvY29tbWVudHMvOTUzOW5yL3JzcGFjZXhfbWVyYWhfcHV0aWhfdGVsa29tNF9vZmZpY2lhbF9sYXVuY2gvIiwiYXJ0aWNsZSI6Imh0dHBzOi8vc3BhY2VmbGlnaHRub3cuY29tLzIwMTgvMDgvMDcvaW5kb25lc2lhbi1jb21tdW5pY2F0aW9ucy1zYXRlbGxpdGUtZGVwbG95ZWQtaW4tb3JiaXQtYnktc3BhY2V4LyIsIndpa2lwZWRpYSI6Imh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1RlbGtvbV9JbmRvbmVzaWEifX1d
60
+ http_version:
61
+ recorded_at: Tue, 16 Oct 2018 02:39:03 GMT
62
+ recorded_with: VCR 4.0.0
@@ -0,0 +1,62 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.spacexdata.com/v3/history/4
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.15.3
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - "*/*"
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Date:
22
+ - Tue, 16 Oct 2018 02:43:50 GMT
23
+ Content-Type:
24
+ - application/json; charset=utf-8
25
+ Transfer-Encoding:
26
+ - chunked
27
+ Connection:
28
+ - keep-alive
29
+ Set-Cookie:
30
+ - __cfduid=d54727cd9ad91c46626c14f99de479f611539657830; expires=Wed, 16-Oct-19
31
+ 02:43:50 GMT; path=/; domain=.spacexdata.com; HttpOnly; Secure
32
+ Vary:
33
+ - Accept-Encoding, Origin
34
+ X-Dns-Prefetch-Control:
35
+ - 'off'
36
+ X-Frame-Options:
37
+ - SAMEORIGIN
38
+ Strict-Transport-Security:
39
+ - max-age=15552000; includeSubDomains
40
+ X-Download-Options:
41
+ - noopen
42
+ X-Content-Type-Options:
43
+ - nosniff
44
+ X-Xss-Protection:
45
+ - 1; mode=block
46
+ Access-Control-Allow-Origin:
47
+ - "*"
48
+ X-Response-Time:
49
+ - 37ms
50
+ Expect-Ct:
51
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
52
+ Server:
53
+ - cloudflare
54
+ Cf-Ray:
55
+ - 46a72e1da893241a-IAD
56
+ body:
57
+ encoding: ASCII-8BIT
58
+ string: '{"id":4,"title":"Falcon 9 First Flight","event_date_utc":"2010-06-04T18:45:00Z","event_date_unix":1275677100,"flight_number":6,"details":"Met
59
+ 100% of mission objectives on the first flight!","links":{"reddit":null,"article":"http://www.bbc.com/news/10209704","wikipedia":"https://en.wikipedia.org/wiki/Dragon_Spacecraft_Qualification_Unit"}}'
60
+ http_version:
61
+ recorded_at: Tue, 16 Oct 2018 02:43:50 GMT
62
+ recorded_with: VCR 4.0.0