runcible 1.1.0 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +1 -1
- data/lib/runcible/extensions/docker_image.rb +33 -0
- data/lib/runcible/extensions/repository.rb +20 -0
- data/lib/runcible/models/docker_distributor.rb +50 -0
- data/lib/runcible/models/docker_importer.rb +46 -0
- data/lib/runcible/version.rb +1 -1
- metadata +119 -90
- checksums.yaml +0 -15
data/README.md
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
Exposing Pulp's juiciest parts. http://www.pulpproject.org/
|
6
6
|
|
7
|
-
Latest Live Tested Version: **pulp-server-2.
|
7
|
+
Latest Live Tested Version: **pulp-server-2.5.0-0.1.alpha.el6.noarch**
|
8
8
|
|
9
9
|
Current stable Runcible: https://github.com/Katello/runcible/tree/0.3
|
10
10
|
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# Copyright (c) 2014 Red Hat
|
2
|
+
#
|
3
|
+
# MIT License
|
4
|
+
#
|
5
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
# a copy of this software and associated documentation files (the
|
7
|
+
# "Software"), to deal in the Software without restriction, including
|
8
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
# the following conditions:
|
12
|
+
#
|
13
|
+
# The above copyright notice and this permission notice shall be
|
14
|
+
# included in all copies or substantial portions of the Software.
|
15
|
+
#
|
16
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
23
|
+
|
24
|
+
|
25
|
+
module Runcible
|
26
|
+
module Extensions
|
27
|
+
class DockerImage < Runcible::Extensions::Unit
|
28
|
+
def self.content_type
|
29
|
+
'docker_image'
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -256,6 +256,26 @@ module Runcible
|
|
256
256
|
unit_search(id, criteria).collect{|i| i['metadata'].with_indifferent_access}
|
257
257
|
end
|
258
258
|
|
259
|
+
# Retrieves the docker image IDs for a single repository
|
260
|
+
#
|
261
|
+
# @param [String] id the ID of the repository
|
262
|
+
# @return [RestClient::Response] the set of repository docker image IDs
|
263
|
+
def docker_image_ids(id)
|
264
|
+
criteria = {:type_ids=>[Runcible::Extensions::DockerImage.content_type],
|
265
|
+
:fields=>{:unit=>[], :association=>['unit_id']}}
|
266
|
+
|
267
|
+
unit_search(id, criteria).collect{|i| i['unit_id']}
|
268
|
+
end
|
269
|
+
|
270
|
+
# Retrieves the docker images for a single repository
|
271
|
+
#
|
272
|
+
# @param [String] id the ID of the repository
|
273
|
+
# @return [RestClient::Response] the set of repository docker images
|
274
|
+
def docker_images(id)
|
275
|
+
criteria = {:type_ids=>[Runcible::Extensions::DockerImage.content_type]}
|
276
|
+
unit_search(id, criteria).collect{|i| i['metadata'].with_indifferent_access}
|
277
|
+
end
|
278
|
+
|
259
279
|
# Creates or updates a sync schedule for a repository
|
260
280
|
#
|
261
281
|
# @param [String] repo_id the ID of the repository
|
@@ -0,0 +1,50 @@
|
|
1
|
+
# Copyright (c) 2014 Red Hat Inc.
|
2
|
+
#
|
3
|
+
# MIT License
|
4
|
+
#
|
5
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
# a copy of this software and associated documentation files (the
|
7
|
+
# "Software"), to deal in the Software without restriction, including
|
8
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
# the following conditions:
|
12
|
+
#
|
13
|
+
# The above copyright notice and this permission notice shall be
|
14
|
+
# included in all copies or substantial portions of the Software.
|
15
|
+
#
|
16
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
23
|
+
|
24
|
+
require 'active_support/json'
|
25
|
+
require 'securerandom'
|
26
|
+
|
27
|
+
module Runcible
|
28
|
+
module Models
|
29
|
+
class DockerDistributor < Distributor
|
30
|
+
#optional
|
31
|
+
attr_accessor "docker_publish_directory", "protected",
|
32
|
+
"redirect_url", "repo_registry_id"
|
33
|
+
|
34
|
+
def initialize(params={})
|
35
|
+
super(params)
|
36
|
+
end
|
37
|
+
|
38
|
+
def self.type_id
|
39
|
+
'docker_distributor_web'
|
40
|
+
end
|
41
|
+
|
42
|
+
def config
|
43
|
+
to_ret = as_json
|
44
|
+
to_ret.delete('auto_publish')
|
45
|
+
to_ret.delete('id')
|
46
|
+
to_ret
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# Copyright (c) 2014 Red Hat Inc.
|
2
|
+
#
|
3
|
+
# MIT License
|
4
|
+
#
|
5
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
# a copy of this software and associated documentation files (the
|
7
|
+
# "Software"), to deal in the Software without restriction, including
|
8
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
# the following conditions:
|
12
|
+
#
|
13
|
+
# The above copyright notice and this permission notice shall be
|
14
|
+
# included in all copies or substantial portions of the Software.
|
15
|
+
#
|
16
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
23
|
+
|
24
|
+
module Runcible
|
25
|
+
module Models
|
26
|
+
class DockerImporter < Importer
|
27
|
+
ID = 'docker_importer'
|
28
|
+
REPO_TYPE = 'docker-repo'
|
29
|
+
|
30
|
+
attr_accessor 'feed', 'max_speed','max_downloads', 'upstream_name',
|
31
|
+
'proxy_port', 'proxy_password', 'proxy_username', "mask_id"
|
32
|
+
|
33
|
+
def id
|
34
|
+
DockerImporter::ID
|
35
|
+
end
|
36
|
+
|
37
|
+
def repo_type
|
38
|
+
DockerImporter::REPO_TYPE
|
39
|
+
end
|
40
|
+
|
41
|
+
def config
|
42
|
+
as_json
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
data/lib/runcible/version.rb
CHANGED
metadata
CHANGED
@@ -1,113 +1,136 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: runcible
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Eric D Helms, Justin Sherrill
|
8
|
-
autorequire:
|
9
|
+
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2014-
|
12
|
+
date: 2014-10-08 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: json
|
16
|
+
version_requirements: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ">="
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: !binary |-
|
21
|
+
MA==
|
22
|
+
none: false
|
15
23
|
requirement: !ruby/object:Gem::Requirement
|
16
24
|
requirements:
|
17
|
-
- -
|
25
|
+
- - ">="
|
18
26
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
20
|
-
|
27
|
+
version: !binary |-
|
28
|
+
MA==
|
29
|
+
none: false
|
21
30
|
prerelease: false
|
31
|
+
type: :runtime
|
32
|
+
- !ruby/object:Gem::Dependency
|
33
|
+
name: rest-client
|
22
34
|
version_requirements: !ruby/object:Gem::Requirement
|
23
35
|
requirements:
|
24
|
-
- -
|
36
|
+
- - ">="
|
25
37
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
27
|
-
|
28
|
-
name: rest-client
|
38
|
+
version: 1.6.1
|
39
|
+
none: false
|
29
40
|
requirement: !ruby/object:Gem::Requirement
|
30
41
|
requirements:
|
31
|
-
- -
|
42
|
+
- - ">="
|
32
43
|
- !ruby/object:Gem::Version
|
33
44
|
version: 1.6.1
|
34
|
-
|
45
|
+
none: false
|
35
46
|
prerelease: false
|
47
|
+
type: :runtime
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: oauth
|
36
50
|
version_requirements: !ruby/object:Gem::Requirement
|
37
51
|
requirements:
|
38
|
-
- -
|
52
|
+
- - ">="
|
39
53
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
41
|
-
|
42
|
-
|
54
|
+
version: !binary |-
|
55
|
+
MA==
|
56
|
+
none: false
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
44
58
|
requirements:
|
45
|
-
- -
|
59
|
+
- - ">="
|
46
60
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
48
|
-
|
61
|
+
version: !binary |-
|
62
|
+
MA==
|
63
|
+
none: false
|
49
64
|
prerelease: false
|
65
|
+
type: :runtime
|
66
|
+
- !ruby/object:Gem::Dependency
|
67
|
+
name: activesupport
|
50
68
|
version_requirements: !ruby/object:Gem::Requirement
|
51
69
|
requirements:
|
52
|
-
- -
|
70
|
+
- - ">="
|
53
71
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
55
|
-
|
56
|
-
name: activesupport
|
72
|
+
version: 3.0.10
|
73
|
+
none: false
|
57
74
|
requirement: !ruby/object:Gem::Requirement
|
58
75
|
requirements:
|
59
|
-
- -
|
76
|
+
- - ">="
|
60
77
|
- !ruby/object:Gem::Version
|
61
78
|
version: 3.0.10
|
62
|
-
|
79
|
+
none: false
|
63
80
|
prerelease: false
|
81
|
+
type: :runtime
|
82
|
+
- !ruby/object:Gem::Dependency
|
83
|
+
name: i18n
|
64
84
|
version_requirements: !ruby/object:Gem::Requirement
|
65
85
|
requirements:
|
66
|
-
- -
|
86
|
+
- - ">="
|
67
87
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
69
|
-
|
70
|
-
name: i18n
|
88
|
+
version: 0.5.0
|
89
|
+
none: false
|
71
90
|
requirement: !ruby/object:Gem::Requirement
|
72
91
|
requirements:
|
73
|
-
- -
|
92
|
+
- - ">="
|
74
93
|
- !ruby/object:Gem::Version
|
75
94
|
version: 0.5.0
|
76
|
-
|
95
|
+
none: false
|
77
96
|
prerelease: false
|
97
|
+
type: :runtime
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: yard
|
78
100
|
version_requirements: !ruby/object:Gem::Requirement
|
79
101
|
requirements:
|
80
|
-
- -
|
102
|
+
- - ">="
|
81
103
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
83
|
-
|
84
|
-
|
104
|
+
version: !binary |-
|
105
|
+
MA==
|
106
|
+
none: false
|
85
107
|
requirement: !ruby/object:Gem::Requirement
|
86
108
|
requirements:
|
87
|
-
- -
|
109
|
+
- - ">="
|
88
110
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
90
|
-
|
111
|
+
version: !binary |-
|
112
|
+
MA==
|
113
|
+
none: false
|
91
114
|
prerelease: false
|
115
|
+
type: :development
|
116
|
+
- !ruby/object:Gem::Dependency
|
117
|
+
name: maruku
|
92
118
|
version_requirements: !ruby/object:Gem::Requirement
|
93
119
|
requirements:
|
94
|
-
- -
|
120
|
+
- - ">="
|
95
121
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
97
|
-
|
98
|
-
|
122
|
+
version: !binary |-
|
123
|
+
MA==
|
124
|
+
none: false
|
99
125
|
requirement: !ruby/object:Gem::Requirement
|
100
126
|
requirements:
|
101
|
-
- -
|
127
|
+
- - ">="
|
102
128
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
104
|
-
|
129
|
+
version: !binary |-
|
130
|
+
MA==
|
131
|
+
none: false
|
105
132
|
prerelease: false
|
106
|
-
|
107
|
-
requirements:
|
108
|
-
- - ! '>='
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '0'
|
133
|
+
type: :development
|
111
134
|
description: Exposing Pulp's juiciest components to the Ruby world.
|
112
135
|
email:
|
113
136
|
- ehelms@redhat.com, jsherril@redhat.com
|
@@ -115,70 +138,76 @@ executables: []
|
|
115
138
|
extensions: []
|
116
139
|
extra_rdoc_files: []
|
117
140
|
files:
|
118
|
-
- CONTRIBUTING.md
|
119
|
-
- Gemfile
|
120
|
-
- LICENSE
|
121
|
-
- README.md
|
122
|
-
- Rakefile
|
123
141
|
- lib/runcible.rb
|
124
|
-
- lib/runcible/
|
125
|
-
- lib/runcible/extensions/consumer.rb
|
126
|
-
- lib/runcible/extensions/consumer_group.rb
|
127
|
-
- lib/runcible/extensions/distribution.rb
|
128
|
-
- lib/runcible/extensions/errata.rb
|
129
|
-
- lib/runcible/extensions/package_category.rb
|
130
|
-
- lib/runcible/extensions/package_group.rb
|
131
|
-
- lib/runcible/extensions/puppet_module.rb
|
132
|
-
- lib/runcible/extensions/repository.rb
|
133
|
-
- lib/runcible/extensions/rpm.rb
|
134
|
-
- lib/runcible/extensions/unit.rb
|
135
|
-
- lib/runcible/extensions/yum_repo_metadata_file.rb
|
142
|
+
- lib/runcible/version.rb
|
136
143
|
- lib/runcible/instance.rb
|
144
|
+
- lib/runcible/base.rb
|
145
|
+
- lib/runcible/models/puppet_distributor.rb
|
146
|
+
- lib/runcible/models/yum_clone_distributor.rb
|
137
147
|
- lib/runcible/models/distributor.rb
|
138
148
|
- lib/runcible/models/export_distributor.rb
|
139
|
-
- lib/runcible/models/
|
140
|
-
- lib/runcible/models/
|
149
|
+
- lib/runcible/models/puppet_importer.rb
|
150
|
+
- lib/runcible/models/docker_distributor.rb
|
141
151
|
- lib/runcible/models/iso_importer.rb
|
152
|
+
- lib/runcible/models/yum_distributor.rb
|
142
153
|
- lib/runcible/models/nodes_http_distributor.rb
|
143
|
-
- lib/runcible/models/
|
144
|
-
- lib/runcible/models/
|
154
|
+
- lib/runcible/models/iso_distributor.rb
|
155
|
+
- lib/runcible/models/docker_importer.rb
|
145
156
|
- lib/runcible/models/puppet_install_distributor.rb
|
146
|
-
- lib/runcible/models/yum_clone_distributor.rb
|
147
|
-
- lib/runcible/models/yum_distributor.rb
|
148
157
|
- lib/runcible/models/yum_importer.rb
|
149
|
-
- lib/runcible/
|
158
|
+
- lib/runcible/models/importer.rb
|
159
|
+
- lib/runcible/extensions/package_category.rb
|
160
|
+
- lib/runcible/extensions/docker_image.rb
|
161
|
+
- lib/runcible/extensions/errata.rb
|
162
|
+
- lib/runcible/extensions/consumer_group.rb
|
163
|
+
- lib/runcible/extensions/puppet_module.rb
|
164
|
+
- lib/runcible/extensions/consumer.rb
|
165
|
+
- lib/runcible/extensions/repository.rb
|
166
|
+
- lib/runcible/extensions/rpm.rb
|
167
|
+
- lib/runcible/extensions/unit.rb
|
168
|
+
- lib/runcible/extensions/package_group.rb
|
169
|
+
- lib/runcible/extensions/yum_repo_metadata_file.rb
|
170
|
+
- lib/runcible/extensions/distribution.rb
|
171
|
+
- lib/runcible/resources/role.rb
|
150
172
|
- lib/runcible/resources/consumer_group.rb
|
151
173
|
- lib/runcible/resources/content.rb
|
152
|
-
- lib/runcible/resources/
|
153
|
-
- lib/runcible/resources/repository.rb
|
154
|
-
- lib/runcible/resources/repository_group.rb
|
174
|
+
- lib/runcible/resources/consumer.rb
|
155
175
|
- lib/runcible/resources/repository_schedule.rb
|
156
|
-
- lib/runcible/resources/role.rb
|
157
176
|
- lib/runcible/resources/task.rb
|
158
|
-
- lib/runcible/resources/
|
177
|
+
- lib/runcible/resources/event_notifier.rb
|
178
|
+
- lib/runcible/resources/repository.rb
|
159
179
|
- lib/runcible/resources/user.rb
|
160
|
-
- lib/runcible/
|
180
|
+
- lib/runcible/resources/unit.rb
|
181
|
+
- lib/runcible/resources/repository_group.rb
|
182
|
+
- LICENSE
|
183
|
+
- Rakefile
|
184
|
+
- Gemfile
|
185
|
+
- README.md
|
186
|
+
- CONTRIBUTING.md
|
161
187
|
homepage: https://github.com/Katello/runcible
|
162
188
|
licenses: []
|
163
|
-
|
164
|
-
post_install_message:
|
189
|
+
post_install_message:
|
165
190
|
rdoc_options: []
|
166
191
|
require_paths:
|
167
192
|
- lib
|
168
193
|
required_ruby_version: !ruby/object:Gem::Requirement
|
169
194
|
requirements:
|
170
|
-
- -
|
195
|
+
- - ">="
|
171
196
|
- !ruby/object:Gem::Version
|
172
|
-
version:
|
197
|
+
version: !binary |-
|
198
|
+
MA==
|
199
|
+
none: false
|
173
200
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
174
201
|
requirements:
|
175
|
-
- -
|
202
|
+
- - ">="
|
176
203
|
- !ruby/object:Gem::Version
|
177
|
-
version:
|
204
|
+
version: !binary |-
|
205
|
+
MA==
|
206
|
+
none: false
|
178
207
|
requirements: []
|
179
|
-
rubyforge_project:
|
180
|
-
rubygems_version:
|
181
|
-
signing_key:
|
182
|
-
specification_version:
|
208
|
+
rubyforge_project:
|
209
|
+
rubygems_version: 1.8.24
|
210
|
+
signing_key:
|
211
|
+
specification_version: 3
|
183
212
|
summary: ''
|
184
213
|
test_files: []
|
checksums.yaml
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
---
|
2
|
-
!binary "U0hBMQ==":
|
3
|
-
metadata.gz: !binary |-
|
4
|
-
ZjQ0MDExZjQ3NmIxODI1YzdiNzBmMWIxYWM0MDUwZThjYzE0ZmYxYw==
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
YmI0NGI1YzY5YTMwZDQ3NzkxOGM0NmQ1YjI5NTEwM2M4Y2ZiOTNjMg==
|
7
|
-
SHA512:
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
MGQ0YmZmYzA0MDkzMDEwNjczYjcwYTFmOTAyZjRhZjkzZTM0ZDY0OWQ2ZjQ2
|
10
|
-
Y2Q4OGRmMjc2ZWQ4MTJiZDM3ZDg4MTBlYTY1ZmEwYmZkODBkMzM1OTJiNDU4
|
11
|
-
NzNlOGY4Nzc3NzRmNmYzNTk2ODVmZTg4M2E0OTc4Y2M5N2IxOWM=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
MzIxZDU1N2U2OTgxODcwMTJhZjkzMjE4NGQ5NDMxMWM5NjQ0ODE4NjA2MTgz
|
14
|
-
MWUyYmQxODFlZTAwYmIyODQ5MGFjNDlhYTMzMTg4YTM0YTFlYmY5OTYzYTkz
|
15
|
-
MGU2ZTk3YWU4MjRmNTFlMTk5ZWI4NTNjMTE4MTBlMmQ1MDczM2Q=
|