aws-sdk-wafregional 1.49.0 → 1.51.0

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: ac5df182fdbee6871b9c0d69a3db2a459cc7174078cba80186428e650cced3fb
4
- data.tar.gz: b0388fb99ba023b86120402c50c31b7fbafef8a117bb48900b5011e1cdb5c927
3
+ metadata.gz: bce0f283ab0ea7f58d143731f2fd73fa05731586b1d58da36538d743e8d65bd5
4
+ data.tar.gz: 404f0a2abcb8387290c38500f7fb1597f4cfabf8460e78de60670b2d76417c14
5
5
  SHA512:
6
- metadata.gz: 0a93dec4eba39f902ff741495cba43d5b7edd9540b6cb63eec92373ccdd292b3cb0be7fc264782411d2414c55c9cd51f05aa37ec9e9d54f947ce00e91bfa796e
7
- data.tar.gz: 652dd1961cd2b67f7f40543d78a30d352a06b7a138a7dcbcd42cfacb0a9442303e22c2964bd683675c99f0989c435459cbcf2f25d41534966c37de39bcfe1f69
6
+ metadata.gz: dd91b01e60ffa4e864ca9d312d87b29baf5ee93686de37e8b6c095029e53acf4183aae5f025dfd3fa2d3879275cda75104c4bd54c7fc9336491dc7a2abce8c78
7
+ data.tar.gz: 63eba61ae9631d0d374d8342c6c300e38e1c8b8edf515e34877338f1769152661c8a825944ecb30756c71e5a4d97eb196a3bef535c62196bce363f4c767a3da6
data/CHANGELOG.md CHANGED
@@ -1,6 +1,18 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.51.0 (2023-05-31)
5
+ ------------------
6
+
7
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
8
+
9
+ 1.50.0 (2023-01-18)
10
+ ------------------
11
+
12
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
13
+
14
+ * Issue - Replace runtime endpoint resolution approach with generated ruby code.
15
+
4
16
  1.49.0 (2022-10-25)
5
17
  ------------------
6
18
 
@@ -320,4 +332,4 @@ Unreleased Changes
320
332
  1.0.0.rc2 (2016-12-09)
321
333
  ------------------
322
334
 
323
- * Feature - Initial release of `aws-sdk-wafregional`.
335
+ * Feature - Initial release of `aws-sdk-wafregional`.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.49.0
1
+ 1.51.0
@@ -275,6 +275,11 @@ module Aws::WAFRegional
275
275
  # in the future.
276
276
  #
277
277
  #
278
+ # @option options [String] :sdk_ua_app_id
279
+ # A unique and opaque application ID that is appended to the
280
+ # User-Agent header as app/<sdk_ua_app_id>. It should have a
281
+ # maximum length of 50.
282
+ #
278
283
  # @option options [String] :secret_access_key
279
284
  #
280
285
  # @option options [String] :session_token
@@ -703,7 +708,7 @@ module Aws::WAFRegional
703
708
  # If you add more than one predicate to a `RateBasedRule`, a request not
704
709
  # only must exceed the `RateLimit`, but it also must match all the
705
710
  # conditions to be counted or blocked. For example, suppose you add the
706
- # following to a `RateBasedRule`\:
711
+ # following to a `RateBasedRule`:
707
712
  #
708
713
  # * An `IPSet` that matches the IP address `192.0.2.44/32`
709
714
  #
@@ -723,7 +728,7 @@ module Aws::WAFRegional
723
728
  #
724
729
  # As a second example, suppose you want to limit requests to a
725
730
  # particular page on your site. To do this, you could add the following
726
- # to a `RateBasedRule`\:
731
+ # to a `RateBasedRule`:
727
732
  #
728
733
  # * A `ByteMatchSet` with `FieldToMatch` of `URI`
729
734
  #
@@ -1009,7 +1014,7 @@ module Aws::WAFRegional
1009
1014
  # objects, and other predicates that identify the requests that you want
1010
1015
  # to block. If you add more than one predicate to a `Rule`, a request
1011
1016
  # must match all of the specifications to be allowed or blocked. For
1012
- # example, suppose that you add the following to a `Rule`\:
1017
+ # example, suppose that you add the following to a `Rule`:
1013
1018
  #
1014
1019
  # * An `IPSet` that matches the IP address `192.0.2.44/32`
1015
1020
  #
