From 1409762e852be6595f8892b507a5f7b207d0baf3 Mon Sep 17 00:00:00 2001 From: Andrei Kislichenko Date: Tue, 21 Feb 2023 14:53:00 -0500 Subject: [PATCH] fetch ExComm docs #19 --- lib/relaton_bsi/hit_collection.rb | 9 +- lib/relaton_bsi/version.rb | 2 +- spec/relaton_bsi_spec.rb | 12 ++ spec/vcr_cassettes/excomm_full.yml | 195 ++++++++++++++++++++++++++++ spec/vcr_cassettes/excomm_short.yml | 164 +++++++++++++++++++++++ 5 files changed, 377 insertions(+), 5 deletions(-) create mode 100644 spec/vcr_cassettes/excomm_full.yml create mode 100644 spec/vcr_cassettes/excomm_short.yml diff --git a/lib/relaton_bsi/hit_collection.rb b/lib/relaton_bsi/hit_collection.rb index c6b7da1..bc48e7a 100644 --- a/lib/relaton_bsi/hit_collection.rb +++ b/lib/relaton_bsi/hit_collection.rb @@ -11,18 +11,19 @@ class HitCollection < RelatonBib::HitCollection # # Initialize a new HitCollection. # - # @param ref [String] reference + # @param reference [String] reference # @param year [String] year # - def initialize(ref, year = nil) - super ref, year + def initialize(reference, year = nil) + super reference, year config = Algolia::Search::Config.new( application_id: "575YE157G9", api_key: "a057b4e74099445df2eddb7940828a10", ) client = Algolia::Search::Client.new config, logger: ::Logger.new($stderr) index = client.init_index "shopify_products" - resp = index.search text # , facetFilters: "product_type:standard" + ref = text.sub(/ExComm|Expert commentary/, "Ex") + resp = index.search ref # , facetFilters: "product_type:standard" @array = create_hits resp[:hits] end diff --git a/lib/relaton_bsi/version.rb b/lib/relaton_bsi/version.rb index 36cdbc3..c1565e7 100644 --- a/lib/relaton_bsi/version.rb +++ b/lib/relaton_bsi/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module RelatonBsi - VERSION = "1.14.3" + VERSION = "1.14.4" end diff --git a/spec/relaton_bsi_spec.rb b/spec/relaton_bsi_spec.rb index a9fbe0f..76993b0 100644 --- a/spec/relaton_bsi_spec.rb +++ b/spec/relaton_bsi_spec.rb @@ -161,6 +161,18 @@ end end + context "fetch Expert commentary" do + it "full type name", vcr: { cassette_name: "excomm_full" } do + bib = RelatonBsi::BsiBibliography.get "BS 7273-4:2015+A1:2021 Expert commentary" + expect(bib.docidentifier[0].id).to eq "BS 7273-4:2015+A1:2021 ExComm" + end + + it "short type name", vcr: { cassette_name: "excomm_short" } do + bib = RelatonBsi::BsiBibliography.get "BS EN ISO 13485 ExComm" + expect(bib.docidentifier[0].id).to eq "BS EN ISO 13485 Expert Commentary" + end + end + it "could not access site" do index = double "algolia index" client = double "algolia client", init_index: index diff --git a/spec/vcr_cassettes/excomm_full.yml b/spec/vcr_cassettes/excomm_full.yml new file mode 100644 index 0000000..909b7d9 --- /dev/null +++ b/spec/vcr_cassettes/excomm_full.yml @@ -0,0 +1,195 @@ +--- +http_interactions: +- request: + method: post + uri: https://575ye157g9-dsn.algolia.net/1/indexes/shopify_products/query + body: + encoding: UTF-8 + string: '{"query":"BS 7273-4:2015+A1:2021 Ex"}' + headers: + User-Agent: + - Algolia for Ruby (2.2.5), Ruby (3.0.0) + X-Algolia-Api-Key: + - a057b4e74099445df2eddb7940828a10 + X-Algolia-Application-Id: + - 575YE157G9 + Content-Type: + - application/json; charset=utf-8 + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Connection: + - keep-alive + Keep-Alive: + - '30' + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Tue, 21 Feb 2023 19:43:34 GMT + Content-Type: + - application/json; charset=UTF-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + X-Alg-Pt: + - '1' + Accept-Encoding: + - deflate, gzip + Cache-Control: + - no-store + Access-Control-Allow-Origin: + - "*" + Timing-Allow-Origin: + - "*" + X-Content-Type-Options: + - nosniff + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Content-Disposition: + - inline; filename=a.txt + body: + encoding: ASCII-8BIT + string: '{"hits":[{"title":"Code of practice for the operation of fire protection + measures. - Actuation of release mechanisms for doors","updated_at":"2022-12-30T01:58:05.000Z","_tags":["id:6976627540133","indexing_token:c65e645c522e39694ddce531b36e1741"],"handle":"code-of-practice-for-the-operation-of-fire-protection-measures-actuation-of-release-mechanisms-for-doors-2","vendor":"BSI + Shop","product_type":"publication","template_suffix":"","sku":"000000000030432564","barcode":null,"position":1,"requires_shipping":false,"taxable":true,"inventory_quantity":0,"option1":"Digital","option2":null,"option3":null,"id":6976627540133,"tags":["format:digital","has-hardcopy","Ingestion-build-48068","Ingestion-build-54484","Ingestion-build-89079","subscription-only"],"option_names":["title"],"variants_count":1,"variants_min_price":75.0,"variants_max_price":75.0,"variants_inventory_count":0,"product_image":"https://cdn.shopify.com/s/files/1/0555/5329/4501/products/Digital_84b11753-415b-4a7b-b246-00825488926d.png?v=1628928234","published_at":"2021-08-14T09:03:52.000Z","body_html_safe":"","variant_title":"Digital","inventory_policy":"deny","inventory_management":"shopify","inventory_management_shopify":0,"inventory_available":false,"options":{"title":"Digital"},"price":75.0,"compare_at_price":37.5,"price_ratio":2.0,"price_range":"75:100","grams":0,"weight":"0.0lb","image":"https://cdn.shopify.com/s/files/1/0555/5329/4501/products/Digital_84b11753-415b-4a7b-b246-00825488926d.png?v=1628928234","named_tags":{},"named_tags_names":[],"created_at":"2021-08-14T09:03:52.000Z","meta":{"global":{"descriptorsAlgoliaStringArray":["Fire + alarms","Locks","Closing and check mechanisms","Fire safety in buildings","Control + equipment","Doors","Fire detectors","Means of escape from fire in buildings","Design","Emergency + exits","Manual control systems","Maintenance","Fire doors","Release mechanisms","Fire + safety","Actuators","Control systems","Installation","Shutters (buildings)"],"designatedStandard":"false","icsCodesAlgoliaStringArray":["13.220.20 + Fire protection"],"industriesAlgoliaStringArray":["Fire"],"modulesAlgoliaStringArray":["BSI_GBM08"],"primaryDesignator":["BS + 7273-4:2015+A1:2021 ExComm","BS7273-4:2015+A1:2021 ExComm","BS7273-4:2015+A1:2021ExComm","BS + 7273-4:2015+A1:2021ExComm"],"publishedDate":"2021-01-25","publisher":"BSI","status":"Current","statusNumeric":300},"group_search":{"description":"Code + of practice for the operation of fire protection measures. - Actuation of + release mechanisms for doors","member_price":37.5,"price":75,"title":"BS 7273-4:2015+A1:2021 + ExComm"}},"objectID":"40582591676581","_snippetResult":{"body_html_safe":{"value":"","matchLevel":"none"}},"_highlightResult":{"title":{"value":"Code + of practice for the operation of fire protection measures. - Actuation of + release mechanisms for doors","matchLevel":"none","matchedWords":[]},"sku":{"value":"000000000030432564","matchLevel":"none","matchedWords":[]},"body_html_safe":{"value":"","matchLevel":"none","matchedWords":[]},"meta":{"global":{"descriptorsAlgoliaStringArray":[{"value":"Fire + alarms","matchLevel":"none","matchedWords":[]},{"value":"Locks","matchLevel":"none","matchedWords":[]},{"value":"Closing + and check mechanisms","matchLevel":"none","matchedWords":[]},{"value":"Fire + safety in buildings","matchLevel":"none","matchedWords":[]},{"value":"Control + equipment","matchLevel":"none","matchedWords":[]},{"value":"Doors","matchLevel":"none","matchedWords":[]},{"value":"Fire + detectors","matchLevel":"none","matchedWords":[]},{"value":"Means of escape + from fire in buildings","matchLevel":"none","matchedWords":[]},{"value":"Design","matchLevel":"none","matchedWords":[]},{"value":"Emergency + exits","matchLevel":"partial","fullyHighlighted":false,"matchedWords":["ex"]},{"value":"Manual + control systems","matchLevel":"none","matchedWords":[]},{"value":"Maintenance","matchLevel":"none","matchedWords":[]},{"value":"Fire + doors","matchLevel":"none","matchedWords":[]},{"value":"Release mechanisms","matchLevel":"none","matchedWords":[]},{"value":"Fire + safety","matchLevel":"none","matchedWords":[]},{"value":"Actuators","matchLevel":"none","matchedWords":[]},{"value":"Control + systems","matchLevel":"none","matchedWords":[]},{"value":"Installation","matchLevel":"none","matchedWords":[]},{"value":"Shutters + (buildings)","matchLevel":"none","matchedWords":[]}],"icsCodesAlgoliaStringArray":[{"value":"13.220.20 + Fire protection","matchLevel":"none","matchedWords":[]}],"industriesAlgoliaStringArray":[{"value":"Fire","matchLevel":"none","matchedWords":[]}],"modulesAlgoliaStringArray":[{"value":"BSI_GBM08","matchLevel":"none","matchedWords":[]}],"primaryDesignator":[{"value":"BS + 7273-4:2015+A1:2021 ExComm","matchLevel":"full","fullyHighlighted":false,"matchedWords":["bs","7273","4","2015","a1","2021","ex"]},{"value":"BS7273-4:2015+A1:2021 + ExComm","matchLevel":"full","fullyHighlighted":false,"matchedWords":["bs","7273","4","2015","a1","2021","ex"]},{"value":"BS7273-4:2015+A1:2021ExComm","matchLevel":"full","fullyHighlighted":false,"matchedWords":["bs","7273","4","2015","a1","2021","ex"]},{"value":"BS + 7273-4:2015+A1:2021ExComm","matchLevel":"full","fullyHighlighted":false,"matchedWords":["bs","7273","4","2015","a1","2021","ex"]}],"publisher":{"value":"BSI","matchLevel":"none","matchedWords":[]},"status":{"value":"Current","matchLevel":"none","matchedWords":[]}}}}}],"nbHits":1,"page":0,"nbPages":1,"hitsPerPage":20,"exhaustiveNbHits":true,"exhaustiveTypo":true,"exhaustive":{"nbHits":true,"typo":true},"query":"BS + 7273-4:2015+A1:2021 Ex","params":"query=BS+7273-4%3A2015%2BA1%3A2021+Ex&distinct=1&filters=NOT+tags%3Ahas-digital&filters=NOT+tags%3Anot-for-sale&filters=NOT+product_type%3Amembership","renderingContent":{},"processingTimeMS":1,"processingTimingsMS":{"request":{"roundTrip":142}},"serverTimeMS":1}' + http_version: + recorded_at: Tue, 21 Feb 2023 19:43:34 GMT +- request: + method: post + uri: https://shop-bsi.myshopify.com/api/2021-04/graphql.json + body: + encoding: UTF-8 + string: '{"query":"query RelatonBsi__Scrapper__Query__GetProducts($h0: String!) + {\n productByHandle(handle: $h0) {\n ...RelatonBsi__Scrapper__Product__ProductFragment\n }\n}\n\nfragment + RelatonBsi__Scrapper__Product__ProductFragment on Product {\n createdAt\n publishedAt\n updatedAt\n productType\n committee: + metafield(namespace: \"global\", key: \"committee\") {\n value\n }\n designated: + metafield(namespace: \"global\", key: \"designatedStandard\") {\n value\n }\n packContents: + metafield(namespace: \"global\", key: \"packContents\") {\n value\n }\n summary: + metafield(namespace: \"global\", key: \"summary\") {\n value\n }\n corrigendumHandle: + metafield(namespace: \"global\", key: \"corrigendumHandle\") {\n value\n }\n variants(first: + 250) {\n edges {\n node {\n version: metafield(namespace: \"global\", + key: \"version\") {\n value\n }\n isbn: metafield(namespace: + \"global\", key: \"isbn\") {\n value\n }\n }\n }\n }\n description\n}","variables":{"h0":"code-of-practice-for-the-operation-of-fire-protection-measures-actuation-of-release-mechanisms-for-doors-2"},"operationName":"RelatonBsi__Scrapper__Query__GetProducts"}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Content-Type: + - application/json + X-Shopify-Storefront-Access-Token: + - c935c196c0b7d1d86bfb5139006cfd46 + response: + status: + code: 200 + message: OK + headers: + Date: + - Tue, 21 Feb 2023 19:43:34 GMT + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + X-Sorting-Hat-Podid: + - '164' + X-Sorting-Hat-Shopid: + - '55553294501' + X-Storefront-Renderer-Rendered: + - '1' + Vary: + - Accept + - Accept-Encoding + X-Shopify-Api-Version-Warning: + - https://shopify.dev/concepts/about-apis/versioning + X-Shopify-Api-Deprecated-Reason: + - https://shopify.dev/api/usage/versioning#deprecation-practices + X-Frame-Options: + - DENY + Content-Security-Policy: + - block-all-mixed-content; frame-ancestors 'none'; upgrade-insecure-requests; + Access-Control-Allow-Origin: + - "*" + X-Shopify-Api-Version: + - 2022-01 + X-Shopid: + - '55553294501' + X-Shardid: + - '164' + Content-Language: + - en + Server-Timing: + - cfRequestDuration;dur=151.000023 + - processing;dur=68, db;dur=32, asn;desc="11426", edge;desc="IAD", country;desc="US" + X-Shopify-Stage: + - production + X-Dc: + - gcp-us-east4,gcp-us-east1,gcp-us-east1 + X-Request-Id: + - 9e4309bd-527a-49eb-ac29-847f43f6b7c0 + X-Download-Options: + - noopen + X-Xss-Protection: + - 1; mode=block + X-Permitted-Cross-Domain-Policies: + - none + X-Content-Type-Options: + - nosniff + Cf-Cache-Status: + - DYNAMIC + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=DnbGEgu%2FYVU9ff%2BlvKatg4xsQ6aYYYaUwfd3zoW7DzSwQ8wakjoii%2Bar0zNuue5EhUU2UOfoeZFTjYZ74XjQ87A%2BJXh2JLlgr0WB25VfAt5xv35iEKW9qH2cu75ODjwgABccbY4oqdk%3D"}],"group":"cf-nel","max_age":604800}' + Nel: + - '{"success_fraction":0.01,"report_to":"cf-nel","max_age":604800}' + Server: + - cloudflare + Cf-Ray: + - 79d1f8c21e2d828d-IAD + Alt-Svc: + - h3=":443"; ma=86400, h3-29=":443"; ma=86400 + body: + encoding: ASCII-8BIT + string: '{"data":{"productByHandle":{"createdAt":"2021-08-14T08:03:52Z","publishedAt":"2021-08-14T08:03:55Z","updatedAt":"2022-12-30T01:58:05Z","productType":"publication","committee":{"value":"FSH/12/4"},"designated":{"value":"false"},"packContents":null,"summary":null,"corrigendumHandle":null,"variants":{"edges":[{"node":{"version":{"value":"basic"},"isbn":{"value":"978 + 0 539 16669 9"}}}]},"description":""}}}' + http_version: + recorded_at: Tue, 21 Feb 2023 19:43:34 GMT +recorded_with: VCR 5.0.0 diff --git a/spec/vcr_cassettes/excomm_short.yml b/spec/vcr_cassettes/excomm_short.yml new file mode 100644 index 0000000..af3abe0 --- /dev/null +++ b/spec/vcr_cassettes/excomm_short.yml @@ -0,0 +1,164 @@ +--- +http_interactions: +- request: + method: post + uri: https://575ye157g9-dsn.algolia.net/1/indexes/shopify_products/query + body: + encoding: UTF-8 + string: '{"query":"BS EN ISO 13485 Ex"}' + headers: + User-Agent: + - Algolia for Ruby (2.2.5), Ruby (3.0.0) + X-Algolia-Api-Key: + - a057b4e74099445df2eddb7940828a10 + X-Algolia-Application-Id: + - 575YE157G9 + Content-Type: + - application/json; charset=utf-8 + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + Connection: + - keep-alive + Keep-Alive: + - '30' + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx + Date: + - Tue, 21 Feb 2023 19:42:43 GMT + Content-Type: + - application/json; charset=UTF-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + X-Alg-Pt: + - '3' + Accept-Encoding: + - deflate, gzip + Cache-Control: + - no-store + Access-Control-Allow-Origin: + - "*" + Timing-Allow-Origin: + - "*" + X-Content-Type-Options: + - nosniff + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Content-Disposition: + - inline; filename=a.txt + body: + encoding: ASCII-8BIT + string: !binary |- + eyJoaXRzIjpbeyJ0aXRsZSI6IkV4cGVydCBDb21tZW50YXJ5IGZvciBCUyBFTiBJU08gMTM0ODU6MjAxNiIsInVwZGF0ZWRfYXQiOiIyMDIyLTA4LTE2VDEwOjIxOjAzLjAwMFoiLCJfdGFncyI6WyJpZDo3NjUzMDYzNzIxMTI1IiwiaW5kZXhpbmdfdG9rZW46N2IwMDY0MzFiOTNhMTUzMzNkOTg0NWM1OGVlOTkzY2MiXSwiaGFuZGxlIjoiZXhwZXJ0LWNvbW1lbnRhcnktZm9yLWJzLWVuLWlzby0xMzQ4NS0yMDE2IiwidmVuZG9yIjoiQlNJIFNob3AiLCJwcm9kdWN0X3R5cGUiOiJwdWJsaWNhdGlvbiIsInRlbXBsYXRlX3N1ZmZpeCI6bnVsbCwic2t1IjoiMDAwMDAwMDAwMDMwNDU0NTc1IiwiYmFyY29kZSI6bnVsbCwicG9zaXRpb24iOjEsInJlcXVpcmVzX3NoaXBwaW5nIjpmYWxzZSwidGF4YWJsZSI6dHJ1ZSwiaW52ZW50b3J5X3F1YW50aXR5IjotMiwib3B0aW9uMSI6IkRpZ2l0YWwiLCJvcHRpb24yIjpudWxsLCJvcHRpb24zIjpudWxsLCJpZCI6NzY1MzA2MzcyMTEyNSwidGFncyI6WyJmb3JtYXQ6ZGlnaXRhbCIsImhhcy1oYXJkY29weSIsImluY2x1ZGVkLWluLWtpdCIsIkluZ2VzdGlvbi1idWlsZC02NzE3MCIsIkluZ2VzdGlvbi1idWlsZC03MzkzNSIsInNob3Atb25seSJdLCJvcHRpb25fbmFtZXMiOlsidGl0bGUiXSwidmFyaWFudHNfY291bnQiOjEsInZhcmlhbnRzX21pbl9wcmljZSI6MTU1LjAsInZhcmlhbnRzX21heF9wcmljZSI6MTU1LjAsInZhcmlhbnRzX2ludmVudG9yeV9jb3VudCI6LTIsInByb2R1Y3RfaW1hZ2UiOiJodHRwczovL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDU1NS81MzI5LzQ1MDEvcHJvZHVjdHMvRGlnaXRhbF8xNGE2MTdiOS0zMDQzLTQ3MTYtOTdhMy00Y2YxM2Q0OTMzYzMucG5nP3Y9MTY1MDAwMTA2MyIsInB1Ymxpc2hlZF9hdCI6IjIwMjItMDQtMTVUMDY6Mzc6NDAuMDAwWiIsImJvZHlfaHRtbF9zYWZlIjpudWxsLCJ2YXJpYW50X3RpdGxlIjoiRGlnaXRhbCIsImludmVudG9yeV9wb2xpY3kiOiJkZW55IiwiaW52ZW50b3J5X21hbmFnZW1lbnQiOm51bGwsImludmVudG9yeV9tYW5hZ2VtZW50X3Nob3BpZnkiOjAsImludmVudG9yeV9hdmFpbGFibGUiOmZhbHNlLCJvcHRpb25zIjp7InRpdGxlIjoiRGlnaXRhbCJ9LCJwcmljZSI6MTU1LjAsImNvbXBhcmVfYXRfcHJpY2UiOjAsInByaWNlX3JhdGlvIjowLCJwcmljZV9yYW5nZSI6IjE1MDoyMDAiLCJncmFtcyI6MCwid2VpZ2h0IjoiMC4wbGIiLCJpbWFnZSI6Imh0dHBzOi8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wNTU1LzUzMjkvNDUwMS9wcm9kdWN0cy9EaWdpdGFsXzE0YTYxN2I5LTMwNDMtNDcxNi05N2EzLTRjZjEzZDQ5MzNjMy5wbmc/dj0xNjUwMDAxMDYzIiwibmFtZWRfdGFncyI6e30sIm5hbWVkX3RhZ3NfbmFtZXMiOltdLCJjcmVhdGVkX2F0IjoiMjAyMi0wNC0xNVQwNjozNzo0MC4wMDBaIiwibWV0YSI6eyJnbG9iYWwiOnsiZGVzaWduYXRlZFN0YW5kYXJkIjoiZmFsc2UiLCJpY3NDb2Rlc0FsZ29saWFTdHJpbmdBcnJheSI6WyIwMy4xMDAuMDEgQ29tcGFueSBvcmdhbml6YXRpb24gYW5kIG1hbmFnZW1lbnQgaW4gZ2VuZXJhbCJdLCJpbmR1c3RyaWVzQWxnb2xpYVN0cmluZ0FycmF5IjpbIlB1YmxpYyBTZWN0b3IiXSwibW9kdWxlc0FsZ29saWFTdHJpbmdBcnJheSI6WyJCU0lfR0JNMDQiXSwicHJpbWFyeURlc2lnbmF0b3IiOlsiQlMgRU4gSVNPIDEzNDg1IEV4cGVydCBDb21tZW50YXJ5IiwiQlNFTiBJU08gMTM0ODUgRXhwZXJ0IENvbW1lbnRhcnkiLCJCU0VOSVNPIDEzNDg1IEV4cGVydCBDb21tZW50YXJ5IiwiQlNFTklTTzEzNDg1IEV4cGVydCBDb21tZW50YXJ5IiwiQlNFTklTTzEzNDg1RXhwZXJ0IENvbW1lbnRhcnkiLCJCU0VOSVNPMTM0ODVFeHBlcnRDb21tZW50YXJ5IiwiQlNFTklTTzEzNDg1IEV4cGVydENvbW1lbnRhcnkiLCJCU0VOSVNPIDEzNDg1RXhwZXJ0IENvbW1lbnRhcnkiLCJCU0VOSVNPIDEzNDg1RXhwZXJ0Q29tbWVudGFyeSIsIkJTRU5JU08gMTM0ODUgRXhwZXJ0Q29tbWVudGFyeSIsIkJTRU4gSVNPMTM0ODUgRXhwZXJ0IENvbW1lbnRhcnkiLCJCU0VOIElTTzEzNDg1RXhwZXJ0IENvbW1lbnRhcnkiLCJCU0VOIElTTzEzNDg1RXhwZXJ0Q29tbWVudGFyeSIsIkJTRU4gSVNPMTM0ODUgRXhwZXJ0Q29tbWVudGFyeSIsIkJTRU4gSVNPIDEzNDg1RXhwZXJ0IENvbW1lbnRhcnkiLCJCU0VOIElTTyAxMzQ4NUV4cGVydENvbW1lbnRhcnkiLCJCU0VOIElTTyAxMzQ4NSBFeHBlcnRDb21tZW50YXJ5IiwiQlMgRU5JU08gMTM0ODUgRXhwZXJ0IENvbW1lbnRhcnkiLCJCUyBFTklTTzEzNDg1IEV4cGVydCBDb21tZW50YXJ5IiwiQlMgRU5JU08xMzQ4NUV4cGVydCBDb21tZW50YXJ5IiwiQlMgRU5JU08xMzQ4NUV4cGVydENvbW1lbnRhcnkiLCJCUyBFTklTTzEzNDg1IEV4cGVydENvbW1lbnRhcnkiLCJCUyBFTklTTyAxMzQ4NUV4cGVydCBDb21tZW50YXJ5IiwiQlMgRU5JU08gMTM0ODVFeHBlcnRDb21tZW50YXJ5IiwiQlMgRU5JU08gMTM0ODUgRXhwZXJ0Q29tbWVudGFyeSIsIkJTIEVOIElTTzEzNDg1IEV4cGVydCBDb21tZW50YXJ5IiwiQlMgRU4gSVNPMTM0ODVFeHBlcnQgQ29tbWVudGFyeSIsIkJTIEVOIElTTzEzNDg1RXhwZXJ0Q29tbWVudGFyeSIsIkJTIEVOIElTTzEzNDg1IEV4cGVydENvbW1lbnRhcnkiLCJCUyBFTiBJU08gMTM0ODVFeHBlcnQgQ29tbWVudGFyeSIsIkJTIEVOIElTTyAxMzQ4NUV4cGVydENvbW1lbnRhcnkiLCJCUyBFTiBJU08gMTM0ODUgRXhwZXJ0Q29tbWVudGFyeSJdLCJwdWJsaXNoZWREYXRlIjoiMjAyMi0wMi0wMyIsInB1Ymxpc2hlciI6IkJTSSIsInN0YXR1cyI6IkN1cnJlbnQiLCJzdGF0dXNOdW1lcmljIjozMDB9LCJncm91cF9zZWFyY2giOnsiZGVzY3JpcHRpb24iOiJFeHBlcnQgQ29tbWVudGFyeSBmb3IgQlMgRU4gSVNPIDEzNDg1OjIwMTYiLCJtZW1iZXJfcHJpY2UiOjE1NSwicHJpY2UiOjE1NSwidGl0bGUiOiJCUyBFTiBJU08gMTM0ODUgRXhwZXJ0IENvbW1lbnRhcnkifX0sIm9iamVjdElEIjoiNDE1NzI4MDI0MjkwOTMiLCJfaGlnaGxpZ2h0UmVzdWx0Ijp7InRpdGxlIjp7InZhbHVlIjoiPGVtPkV4PC9lbT5wZXJ0IENvbW1lbnRhcnkgZm9yIDxlbT5CUyBFTjwvZW0+IDxlbT5JU088L2VtPiA8ZW0+MTM0ODU8L2VtPjoyMDE2IiwibWF0Y2hMZXZlbCI6ImZ1bGwiLCJmdWxseUhpZ2hsaWdodGVkIjpmYWxzZSwibWF0Y2hlZFdvcmRzIjpbImJzIiwiZW4iLCJpc28iLCIxMzQ4NSIsImV4Il19LCJza3UiOnsidmFsdWUiOiIwMDAwMDAwMDAwMzA0NTQ1NzUiLCJtYXRjaExldmVsIjoibm9uZSIsIm1hdGNoZWRXb3JkcyI6W119LCJtZXRhIjp7Imdsb2JhbCI6eyJpY3NDb2Rlc0FsZ29saWFTdHJpbmdBcnJheSI6W3sidmFsdWUiOiIwMy4xMDAuMDEgQ29tcGFueSBvcmdhbml6YXRpb24gYW5kIG1hbmFnZW1lbnQgaW4gZ2VuZXJhbCIsIm1hdGNoTGV2ZWwiOiJub25lIiwibWF0Y2hlZFdvcmRzIjpbXX1dLCJpbmR1c3RyaWVzQWxnb2xpYVN0cmluZ0FycmF5IjpbeyJ2YWx1ZSI6IlB1YmxpYyBTZWN0b3IiLCJtYXRjaExldmVsIjoibm9uZSIsIm1hdGNoZWRXb3JkcyI6W119XSwibW9kdWxlc0FsZ29saWFTdHJpbmdBcnJheSI6W3sidmFsdWUiOiJCU0lfR0JNMDQiLCJtYXRjaExldmVsIjoibm9uZSIsIm1hdGNoZWRXb3JkcyI6W119XSwicHJpbWFyeURlc2lnbmF0b3IiOlt7InZhbHVlIjoiPGVtPkJTIEVOPC9lbT4gPGVtPklTTzwvZW0+IDxlbT4xMzQ4NTwvZW0+IDxlbT5FeDwvZW0+cGVydCBDb21tZW50YXJ5IiwibWF0Y2hMZXZlbCI6ImZ1bGwiLCJmdWxseUhpZ2hsaWdodGVkIjpmYWxzZSwibWF0Y2hlZFdvcmRzIjpbImJzIiwiZW4iLCJpc28iLCIxMzQ4NSIsImV4Il19LHsidmFsdWUiOiI8ZW0+QlNFTiBJU08gMTM0ODUgRXhwZXJ0IENvbW1lbnRhcnk8L2VtPiIsIm1hdGNoTGV2ZWwiOiJmdWxsIiwiZnVsbHlIaWdobGlnaHRlZCI6ZmFsc2UsIm1hdGNoZWRXb3JkcyI6WyJicyIsImVuIiwiaXNvIiwiMTM0ODUiLCJleCJdfSx7InZhbHVlIjoiQlNFTklTTyA8ZW0+MTM0ODU8L2VtPiA8ZW0+RXg8L2VtPnBlcnQgQ29tbWVudGFyeSIsIm1hdGNoTGV2ZWwiOiJwYXJ0aWFsIiwiZnVsbHlIaWdobGlnaHRlZCI6ZmFsc2UsIm1hdGNoZWRXb3JkcyI6WyIxMzQ4NSIsImV4Il19LHsidmFsdWUiOiJCU0VOSVNPMTM0ODUgPGVtPkV4PC9lbT5wZXJ0IENvbW1lbnRhcnkiLCJtYXRjaExldmVsIjoicGFydGlhbCIsImZ1bGx5SGlnaGxpZ2h0ZWQiOmZhbHNlLCJtYXRjaGVkV29yZHMiOlsiZXgiXX0seyJ2YWx1ZSI6IjxlbT5CU0VOSVNPMTM0ODVFeDwvZW0+cGVydCBDb21tZW50YXJ5IiwibWF0Y2hMZXZlbCI6InBhcnRpYWwiLCJmdWxseUhpZ2hsaWdodGVkIjpmYWxzZSwibWF0Y2hlZFdvcmRzIjpbImlzbyIsIjEzNDg1IiwiZXgiXX0seyJ2YWx1ZSI6IjxlbT5CU0VOSVNPMTM0ODVFeDwvZW0+cGVydENvbW1lbnRhcnkiLCJtYXRjaExldmVsIjoicGFydGlhbCIsImZ1bGx5SGlnaGxpZ2h0ZWQiOmZhbHNlLCJtYXRjaGVkV29yZHMiOlsiaXNvIiwiMTM0ODUiLCJleCJdfSx7InZhbHVlIjoiQlNFTklTTzEzNDg1IDxlbT5FeDwvZW0+cGVydENvbW1lbnRhcnkiLCJtYXRjaExldmVsIjoicGFydGlhbCIsImZ1bGx5SGlnaGxpZ2h0ZWQiOmZhbHNlLCJtYXRjaGVkV29yZHMiOlsiZXgiXX0seyJ2YWx1ZSI6IkJTRU5JU08gMTM0ODVFeHBlcnQgQ29tbWVudGFyeSIsIm1hdGNoTGV2ZWwiOiJub25lIiwibWF0Y2hlZFdvcmRzIjpbXX0seyJ2YWx1ZSI6IkJTRU5JU08gMTM0ODVFeHBlcnRDb21tZW50YXJ5IiwibWF0Y2hMZXZlbCI6Im5vbmUiLCJtYXRjaGVkV29yZHMiOltdfSx7InZhbHVlIjoiQlNFTklTTyA8ZW0+MTM0ODU8L2VtPiA8ZW0+RXg8L2VtPnBlcnRDb21tZW50YXJ5IiwibWF0Y2hMZXZlbCI6InBhcnRpYWwiLCJmdWxseUhpZ2hsaWdodGVkIjpmYWxzZSwibWF0Y2hlZFdvcmRzIjpbIjEzNDg1IiwiZXgiXX0seyJ2YWx1ZSI6IjxlbT5CU0VOPC9lbT4gSVNPMTM0ODUgPGVtPkV4PC9lbT5wZXJ0IENvbW1lbnRhcnkiLCJtYXRjaExldmVsIjoicGFydGlhbCIsImZ1bGx5SGlnaGxpZ2h0ZWQiOmZhbHNlLCJtYXRjaGVkV29yZHMiOlsiYnMiLCJlbiIsImV4Il19LHsidmFsdWUiOiI8ZW0+QlNFTjwvZW0+IElTTzEzNDg1RXhwZXJ0IENvbW1lbnRhcnkiLCJtYXRjaExldmVsIjoicGFydGlhbCIsImZ1bGx5SGlnaGxpZ2h0ZWQiOmZhbHNlLCJtYXRjaGVkV29yZHMiOlsiYnMiLCJlbiJdfSx7InZhbHVlIjoiPGVtPkJTRU48L2VtPiBJU08xMzQ4NUV4cGVydENvbW1lbnRhcnkiLCJtYXRjaExldmVsIjoicGFydGlhbCIsImZ1bGx5SGlnaGxpZ2h0ZWQiOmZhbHNlLCJtYXRjaGVkV29yZHMiOlsiYnMiLCJlbiJdfSx7InZhbHVlIjoiPGVtPkJTRU48L2VtPiBJU08xMzQ4NSA8ZW0+RXg8L2VtPnBlcnRDb21tZW50YXJ5IiwibWF0Y2hMZXZlbCI6InBhcnRpYWwiLCJmdWxseUhpZ2hsaWdodGVkIjpmYWxzZSwibWF0Y2hlZFdvcmRzIjpbImJzIiwiZW4iLCJleCJdfSx7InZhbHVlIjoiPGVtPkJTRU48L2VtPiA8ZW0+SVNPPC9lbT4gMTM0ODVFeHBlcnQgQ29tbWVudGFyeSIsIm1hdGNoTGV2ZWwiOiJwYXJ0aWFsIiwiZnVsbHlIaWdobGlnaHRlZCI6ZmFsc2UsIm1hdGNoZWRXb3JkcyI6WyJicyIsImVuIiwiaXNvIl19LHsidmFsdWUiOiI8ZW0+QlNFTjwvZW0+IDxlbT5JU088L2VtPiAxMzQ4NUV4cGVydENvbW1lbnRhcnkiLCJtYXRjaExldmVsIjoicGFydGlhbCIsImZ1bGx5SGlnaGxpZ2h0ZWQiOmZhbHNlLCJtYXRjaGVkV29yZHMiOlsiYnMiLCJlbiIsImlzbyJdfSx7InZhbHVlIjoiPGVtPkJTRU48L2VtPiA8ZW0+SVNPPC9lbT4gPGVtPjEzNDg1PC9lbT4gPGVtPkV4PC9lbT5wZXJ0Q29tbWVudGFyeSIsIm1hdGNoTGV2ZWwiOiJmdWxsIiwiZnVsbHlIaWdobGlnaHRlZCI6ZmFsc2UsIm1hdGNoZWRXb3JkcyI6WyJicyIsImVuIiwiaXNvIiwiMTM0ODUiLCJleCJdfSx7InZhbHVlIjoiPGVtPkJTIEVOSVNPIDEzNDg1IEV4cGVydCBDb21tZW50YXJ5PC9lbT4iLCJtYXRjaExldmVsIjoicGFydGlhbCIsImZ1bGx5SGlnaGxpZ2h0ZWQiOmZhbHNlLCJtYXRjaGVkV29yZHMiOlsiaXNvIiwiMTM0ODUiLCJleCJdfSx7InZhbHVlIjoiPGVtPkJTPC9lbT4gRU5JU08xMzQ4NSA8ZW0+RXg8L2VtPnBlcnQgQ29tbWVudGFyeSIsIm1hdGNoTGV2ZWwiOiJwYXJ0aWFsIiwiZnVsbHlIaWdobGlnaHRlZCI6ZmFsc2UsIm1hdGNoZWRXb3JkcyI6WyJicyIsImV4Il19LHsidmFsdWUiOiI8ZW0+QlM8L2VtPiBFTklTTzEzNDg1RXhwZXJ0IENvbW1lbnRhcnkiLCJtYXRjaExldmVsIjoicGFydGlhbCIsImZ1bGx5SGlnaGxpZ2h0ZWQiOmZhbHNlLCJtYXRjaGVkV29yZHMiOlsiYnMiXX0seyJ2YWx1ZSI6IjxlbT5CUzwvZW0+IEVOSVNPMTM0ODVFeHBlcnRDb21tZW50YXJ5IiwibWF0Y2hMZXZlbCI6InBhcnRpYWwiLCJmdWxseUhpZ2hsaWdodGVkIjpmYWxzZSwibWF0Y2hlZFdvcmRzIjpbImJzIl19LHsidmFsdWUiOiI8ZW0+QlM8L2VtPiBFTklTTzEzNDg1IDxlbT5FeDwvZW0+cGVydENvbW1lbnRhcnkiLCJtYXRjaExldmVsIjoicGFydGlhbCIsImZ1bGx5SGlnaGxpZ2h0ZWQiOmZhbHNlLCJtYXRjaGVkV29yZHMiOlsiYnMiLCJleCJdfSx7InZhbHVlIjoiPGVtPkJTPC9lbT4gRU5JU08gMTM0ODVFeHBlcnQgQ29tbWVudGFyeSIsIm1hdGNoTGV2ZWwiOiJwYXJ0aWFsIiwiZnVsbHlIaWdobGlnaHRlZCI6ZmFsc2UsIm1hdGNoZWRXb3JkcyI6WyJicyJdfSx7InZhbHVlIjoiPGVtPkJTPC9lbT4gRU5JU08gMTM0ODVFeHBlcnRDb21tZW50YXJ5IiwibWF0Y2hMZXZlbCI6InBhcnRpYWwiLCJmdWxseUhpZ2hsaWdodGVkIjpmYWxzZSwibWF0Y2hlZFdvcmRzIjpbImJzIl19LHsidmFsdWUiOiI8ZW0+QlM8L2VtPiBFTklTTyA8ZW0+MTM0ODU8L2VtPiA8ZW0+RXg8L2VtPnBlcnRDb21tZW50YXJ5IiwibWF0Y2hMZXZlbCI6InBhcnRpYWwiLCJmdWxseUhpZ2hsaWdodGVkIjpmYWxzZSwibWF0Y2hlZFdvcmRzIjpbImJzIiwiMTM0ODUiLCJleCJdfSx7InZhbHVlIjoiPGVtPkJTIEVOPC9lbT4gSVNPMTM0ODUgPGVtPkV4PC9lbT5wZXJ0IENvbW1lbnRhcnkiLCJtYXRjaExldmVsIjoicGFydGlhbCIsImZ1bGx5SGlnaGxpZ2h0ZWQiOmZhbHNlLCJtYXRjaGVkV29yZHMiOlsiYnMiLCJlbiIsImV4Il19LHsidmFsdWUiOiI8ZW0+QlMgRU48L2VtPiBJU08xMzQ4NUV4cGVydCBDb21tZW50YXJ5IiwibWF0Y2hMZXZlbCI6InBhcnRpYWwiLCJmdWxseUhpZ2hsaWdodGVkIjpmYWxzZSwibWF0Y2hlZFdvcmRzIjpbImJzIiwiZW4iXX0seyJ2YWx1ZSI6IjxlbT5CUyBFTjwvZW0+IElTTzEzNDg1RXhwZXJ0Q29tbWVudGFyeSIsIm1hdGNoTGV2ZWwiOiJwYXJ0aWFsIiwiZnVsbHlIaWdobGlnaHRlZCI6ZmFsc2UsIm1hdGNoZWRXb3JkcyI6WyJicyIsImVuIl19LHsidmFsdWUiOiI8ZW0+QlMgRU48L2VtPiBJU08xMzQ4NSA8ZW0+RXg8L2VtPnBlcnRDb21tZW50YXJ5IiwibWF0Y2hMZXZlbCI6InBhcnRpYWwiLCJmdWxseUhpZ2hsaWdodGVkIjpmYWxzZSwibWF0Y2hlZFdvcmRzIjpbImJzIiwiZW4iLCJleCJdfSx7InZhbHVlIjoiPGVtPkJTIEVOPC9lbT4gPGVtPklTTzwvZW0+IDEzNDg1RXhwZXJ0IENvbW1lbnRhcnkiLCJtYXRjaExldmVsIjoicGFydGlhbCIsImZ1bGx5SGlnaGxpZ2h0ZWQiOmZhbHNlLCJtYXRjaGVkV29yZHMiOlsiYnMiLCJlbiIsImlzbyJdfSx7InZhbHVlIjoiPGVtPkJTIEVOPC9lbT4gPGVtPklTTzwvZW0+IDEzNDg1RXhwZXJ0Q29tbWVudGFyeSIsIm1hdGNoTGV2ZWwiOiJwYXJ0aWFsIiwiZnVsbHlIaWdobGlnaHRlZCI6ZmFsc2UsIm1hdGNoZWRXb3JkcyI6WyJicyIsImVuIiwiaXNvIl19LHsidmFsdWUiOiI8ZW0+QlMgRU48L2VtPiA8ZW0+SVNPPC9lbT4gPGVtPjEzNDg1PC9lbT4gPGVtPkV4PC9lbT5wZXJ0Q29tbWVudGFyeSIsIm1hdGNoTGV2ZWwiOiJmdWxsIiwiZnVsbHlIaWdobGlnaHRlZCI6ZmFsc2UsIm1hdGNoZWRXb3JkcyI6WyJicyIsImVuIiwiaXNvIiwiMTM0ODUiLCJleCJdfV0sInB1Ymxpc2hlciI6eyJ2YWx1ZSI6IkJTSSIsIm1hdGNoTGV2ZWwiOiJub25lIiwibWF0Y2hlZFdvcmRzIjpbXX0sInN0YXR1cyI6eyJ2YWx1ZSI6IkN1cnJlbnQiLCJtYXRjaExldmVsIjoibm9uZSIsIm1hdGNoZWRXb3JkcyI6W119fX19fSx7InRpdGxlIjoiRXh0ZXJuYWwgbGltYiBwcm9zdGhlc2VzIGFuZCBleHRlcm5hbCBvcnRob3Nlcy4gUmVxdWlyZW1lbnRzIGFuZCB0ZXN0IG1ldGhvZHMiLCJ1cGRhdGVkX2F0IjoiMjAyMi0xMi0yNFQwNTo1NDozMS4wMDBaIiwiX3RhZ3MiOlsiaWQ6NjkwNDYxOTM2ODYxMyIsImluZGV4aW5nX3Rva2VuOjZhYzZkOWIyZWYyNTg3YWExZGRkZjE5NzNjMDJhNDUyIl0sImhhbmRsZSI6ImV4dGVybmFsLWxpbWItcHJvc3RoZXNlcy1hbmQtZXh0ZXJuYWwtb3J0aG9zZXMtcmVxdWlyZW1lbnRzLWFuZC10ZXN0LW1ldGhvZHMiLCJ2ZW5kb3IiOiJCU0kgU2hvcCIsInByb2R1Y3RfdHlwZSI6InN0YW5kYXJkIiwidGVtcGxhdGVfc3VmZml4IjpudWxsLCJza3UiOiIwMDAwMDAwMDAwMzAwNzQ4OTMiLCJiYXJjb2RlIjpudWxsLCJwb3NpdGlvbiI6MSwicmVxdWlyZXNfc2hpcHBpbmciOmZhbHNlLCJ0YXhhYmxlIjp0cnVlLCJpbnZlbnRvcnlfcXVhbnRpdHkiOi0yLCJvcHRpb24xIjoiRGlnaXRhbCIsIm9wdGlvbjIiOm51bGwsIm9wdGlvbjMiOm51bGwsImlkIjo2OTA0NjE5MzY4NjEzLCJ0YWdzIjpbImZvcm1hdDpkaWdpdGFsIiwiaGFzLWhhcmRjb3B5IiwiSW5nZXN0aW9uLWJ1aWxkLTQ0NjgwIiwiSW5nZXN0aW9uLWJ1aWxkLTU0NDg0IiwiSW5nZXN0aW9uLWJ1aWxkLTU4MzIwIiwiSW5nZXN0aW9uLWJ1aWxkLTYxODc4IiwiSW5nZXN0aW9uLWJ1aWxkLTY1ODA4IiwiSW5nZXN0aW9uLWJ1aWxkLTY4NzcyIiwiSW5nZXN0aW9uLWJ1aWxkLTc5NzY5IiwiSW5nZXN0aW9uLWJ1aWxkLTg5MDc5Il0sIm9wdGlvbl9uYW1lcyI6WyJ0aXRsZSJdLCJ2YXJpYW50c19jb3VudCI6MSwidmFyaWFudHNfbWluX3ByaWNlIjoyOTguMCwidmFyaWFudHNfbWF4X3ByaWNlIjoyOTguMCwidmFyaWFudHNfaW52ZW50b3J5X2NvdW50IjotMiwicHJvZHVjdF9pbWFnZSI6Imh0dHBzOi8vY2RuLnNob3BpZnkuY29tL3MvZmlsZXMvMS8wNTU1LzUzMjkvNDUwMS9wcm9kdWN0cy9EaWdpdGFsXzMxYTA0OWIyLTMwZTQtNGYwZS1hOGIxLTY2Zjk0Y2FkZWJkNS5wbmc/dj0xNjI2MTMxMzI2IiwicHVibGlzaGVkX2F0IjoiMjAyMS0wNy0xM1QwMDowODo0NC4wMDBaIiwiYm9keV9odG1sX3NhZmUiOiIgXG4gICAxwqDCoMKgU2NvcGUgXG4gICBUaGlzIEludGVybmF0aW9uYWwgU3RhbmRhcmQgc3BlY2lmaWVzIHJlcXVpcmVtZW50cyBhbmQgdGVzdCBtZXRob2RzIGZvciBleHRlcm5hbCBsaW1iIHByb3N0aGVzZXMgYW5kIGV4dGVybmFsIG9ydGhvc2VzLCBpbmNsdWRpbmcgdGhlIGZvbGxvd2luZyBjbGFzc2lmaWNhdGlvbnMgZnJvbSBJU0/CoDk5OTk6IFxuICAgMDbCoDAzIC0gMDbCoDE1IE9ydGhvc2VzIFxuICAgMDbCoDE4IC0gMDbCoDI3IExpbWIgcHJvc3RoZXNlcyBcbiAgIEl0IGNvdmVycyBzdHJlbmd0aCwgbWF0ZXJpYWxzLCByZXN0cmljdGlvbnMgb24gdXNlLCByaXNrIGFuZCB0aGUgcHJvdmlzaW9uIG9mIGluZm9ybWF0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgbm9ybWFsIGNvbmRpdGlvbnMgb2YgdXNlIG9mIGJvdGggY29tcG9uZW50cyBhbmQgYXNzZW1ibGllcyBvZiBjb21wb25lbnRzLiBcbiAgIFRoaXMgSW50ZXJuYXRpb25hbCBTdGFuZGFyZCBkb2VzIG5vdCBjb3ZlciBzcGVjaWFsIHNlYXRpbmcgYXMgaXQgaXMgbm90IGNsYXNzaWZpZWQgYXMgYW4gb3J0aG9zaXMgaW4gSVNPwqA5OTk5IGFuZCBpdCBpcyBub3Qgbm9ybWFsbHkgYm9keSB3b3JuLiBcbiAgIFxuICAgICBcbiAgICAgICBOT1RFwqAxICBJdCBpcyBpbnRlbmRlZCB0byBjb3ZlciBvcnRob3BhZWRpYyBmb290d2VhciAoY2xhc3NpZmljYXRpb24gMDbCoDMzKSBpbiB0aGUgZnV0dXJlLiBcbiAgIFxuICAgXG4gICAgIFxuICAgICAgIE5PVEXCoDIgIFRoZSBhcHBsaWNhdGlvbiBvZiBRdWFsaXR5IFN5c3RlbXMgYXMgZGVzY3JpYmVkIG9yIHJlZmVycmVkIHRvIGluIElTT8KgMTM0ODUgYW5kIElTT8KgMTM0ODggbWF5IGJlIGFwcHJvcHJpYXRlLiBcbiAgIFxuICIsInZhcmlhbnRfdGl0bGUiOiJEaWdpdGFsIiwiaW52ZW50b3J5X3BvbGljeSI6ImRlbnkiLCJpbnZlbnRvcnlfbWFuYWdlbWVudCI6bnVsbCwiaW52ZW50b3J5X21hbmFnZW1lbnRfc2hvcGlmeSI6MCwiaW52ZW50b3J5X2F2YWlsYWJsZSI6ZmFsc2UsIm9wdGlvbnMiOnsidGl0bGUiOiJEaWdpdGFsIn0sInByaWNlIjoyOTguMCwiY29tcGFyZV9hdF9wcmljZSI6MTQ5LjAsInByaWNlX3JhdGlvIjoyLjAsInByaWNlX3JhbmdlIjoiMjUwOjMwMCIsImdyYW1zIjowLCJ3ZWlnaHQiOiIwLjBsYiIsImltYWdlIjoiaHR0cHM6Ly9jZG4uc2hvcGlmeS5jb20vcy9maWxlcy8xLzA1NTUvNTMyOS80NTAxL3Byb2R1Y3RzL0RpZ2l0YWxfMzFhMDQ5YjItMzBlNC00ZjBlLWE4YjEtNjZmOTRjYWRlYmQ1LnBuZz92PTE2MjYxMzEzMjYiLCJuYW1lZF90YWdzIjp7fSwibmFtZWRfdGFnc19uYW1lcyI6W10sImNyZWF0ZWRfYXQiOiIyMDIxLTA3LTEzVDAwOjA4OjQ0LjAwMFoiLCJtZXRhIjp7Imdsb2JhbCI6eyJhZGRpdGlvbmFsT3JpZ2luYXRvciI6IkNFTiIsImRlc2NyaXB0b3JzQWxnb2xpYVN0cmluZ0FycmF5IjpbIkVsZWN0cm9tYWduZXRpYyBjb21wYXRpYmlsaXR5IiwiUmlzayBhc3Nlc3NtZW50IiwiTWVjaGFuaWNhbCB0ZXN0aW5nIiwiSW5zdHJ1Y3Rpb25zIGZvciB1c2UiLCJDb21idXN0aW9uIHByb2R1Y3RzIiwiQmVuZCB0ZXN0aW5nIiwiQ29udHJvbCBkZXZpY2VzIiwiVGVzdCBlcXVpcG1lbnQiLCJNZWNoYW5pY2FsIHByb3BlcnRpZXMgb2YgbWF0ZXJpYWxzIiwiUGVyZm9ybWFuY2UiLCJGb3JjZSBtZWFzdXJlbWVudCIsIlBlcmZvcm1hbmNlIHRlc3RpbmciLCJGaXJlIHRlc3RzIiwiRXJnb25vbWljcyIsIlN0cmVuZ3RoIG9mIG1hdGVyaWFscyIsIlRlbnNpbGUgdGVzdGluZyIsIkFydGlmaWNpYWwgbGltYnMiLCJUZXN0aW5nIGNvbmRpdGlvbnMiLCJPcnRob3BhZWRpYyBlcXVpcG1lbnQiLCJQcm9zdGhldGljIGRldmljZXMiLCJTdGlmZm5lc3MiLCJFbGVjdHJpY2FsIHNhZmV0eSIsIlBhY2thZ2luZyIsIkFuZ3VsYXIgbWVhc3VyZW1lbnQiLCJPcnRob3BhZWRpY3MiLCJSZXBvcnRzIiwiRGVzaWduIiwiVG94aWNpdHkiLCJQcm9zdGhlc2lzIl0sImRlc2lnbmF0ZWRTdGFuZGFyZCI6InRydWUiLCJpY3NDb2Rlc0FsZ29saWFTdHJpbmdBcnJheSI6WyIxMS4wNDAuNDAgSW1wbGFudHMgZm9yIHN1cmdlcnksIHByb3N0aGV0aWNzIGFuZCBvcnRob3RpY3MiXSwiaW5kdXN0cmllc0FsZ29saWFTdHJpbmdBcnJheSI6WyJIZWFsdGhjYXJlICYgTWVkaWNhbCBEZXZpY2VzIl0sIm1vZHVsZXNBbGdvbGlhU3RyaW5nQXJyYXkiOlsiQlNJX0dCTTA1Il0sInByaW1hcnlEZXNpZ25hdG9yIjpbIkJTIEVOIElTTyAyMjUyMzoyMDA2IiwiQlNFTiBJU08gMjI1MjM6MjAwNiIsIkJTRU5JU08gMjI1MjM6MjAwNiIsIkJTRU5JU08yMjUyMzoyMDA2IiwiQlNFTiBJU08yMjUyMzoyMDA2IiwiQlMgRU5JU08gMjI1MjM6MjAwNiIsIkJTIEVOSVNPMjI1MjM6MjAwNiIsIkJTIEVOIElTTzIyNTIzOjIwMDYiXSwicHVibGlzaGVkRGF0ZSI6IjIwMDYtMTAtMzEiLCJwdWJsaXNoZXIiOiJCU0kiLCJzdGF0dXMiOiJVbmRlciBSZXZpZXciLCJzdGF0dXNOdW1lcmljIjoyMDB9LCJncm91cF9zZWFyY2giOnsiZGVzY3JpcHRpb24iOiJFeHRlcm5hbCBsaW1iIHByb3N0aGVzZXMgYW5kIGV4dGVybmFsIG9ydGhvc2VzLiBSZXF1aXJlbWVudHMgYW5kIHRlc3QgbWV0aG9kcyIsIm1lbWJlcl9wcmljZSI6MTQ5LCJwcmljZSI6Mjk4LCJ0aXRsZSI6IkJTIEVOIElTTyAyMjUyMzoyMDA2In19LCJyZWNlbnRseV9vcmRlcmVkX2NvdW50IjoxLCJvYmplY3RJRCI6IjQwMzQ2NDAxMDQ2NjkzIiwiX3NuaXBwZXRSZXN1bHQiOnsiYm9keV9odG1sX3NhZmUiOnsidmFsdWUiOiJkZXNjcmliZWQgb3IgcmVmZXJyZWQgdG8gaW4gPGVtPklTTzwvZW0+wqA8ZW0+MTM0ODU8L2VtPiBhbmQgPGVtPklTTzwvZW0+wqAxMzQ4OCIsIm1hdGNoTGV2ZWwiOiJwYXJ0aWFsIn19LCJfaGlnaGxpZ2h0UmVzdWx0Ijp7InRpdGxlIjp7InZhbHVlIjoiPGVtPkV4PC9lbT50ZXJuYWwgbGltYiBwcm9zdGhlc2VzIGFuZCA8ZW0+ZXg8L2VtPnRlcm5hbCBvcnRob3Nlcy4gUmVxdWlyZW1lbnRzIGFuZCB0ZXN0IG1ldGhvZHMiLCJtYXRjaExldmVsIjoicGFydGlhbCIsImZ1bGx5SGlnaGxpZ2h0ZWQiOmZhbHNlLCJtYXRjaGVkV29yZHMiOlsiZXgiXX0sInNrdSI6eyJ2YWx1ZSI6IjAwMDAwMDAwMDAzMDA3NDg5MyIsIm1hdGNoTGV2ZWwiOiJub25lIiwibWF0Y2hlZFdvcmRzIjpbXX0sImJvZHlfaHRtbF9zYWZlIjp7InZhbHVlIjoiIFxuICAgMcKgwqDCoFNjb3BlIFxuICAgVGhpcyBJbnRlcm5hdGlvbmFsIFN0YW5kYXJkIHNwZWNpZmllcyByZXF1aXJlbWVudHMgYW5kIHRlc3QgbWV0aG9kcyBmb3IgPGVtPmV4PC9lbT50ZXJuYWwgbGltYiBwcm9zdGhlc2VzIGFuZCA8ZW0+ZXg8L2VtPnRlcm5hbCBvcnRob3NlcywgaW5jbHVkaW5nIHRoZSBmb2xsb3dpbmcgY2xhc3NpZmljYXRpb25zIGZyb20gPGVtPklTTzwvZW0+wqA5OTk5OiBcbiAgIDA2wqAwMyAtIDA2wqAxNSBPcnRob3NlcyBcbiAgIDA2wqAxOCAtIDA2wqAyNyBMaW1iIHByb3N0aGVzZXMgXG4gICBJdCBjb3ZlcnMgc3RyZW5ndGgsIG1hdGVyaWFscywgcmVzdHJpY3Rpb25zIG9uIHVzZSwgcmlzayBhbmQgdGhlIHByb3Zpc2lvbiBvZiBpbmZvcm1hdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhlIG5vcm1hbCBjb25kaXRpb25zIG9mIHVzZSBvZiBib3RoIGNvbXBvbmVudHMgYW5kIGFzc2VtYmxpZXMgb2YgY29tcG9uZW50cy4gXG4gICBUaGlzIEludGVybmF0aW9uYWwgU3RhbmRhcmQgZG9lcyBub3QgY292ZXIgc3BlY2lhbCBzZWF0aW5nIGFzIGl0IGlzIG5vdCBjbGFzc2lmaWVkIGFzIGFuIG9ydGhvc2lzIGluIDxlbT5JU088L2VtPsKgOTk5OSBhbmQgaXQgaXMgbm90IG5vcm1hbGx5IGJvZHkgd29ybi4gXG4gICBcbiAgICAgXG4gICAgICAgTk9URcKgMSAgSXQgaXMgaW50ZW5kZWQgdG8gY292ZXIgb3J0aG9wYWVkaWMgZm9vdHdlYXIgKGNsYXNzaWZpY2F0aW9uIDA2wqAzMykgaW4gdGhlIGZ1dHVyZS4gXG4gICBcbiAgIFxuICAgICBcbiAgICAgICBOT1RFwqAyICBUaGUgYXBwbGljYXRpb24gb2YgUXVhbGl0eSBTeXN0ZW1zIGFzIGRlc2NyaWJlZCBvciByZWZlcnJlZCB0byBpbiA8ZW0+SVNPPC9lbT7CoDxlbT4xMzQ4NTwvZW0+IGFuZCA8ZW0+SVNPPC9lbT7CoDEzNDg4IG1heSBiZSBhcHByb3ByaWF0ZS4gXG4gICBcbiAiLCJtYXRjaExldmVsIjoicGFydGlhbCIsImZ1bGx5SGlnaGxpZ2h0ZWQiOmZhbHNlLCJtYXRjaGVkV29yZHMiOlsiaXNvIiwiMTM0ODUiLCJleCJdfSwibWV0YSI6eyJnbG9iYWwiOnsiYWRkaXRpb25hbE9yaWdpbmF0b3IiOnsidmFsdWUiOiJDRU4iLCJtYXRjaExldmVsIjoibm9uZSIsIm1hdGNoZWRXb3JkcyI6W119LCJkZXNjcmlwdG9yc0FsZ29saWFTdHJpbmdBcnJheSI6W3sidmFsdWUiOiJFbGVjdHJvbWFnbmV0aWMgY29tcGF0aWJpbGl0eSIsIm1hdGNoTGV2ZWwiOiJub25lIiwibWF0Y2hlZFdvcmRzIjpbXX0seyJ2YWx1ZSI6IlJpc2sgYXNzZXNzbWVudCIsIm1hdGNoTGV2ZWwiOiJub25lIiwibWF0Y2hlZFdvcmRzIjpbXX0seyJ2YWx1ZSI6Ik1lY2hhbmljYWwgdGVzdGluZyIsIm1hdGNoTGV2ZWwiOiJub25lIiwibWF0Y2hlZFdvcmRzIjpbXX0seyJ2YWx1ZSI6Ikluc3RydWN0aW9ucyBmb3IgdXNlIiwibWF0Y2hMZXZlbCI6Im5vbmUiLCJtYXRjaGVkV29yZHMiOltdfSx7InZhbHVlIjoiQ29tYnVzdGlvbiBwcm9kdWN0cyIsIm1hdGNoTGV2ZWwiOiJub25lIiwibWF0Y2hlZFdvcmRzIjpbXX0seyJ2YWx1ZSI6IkJlbmQgdGVzdGluZyIsIm1hdGNoTGV2ZWwiOiJub25lIiwibWF0Y2hlZFdvcmRzIjpbXX0seyJ2YWx1ZSI6IkNvbnRyb2wgZGV2aWNlcyIsIm1hdGNoTGV2ZWwiOiJub25lIiwibWF0Y2hlZFdvcmRzIjpbXX0seyJ2YWx1ZSI6IlRlc3QgZXF1aXBtZW50IiwibWF0Y2hMZXZlbCI6Im5vbmUiLCJtYXRjaGVkV29yZHMiOltdfSx7InZhbHVlIjoiTWVjaGFuaWNhbCBwcm9wZXJ0aWVzIG9mIG1hdGVyaWFscyIsIm1hdGNoTGV2ZWwiOiJub25lIiwibWF0Y2hlZFdvcmRzIjpbXX0seyJ2YWx1ZSI6IlBlcmZvcm1hbmNlIiwibWF0Y2hMZXZlbCI6Im5vbmUiLCJtYXRjaGVkV29yZHMiOltdfSx7InZhbHVlIjoiRm9yY2UgbWVhc3VyZW1lbnQiLCJtYXRjaExldmVsIjoibm9uZSIsIm1hdGNoZWRXb3JkcyI6W119LHsidmFsdWUiOiJQZXJmb3JtYW5jZSB0ZXN0aW5nIiwibWF0Y2hMZXZlbCI6Im5vbmUiLCJtYXRjaGVkV29yZHMiOltdfSx7InZhbHVlIjoiRmlyZSB0ZXN0cyIsIm1hdGNoTGV2ZWwiOiJub25lIiwibWF0Y2hlZFdvcmRzIjpbXX0seyJ2YWx1ZSI6IkVyZ29ub21pY3MiLCJtYXRjaExldmVsIjoibm9uZSIsIm1hdGNoZWRXb3JkcyI6W119LHsidmFsdWUiOiJTdHJlbmd0aCBvZiBtYXRlcmlhbHMiLCJtYXRjaExldmVsIjoibm9uZSIsIm1hdGNoZWRXb3JkcyI6W119LHsidmFsdWUiOiJUZW5zaWxlIHRlc3RpbmciLCJtYXRjaExldmVsIjoibm9uZSIsIm1hdGNoZWRXb3JkcyI6W119LHsidmFsdWUiOiJBcnRpZmljaWFsIGxpbWJzIiwibWF0Y2hMZXZlbCI6Im5vbmUiLCJtYXRjaGVkV29yZHMiOltdfSx7InZhbHVlIjoiVGVzdGluZyBjb25kaXRpb25zIiwibWF0Y2hMZXZlbCI6Im5vbmUiLCJtYXRjaGVkV29yZHMiOltdfSx7InZhbHVlIjoiT3J0aG9wYWVkaWMgZXF1aXBtZW50IiwibWF0Y2hMZXZlbCI6Im5vbmUiLCJtYXRjaGVkV29yZHMiOltdfSx7InZhbHVlIjoiUHJvc3RoZXRpYyBkZXZpY2VzIiwibWF0Y2hMZXZlbCI6Im5vbmUiLCJtYXRjaGVkV29yZHMiOltdfSx7InZhbHVlIjoiU3RpZmZuZXNzIiwibWF0Y2hMZXZlbCI6Im5vbmUiLCJtYXRjaGVkV29yZHMiOltdfSx7InZhbHVlIjoiRWxlY3RyaWNhbCBzYWZldHkiLCJtYXRjaExldmVsIjoibm9uZSIsIm1hdGNoZWRXb3JkcyI6W119LHsidmFsdWUiOiJQYWNrYWdpbmciLCJtYXRjaExldmVsIjoibm9uZSIsIm1hdGNoZWRXb3JkcyI6W119LHsidmFsdWUiOiJBbmd1bGFyIG1lYXN1cmVtZW50IiwibWF0Y2hMZXZlbCI6Im5vbmUiLCJtYXRjaGVkV29yZHMiOltdfSx7InZhbHVlIjoiT3J0aG9wYWVkaWNzIiwibWF0Y2hMZXZlbCI6Im5vbmUiLCJtYXRjaGVkV29yZHMiOltdfSx7InZhbHVlIjoiUmVwb3J0cyIsIm1hdGNoTGV2ZWwiOiJub25lIiwibWF0Y2hlZFdvcmRzIjpbXX0seyJ2YWx1ZSI6IkRlc2lnbiIsIm1hdGNoTGV2ZWwiOiJub25lIiwibWF0Y2hlZFdvcmRzIjpbXX0seyJ2YWx1ZSI6IlRveGljaXR5IiwibWF0Y2hMZXZlbCI6Im5vbmUiLCJtYXRjaGVkV29yZHMiOltdfSx7InZhbHVlIjoiUHJvc3RoZXNpcyIsIm1hdGNoTGV2ZWwiOiJub25lIiwibWF0Y2hlZFdvcmRzIjpbXX1dLCJpY3NDb2Rlc0FsZ29saWFTdHJpbmdBcnJheSI6W3sidmFsdWUiOiIxMS4wNDAuNDAgSW1wbGFudHMgZm9yIHN1cmdlcnksIHByb3N0aGV0aWNzIGFuZCBvcnRob3RpY3MiLCJtYXRjaExldmVsIjoibm9uZSIsIm1hdGNoZWRXb3JkcyI6W119XSwiaW5kdXN0cmllc0FsZ29saWFTdHJpbmdBcnJheSI6W3sidmFsdWUiOiJIZWFsdGhjYXJlICYgTWVkaWNhbCBEZXZpY2VzIiwibWF0Y2hMZXZlbCI6Im5vbmUiLCJtYXRjaGVkV29yZHMiOltdfV0sIm1vZHVsZXNBbGdvbGlhU3RyaW5nQXJyYXkiOlt7InZhbHVlIjoiQlNJX0dCTTA1IiwibWF0Y2hMZXZlbCI6Im5vbmUiLCJtYXRjaGVkV29yZHMiOltdfV0sInByaW1hcnlEZXNpZ25hdG9yIjpbeyJ2YWx1ZSI6IjxlbT5CUyBFTjwvZW0+IDxlbT5JU088L2VtPiAyMjUyMzoyMDA2IiwibWF0Y2hMZXZlbCI6InBhcnRpYWwiLCJmdWxseUhpZ2hsaWdodGVkIjpmYWxzZSwibWF0Y2hlZFdvcmRzIjpbImJzIiwiZW4iLCJpc28iXX0seyJ2YWx1ZSI6IjxlbT5CU0VOPC9lbT4gPGVtPklTTzwvZW0+IDIyNTIzOjIwMDYiLCJtYXRjaExldmVsIjoicGFydGlhbCIsImZ1bGx5SGlnaGxpZ2h0ZWQiOmZhbHNlLCJtYXRjaGVkV29yZHMiOlsiYnMiLCJlbiIsImlzbyJdfSx7InZhbHVlIjoiQlNFTklTTyAyMjUyMzoyMDA2IiwibWF0Y2hMZXZlbCI6Im5vbmUiLCJtYXRjaGVkV29yZHMiOltdfSx7InZhbHVlIjoiQlNFTklTTzIyNTIzOjIwMDYiLCJtYXRjaExldmVsIjoibm9uZSIsIm1hdGNoZWRXb3JkcyI6W119LHsidmFsdWUiOiI8ZW0+QlNFTjwvZW0+IElTTzIyNTIzOjIwMDYiLCJtYXRjaExldmVsIjoicGFydGlhbCIsImZ1bGx5SGlnaGxpZ2h0ZWQiOmZhbHNlLCJtYXRjaGVkV29yZHMiOlsiYnMiLCJlbiJdfSx7InZhbHVlIjoiPGVtPkJTPC9lbT4gPGVtPkVOSVNPPC9lbT4gMjI1MjM6MjAwNiIsIm1hdGNoTGV2ZWwiOiJwYXJ0aWFsIiwiZnVsbHlIaWdobGlnaHRlZCI6ZmFsc2UsIm1hdGNoZWRXb3JkcyI6WyJicyIsImlzbyJdfSx7InZhbHVlIjoiPGVtPkJTPC9lbT4gRU5JU08yMjUyMzoyMDA2IiwibWF0Y2hMZXZlbCI6InBhcnRpYWwiLCJmdWxseUhpZ2hsaWdodGVkIjpmYWxzZSwibWF0Y2hlZFdvcmRzIjpbImJzIl19LHsidmFsdWUiOiI8ZW0+QlMgRU48L2VtPiBJU08yMjUyMzoyMDA2IiwibWF0Y2hMZXZlbCI6InBhcnRpYWwiLCJmdWxseUhpZ2hsaWdodGVkIjpmYWxzZSwibWF0Y2hlZFdvcmRzIjpbImJzIiwiZW4iXX1dLCJwdWJsaXNoZXIiOnsidmFsdWUiOiJCU0kiLCJtYXRjaExldmVsIjoibm9uZSIsIm1hdGNoZWRXb3JkcyI6W119LCJzdGF0dXMiOnsidmFsdWUiOiJVbmRlciBSZXZpZXciLCJtYXRjaExldmVsIjoibm9uZSIsIm1hdGNoZWRXb3JkcyI6W119fX19fV0sIm5iSGl0cyI6MiwicGFnZSI6MCwibmJQYWdlcyI6MSwiaGl0c1BlclBhZ2UiOjIwLCJleGhhdXN0aXZlTmJIaXRzIjp0cnVlLCJleGhhdXN0aXZlVHlwbyI6dHJ1ZSwiZXhoYXVzdGl2ZSI6eyJuYkhpdHMiOnRydWUsInR5cG8iOnRydWV9LCJxdWVyeSI6IkJTIEVOIElTTyAxMzQ4NSBFeCIsInBhcmFtcyI6InF1ZXJ5PUJTK0VOK0lTTysxMzQ4NStFeCZkaXN0aW5jdD0xJmZpbHRlcnM9Tk9UK3RhZ3MlM0FoYXMtZGlnaXRhbCZmaWx0ZXJzPU5PVCt0YWdzJTNBbm90LWZvci1zYWxlJmZpbHRlcnM9Tk9UK3Byb2R1Y3RfdHlwZSUzQW1lbWJlcnNoaXAiLCJyZW5kZXJpbmdDb250ZW50Ijp7fSwicHJvY2Vzc2luZ1RpbWVNUyI6NCwicHJvY2Vzc2luZ1RpbWluZ3NNUyI6eyJhZnRlckZldGNoIjp7InRvdGFsIjoxfSwiZmV0Y2giOnsidG90YWwiOjF9LCJnZXRJZHgiOnsibG9hZCI6eyJkaWN0cyI6MSwidG90YWwiOjF9LCJ0b3RhbCI6Mn0sInJlcXVlc3QiOnsicm91bmRUcmlwIjoxMDl9LCJ0b3RhbCI6NH0sInNlcnZlclRpbWVNUyI6NX0= + http_version: + recorded_at: Tue, 21 Feb 2023 19:42:43 GMT +- request: + method: post + uri: https://shop-bsi.myshopify.com/api/2021-04/graphql.json + body: + encoding: UTF-8 + string: '{"query":"query RelatonBsi__Scrapper__Query__GetProducts($h0: String!) + {\n productByHandle(handle: $h0) {\n ...RelatonBsi__Scrapper__Product__ProductFragment\n }\n}\n\nfragment + RelatonBsi__Scrapper__Product__ProductFragment on Product {\n createdAt\n publishedAt\n updatedAt\n productType\n committee: + metafield(namespace: \"global\", key: \"committee\") {\n value\n }\n designated: + metafield(namespace: \"global\", key: \"designatedStandard\") {\n value\n }\n packContents: + metafield(namespace: \"global\", key: \"packContents\") {\n value\n }\n summary: + metafield(namespace: \"global\", key: \"summary\") {\n value\n }\n corrigendumHandle: + metafield(namespace: \"global\", key: \"corrigendumHandle\") {\n value\n }\n variants(first: + 250) {\n edges {\n node {\n version: metafield(namespace: \"global\", + key: \"version\") {\n value\n }\n isbn: metafield(namespace: + \"global\", key: \"isbn\") {\n value\n }\n }\n }\n }\n description\n}","variables":{"h0":"expert-commentary-for-bs-en-iso-13485-2016"},"operationName":"RelatonBsi__Scrapper__Query__GetProducts"}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Content-Type: + - application/json + X-Shopify-Storefront-Access-Token: + - c935c196c0b7d1d86bfb5139006cfd46 + response: + status: + code: 200 + message: OK + headers: + Date: + - Tue, 21 Feb 2023 19:42:44 GMT + Content-Type: + - application/json; charset=utf-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + X-Sorting-Hat-Podid: + - '164' + X-Sorting-Hat-Shopid: + - '55553294501' + X-Storefront-Renderer-Rendered: + - '1' + Vary: + - Accept + - Accept-Encoding + X-Shopify-Api-Version-Warning: + - https://shopify.dev/concepts/about-apis/versioning + X-Shopify-Api-Deprecated-Reason: + - https://shopify.dev/api/usage/versioning#deprecation-practices + X-Frame-Options: + - DENY + Content-Security-Policy: + - block-all-mixed-content; frame-ancestors 'none'; upgrade-insecure-requests; + Access-Control-Allow-Origin: + - "*" + X-Shopify-Api-Version: + - 2022-01 + X-Shopid: + - '55553294501' + X-Shardid: + - '164' + Content-Language: + - en + Server-Timing: + - cfRequestDuration;dur=131.999969 + - processing;dur=62, db;dur=30, asn;desc="11426", edge;desc="IAD", country;desc="US" + X-Shopify-Stage: + - production + X-Dc: + - gcp-us-east4,gcp-us-east1,gcp-us-east1 + X-Request-Id: + - 0cfb2cf1-5d6f-4c67-89be-9f256f9deea6 + X-Xss-Protection: + - 1; mode=block + X-Download-Options: + - noopen + X-Content-Type-Options: + - nosniff + X-Permitted-Cross-Domain-Policies: + - none + Cf-Cache-Status: + - DYNAMIC + Report-To: + - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=3M2toq6nrMlUZNIAw78F47006dbgx%2FsAVnko76U%2BllNEUU01h%2FD0yOX2rB86SNmqGGHlwpf6lkWtlFO2pcbYGxbzZhxGU19u6JFjd8lIPgr3rn1yr7k%2FQPhCnv%2FUYRJAeMmClWR9Hf4%3D"}],"group":"cf-nel","max_age":604800}' + Nel: + - '{"success_fraction":0.01,"report_to":"cf-nel","max_age":604800}' + Server: + - cloudflare + Cf-Ray: + - 79d1f7847e880586-IAD + Alt-Svc: + - h3=":443"; ma=86400, h3-29=":443"; ma=86400 + body: + encoding: ASCII-8BIT + string: '{"data":{"productByHandle":{"createdAt":"2022-04-15T05:37:40Z","publishedAt":"2022-04-15T05:37:43Z","updatedAt":"2022-08-16T09:21:03Z","productType":"publication","committee":null,"designated":{"value":"false"},"packContents":null,"summary":null,"corrigendumHandle":null,"variants":{"edges":[{"node":{"version":{"value":"basic"},"isbn":null}}]},"description":""}}}' + http_version: + recorded_at: Tue, 21 Feb 2023 19:42:43 GMT +recorded_with: VCR 5.0.0