@@ -2877,14 +2882,14 @@ module Aws::WAFRegional
2877
2882
  # Returns the status of a `ChangeToken` that you got by calling
2878
2883
  # GetChangeToken. `ChangeTokenStatus` is one of the following values:
2879
2884
  #
2880
- # * `PROVISIONED`\: You requested the change token by calling
2885
+ # * `PROVISIONED`: You requested the change token by calling
2881
2886
  # `GetChangeToken`, but you haven't used it yet in a call to create,
2882
2887
  # update, or delete an AWS WAF object.
2883
2888
  #
2884
- # * `PENDING`\: AWS WAF is propagating the create, update, or delete
2889
+ # * `PENDING`: AWS WAF is propagating the create, update, or delete
2885
2890
  # request to all AWS WAF servers.
2886
2891
  #
2887
- # * `INSYNC`\: Propagation is complete.
2892
+ # * `INSYNC`: Propagation is complete.
2888
2893
  #
2889
2894
  #
2890
2895
  #
@@ -5767,7 +5772,7 @@ module Aws::WAFRegional
5767
5772
  # If you add more than one predicate to a `RateBasedRule`, a request
5768
5773
  # must match all the predicates and exceed the `RateLimit` to be counted
5769
5774
  # or blocked. For example, suppose you add the following to a
5770
- # `RateBasedRule`\:
5775
+ # `RateBasedRule`:
5771
5776
  #
5772
5777
  # * An `IPSet` that matches the IP address `192.0.2.44/32`
5773
5778
  #
@@ -5785,7 +5790,7 @@ module Aws::WAFRegional
5785
5790
  #
5786
5791
  # As a second example, suppose you want to limit requests to a
5787
5792
  # particular page on your site. To do this, you could add the following
5788
- # to a `RateBasedRule`\:
5793
+ # to a `RateBasedRule`:
5789
5794
  #
5790
5795
  # * A `ByteMatchSet` with `FieldToMatch` of `URI`
5791
5796
  #
@@ -6068,7 +6073,7 @@ module Aws::WAFRegional
6068
6073
  # that specifies the web requests that you want to allow, block, or
6069
6074
  # count. If you add more than one predicate to a `Rule`, a request must
6070
6075
  # match all of the specifications to be allowed, blocked, or counted.
6071
- # For example, suppose that you add the following to a `Rule`\:
6076
+ # For example, suppose that you add the following to a `Rule`:
6072
6077
  #
6073
6078
  # * A `ByteMatchSet` that matches the value `BadBot` in the `User-Agent`
6074
6079
  # header
@@ -6454,15 +6459,15 @@ module Aws::WAFRegional
6454
6459
  # SqlInjectionMatchSet. For each `SqlInjectionMatchTuple` object, you
6455
6460
  # specify the following values:
6456
6461
  #
6457
- # * `Action`\: Whether to insert the object into or delete the object
6462
+ # * `Action`: Whether to insert the object into or delete the object
6458
6463
  # from the array. To change a `SqlInjectionMatchTuple`, you delete the
6459
6464
  # existing object and add a new one.
6460
6465
  #
6461
- # * `FieldToMatch`\: The part of web requests that you want AWS WAF to
6466
+ # * `FieldToMatch`: The part of web requests that you want AWS WAF to
6462
6467
  # inspect and, if you want AWS WAF to inspect a header or custom query
6463
6468
  # parameter, the name of the header or parameter.
6464
6469
  #
6465
- # * `TextTransformation`\: Which text transformation, if any, to perform
6470
+ # * `TextTransformation`: Which text transformation, if any, to perform
6466
6471
  # on the web request before inspecting the request for snippets of
6467
6472
  # malicious SQL code.
6468
6473
  #
@@ -6778,15 +6783,15 @@ module Aws::WAFRegional
6778
6783
  # Inserts or deletes XssMatchTuple objects (filters) in an XssMatchSet.
6779
6784
  # For each `XssMatchTuple` object, you specify the following values:
6780
6785
  #
6781
- # * `Action`\: Whether to insert the object into or delete the object
6786
+ # * `Action`: Whether to insert the object into or delete the object
6782
6787
  # from the array. To change an `XssMatchTuple`, you delete the
6783
6788
  # existing object and add a new one.
6784
6789
  #
6785
- # * `FieldToMatch`\: The part of web requests that you want AWS WAF to
6790
+ # * `FieldToMatch`: The part of web requests that you want AWS WAF to
6786
6791
  # inspect and, if you want AWS WAF to inspect a header or custom query
6787
6792
  # parameter, the name of the header or parameter.
6788
6793
  #
6789
- # * `TextTransformation`\: Which text transformation, if any, to perform
6794
+ # * `TextTransformation`: Which text transformation, if any, to perform
6790
6795
  # on the web request before inspecting the request for cross-site
6791
6796
  # scripting attacks.
6792
6797
  #
@@ -6914,7 +6919,7 @@ module Aws::WAFRegional
6914
6919
  params: params,
6915
6920
  config: config)
6916
6921
  context[:gem_name] = 'aws-sdk-wafregional'
6917
- context[:gem_version] = '1.49.0'
6922
+ context[:gem_version] = '1.51.0'
6918
6923
  Seahorse::Client::Request.new(handlers, context)
6919
6924
  end
6920
6925
 
@@ -9,104 +9,43 @@
9
9
 
10
10
  module Aws::WAFRegional
11
11
  class EndpointProvider
12
- def initialize(rule_set = nil)
13
- @@rule_set ||= begin
14
- endpoint_rules = Aws::Json.load(Base64.decode64(RULES))
15
- Aws::Endpoints::RuleSet.new(
16
- version: endpoint_rules['version'],
17
- service_id: endpoint_rules['serviceId'],
18
- parameters: endpoint_rules['parameters'],
19
- rules: endpoint_rules['rules']
20
- )
12
+ def resolve_endpoint(parameters)
13
+ region = parameters.region
14
+ use_dual_stack = parameters.use_dual_stack
15
+ use_fips = parameters.use_fips
16
+ endpoint = parameters.endpoint
17
+ if (partition_result = Aws::Endpoints::Matchers.aws_partition(region))
18
+ if Aws::Endpoints::Matchers.set?(endpoint) && (url = Aws::Endpoints::Matchers.parse_url(endpoint))
19
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
20
+ raise ArgumentError, "Invalid Configuration: FIPS and custom endpoint are not supported"
21
+ end
22
+ if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
23
+ raise ArgumentError, "Invalid Configuration: Dualstack and custom endpoint are not supported"
24
+ end
25
+ return Aws::Endpoints::Endpoint.new(url: endpoint, headers: {}, properties: {})
26
+ end
27
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true) && Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
28
+ if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS")) && Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
29
+ return Aws::Endpoints::Endpoint.new(url: "https://waf-regional-fips.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
30
+ end
31
+ raise ArgumentError, "FIPS and DualStack are enabled, but this partition does not support one or both"
32
+ end
33
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
34
+ if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS"))
35
+ return Aws::Endpoints::Endpoint.new(url: "https://waf-regional-fips.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
36
+ end
37
+ raise ArgumentError, "FIPS is enabled but this partition does not support FIPS"
38
+ end
39
+ if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
40
+ if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
41
+ return Aws::Endpoints::Endpoint.new(url: "https://waf-regional.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
42
+ end
43
+ raise ArgumentError, "DualStack is enabled but this partition does not support DualStack"
44
+ end
45
+ return Aws::Endpoints::Endpoint.new(url: "https://waf-regional.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
21
46
  end
22
- @provider = Aws::Endpoints::RulesProvider.new(rule_set || @@rule_set)
23
- end
47
+ raise ArgumentError, 'No endpoint could be resolved'
24
48
 
25
- def resolve_endpoint(parameters)
26
- @provider.resolve_endpoint(parameters)
27
49
  end
28
-
29
- # @api private
30
- RULES = <<-JSON
31
- eyJ2ZXJzaW9uIjoiMS4wIiwicGFyYW1ldGVycyI6eyJSZWdpb24iOnsiYnVp
32
- bHRJbiI6IkFXUzo6UmVnaW9uIiwicmVxdWlyZWQiOmZhbHNlLCJkb2N1bWVu
33
- dGF0aW9uIjoiVGhlIEFXUyByZWdpb24gdXNlZCB0byBkaXNwYXRjaCB0aGUg
34
- cmVxdWVzdC4iLCJ0eXBlIjoiU3RyaW5nIn0sIlVzZUR1YWxTdGFjayI6eyJi
35
- dWlsdEluIjoiQVdTOjpVc2VEdWFsU3RhY2siLCJyZXF1aXJlZCI6dHJ1ZSwi
36
- ZGVmYXVsdCI6ZmFsc2UsImRvY3VtZW50YXRpb24iOiJXaGVuIHRydWUsIHVz
37
- ZSB0aGUgZHVhbC1zdGFjayBlbmRwb2ludC4gSWYgdGhlIGNvbmZpZ3VyZWQg
38
- ZW5kcG9pbnQgZG9lcyBub3Qgc3VwcG9ydCBkdWFsLXN0YWNrLCBkaXNwYXRj
39
- aGluZyB0aGUgcmVxdWVzdCBNQVkgcmV0dXJuIGFuIGVycm9yLiIsInR5cGUi
40
- OiJCb29sZWFuIn0sIlVzZUZJUFMiOnsiYnVpbHRJbiI6IkFXUzo6VXNlRklQ
41
- UyIsInJlcXVpcmVkIjp0cnVlLCJkZWZhdWx0IjpmYWxzZSwiZG9jdW1lbnRh
42
- dGlvbiI6IldoZW4gdHJ1ZSwgc2VuZCB0aGlzIHJlcXVlc3QgdG8gdGhlIEZJ
43
- UFMtY29tcGxpYW50IHJlZ2lvbmFsIGVuZHBvaW50LiBJZiB0aGUgY29uZmln
44
- dXJlZCBlbmRwb2ludCBkb2VzIG5vdCBoYXZlIGEgRklQUyBjb21wbGlhbnQg
45
- ZW5kcG9pbnQsIGRpc3BhdGNoaW5nIHRoZSByZXF1ZXN0IHdpbGwgcmV0dXJu
46
- IGFuIGVycm9yLiIsInR5cGUiOiJCb29sZWFuIn0sIkVuZHBvaW50Ijp7ImJ1
47
- aWx0SW4iOiJTREs6OkVuZHBvaW50IiwicmVxdWlyZWQiOmZhbHNlLCJkb2N1
48
- bWVudGF0aW9uIjoiT3ZlcnJpZGUgdGhlIGVuZHBvaW50IHVzZWQgdG8gc2Vu
49
- ZCB0aGlzIHJlcXVlc3QiLCJ0eXBlIjoiU3RyaW5nIn19LCJydWxlcyI6W3si
50
- Y29uZGl0aW9ucyI6W3siZm4iOiJhd3MucGFydGl0aW9uIiwiYXJndiI6W3si
51
- cmVmIjoiUmVnaW9uIn1dLCJhc3NpZ24iOiJQYXJ0aXRpb25SZXN1bHQifV0s
52
- InR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlvbnMiOlt7ImZuIjoi
53
- aXNTZXQiLCJhcmd2IjpbeyJyZWYiOiJFbmRwb2ludCJ9XX0seyJmbiI6InBh
54
- cnNlVVJMIiwiYXJndiI6W3sicmVmIjoiRW5kcG9pbnQifV0sImFzc2lnbiI6
55
- InVybCJ9XSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6
56
- W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoiVXNlRklQ
57
- UyJ9LHRydWVdfV0sImVycm9yIjoiSW52YWxpZCBDb25maWd1cmF0aW9uOiBG
58
- SVBTIGFuZCBjdXN0b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWQiLCJ0
59
- eXBlIjoiZXJyb3IifSx7ImNvbmRpdGlvbnMiOltdLCJ0eXBlIjoidHJlZSIs
60
- InJ1bGVzIjpbeyJjb25kaXRpb25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMi
61
- LCJhcmd2IjpbeyJyZWYiOiJVc2VEdWFsU3RhY2sifSx0cnVlXX1dLCJlcnJv
62
- ciI6IkludmFsaWQgQ29uZmlndXJhdGlvbjogRHVhbHN0YWNrIGFuZCBjdXN0
63
- b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWQiLCJ0eXBlIjoiZXJyb3Ii
64
- fSx7ImNvbmRpdGlvbnMiOltdLCJlbmRwb2ludCI6eyJ1cmwiOnsicmVmIjoi
65
- RW5kcG9pbnQifSwicHJvcGVydGllcyI6e30sImhlYWRlcnMiOnt9fSwidHlw
66
- ZSI6ImVuZHBvaW50In1dfV19LHsiY29uZGl0aW9ucyI6W3siZm4iOiJib29s
67
- ZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoiVXNlRklQUyJ9LHRydWVdfSx7
68
- ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt7InJlZiI6IlVzZUR1YWxT
69
- dGFjayJ9LHRydWVdfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRp
70
- dGlvbnMiOlt7ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt0cnVlLHsi
71
- Zm4iOiJnZXRBdHRyIiwiYXJndiI6W3sicmVmIjoiUGFydGl0aW9uUmVzdWx0
72
- In0sInN1cHBvcnRzRklQUyJdfV19LHsiZm4iOiJib29sZWFuRXF1YWxzIiwi
73
- YXJndiI6W3RydWUseyJmbiI6ImdldEF0dHIiLCJhcmd2IjpbeyJyZWYiOiJQ
74
- YXJ0aXRpb25SZXN1bHQifSwic3VwcG9ydHNEdWFsU3RhY2siXX1dfV0sInR5
75
- cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlvbnMiOltdLCJlbmRwb2lu
76
- dCI6eyJ1cmwiOiJodHRwczovL3dhZi1yZWdpb25hbC1maXBzLntSZWdpb259
77
- LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fSIsInByb3Bl
78
- cnRpZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX0s
79
- eyJjb25kaXRpb25zIjpbXSwiZXJyb3IiOiJGSVBTIGFuZCBEdWFsU3RhY2sg
80
- YXJlIGVuYWJsZWQsIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBw
81
- b3J0IG9uZSBvciBib3RoIiwidHlwZSI6ImVycm9yIn1dfSx7ImNvbmRpdGlv
82
- bnMiOlt7ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt7InJlZiI6IlVz
83
- ZUZJUFMifSx0cnVlXX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25k
84
- aXRpb25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbdHJ1ZSx7
85
- ImZuIjoiZ2V0QXR0ciIsImFyZ3YiOlt7InJlZiI6IlBhcnRpdGlvblJlc3Vs
86
- dCJ9LCJzdXBwb3J0c0ZJUFMiXX1dfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMi
87
- Olt7ImNvbmRpdGlvbnMiOltdLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJj
88
- b25kaXRpb25zIjpbXSwiZW5kcG9pbnQiOnsidXJsIjoiaHR0cHM6Ly93YWYt
89
- cmVnaW9uYWwtZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1
90
- ZmZpeH0iLCJwcm9wZXJ0aWVzIjp7fSwiaGVhZGVycyI6e319LCJ0eXBlIjoi
91
- ZW5kcG9pbnQifV19XX0seyJjb25kaXRpb25zIjpbXSwiZXJyb3IiOiJGSVBT
92
- IGlzIGVuYWJsZWQgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBv
93
- cnQgRklQUyIsInR5cGUiOiJlcnJvciJ9XX0seyJjb25kaXRpb25zIjpbeyJm
94
- biI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbeyJyZWYiOiJVc2VEdWFsU3Rh
95
- Y2sifSx0cnVlXX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRp
96
- b25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbdHJ1ZSx7ImZu
97
- IjoiZ2V0QXR0ciIsImFyZ3YiOlt7InJlZiI6IlBhcnRpdGlvblJlc3VsdCJ9
98
- LCJzdXBwb3J0c0R1YWxTdGFjayJdfV19XSwidHlwZSI6InRyZWUiLCJydWxl
99
- cyI6W3siY29uZGl0aW9ucyI6W10sImVuZHBvaW50Ijp7InVybCI6Imh0dHBz
100
- Oi8vd2FmLXJlZ2lvbmFsLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZHVh
101
- bFN0YWNrRG5zU3VmZml4fSIsInByb3BlcnRpZXMiOnt9LCJoZWFkZXJzIjp7
102
- fX0sInR5cGUiOiJlbmRwb2ludCJ9XX0seyJjb25kaXRpb25zIjpbXSwiZXJy
103
- b3IiOiJEdWFsU3RhY2sgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRpb24g
104
- ZG9lcyBub3Qgc3VwcG9ydCBEdWFsU3RhY2siLCJ0eXBlIjoiZXJyb3IifV19
105
- LHsiY29uZGl0aW9ucyI6W10sImVuZHBvaW50Ijp7InVybCI6Imh0dHBzOi8v
106
- d2FmLXJlZ2lvbmFsLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZG5zU3Vm
107
- Zml4fSIsInByb3BlcnRpZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJl
108
- bmRwb2ludCJ9XX1dfQ==
109
-
110
- JSON
111
50
  end
112
51
  end