calabash-cucumber 0.9.163.pre6 → 0.9.163.pre7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/calabash-cucumber.gemspec +1 -1
- data/lib/calabash-cucumber/actions/instruments_actions.rb +135 -0
- data/lib/calabash-cucumber/actions/playback_actions.rb +104 -0
- data/lib/calabash-cucumber/connection.rb +16 -0
- data/lib/calabash-cucumber/connection_helpers.rb +17 -0
- data/lib/calabash-cucumber/core.rb +80 -553
- data/lib/calabash-cucumber/failure_helpers.rb +44 -0
- data/lib/calabash-cucumber/http_helpers.rb +102 -0
- data/lib/calabash-cucumber/ios7_operations.rb +46 -31
- data/lib/calabash-cucumber/keyboard_helpers.rb +26 -16
- data/lib/calabash-cucumber/launcher.rb +42 -8
- data/lib/calabash-cucumber/map.rb +28 -0
- data/lib/calabash-cucumber/operations.rb +0 -4
- data/lib/calabash-cucumber/playback_helpers.rb +200 -0
- data/lib/calabash-cucumber/query_helpers.rb +32 -0
- data/lib/calabash-cucumber/resources/double_tap_ios5_ipad.base64 +15 -0
- data/lib/calabash-cucumber/resources/double_tap_ios5_iphone.base64 +15 -0
- data/lib/calabash-cucumber/resources/double_tap_ios6_ipad.base64 +22 -0
- data/lib/calabash-cucumber/resources/double_tap_ios6_iphone.base64 +22 -0
- data/lib/calabash-cucumber/resources/swipe_down_ios5_iphone.base64 +31 -18
- data/lib/calabash-cucumber/resources/swipe_down_ios6_ipad.base64 +25 -0
- data/lib/calabash-cucumber/resources/swipe_down_ios6_iphone.base64 +25 -0
- data/lib/calabash-cucumber/resources/swipe_left_ios5_iphone.base64 +34 -79
- data/lib/calabash-cucumber/resources/swipe_left_ios6_ipad.base64 +28 -0
- data/lib/calabash-cucumber/resources/swipe_left_ios6_iphone.base64 +28 -0
- data/lib/calabash-cucumber/resources/swipe_right_ios6_ipad.base64 +25 -0
- data/lib/calabash-cucumber/resources/swipe_right_ios6_iphone.base64 +25 -0
- data/lib/calabash-cucumber/resources/swipe_up_ios5_iphone.base64 +28 -34
- data/lib/calabash-cucumber/resources/swipe_up_ios6_ipad.base64 +25 -0
- data/lib/calabash-cucumber/resources/swipe_up_ios6_iphone.base64 +25 -0
- data/lib/calabash-cucumber/resources/touch_hold_ios5_ipad.base64 +9 -0
- data/lib/calabash-cucumber/resources/touch_hold_ios5_iphone.base64 +9 -0
- data/lib/calabash-cucumber/resources/touch_hold_ios6_ipad.base64 +9 -0
- data/lib/calabash-cucumber/resources/touch_hold_ios6_iphone.base64 +9 -0
- data/lib/calabash-cucumber/rotation_helpers.rb +112 -0
- data/lib/calabash-cucumber/status_bar_helpers.rb +30 -0
- data/lib/calabash-cucumber/tests_helpers.rb +3 -42
- data/lib/calabash-cucumber/uia.rb +8 -7
- data/lib/calabash-cucumber/version.rb +2 -2
- data/lib/calabash-cucumber/wait_helpers.rb +19 -2
- metadata +31 -4
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'json'
|
2
|
+
|
3
|
+
module Calabash
|
4
|
+
module Cucumber
|
5
|
+
module Map #=> Connection
|
6
|
+
|
7
|
+
def map(query, method_name, *method_args)
|
8
|
+
raw_map(query,method_name, *method_args)['results']
|
9
|
+
end
|
10
|
+
|
11
|
+
def raw_map(query, method_name, *method_args)
|
12
|
+
operation_map = {
|
13
|
+
:method_name => method_name,
|
14
|
+
:arguments => method_args
|
15
|
+
}
|
16
|
+
res = http({:method => :post, :path => 'map'},
|
17
|
+
{:query => query, :operation => operation_map})
|
18
|
+
res = JSON.parse(res)
|
19
|
+
if res['outcome'] != 'SUCCESS'
|
20
|
+
screenshot_and_raise "map #{query}, #{method_name} failed because: #{res['reason']}\n#{res['details']}"
|
21
|
+
end
|
22
|
+
|
23
|
+
res
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,200 @@
|
|
1
|
+
module Calabash
|
2
|
+
module Cucumber
|
3
|
+
module PlaybackHelpers
|
4
|
+
|
5
|
+
DATA_PATH = File.expand_path(File.dirname(__FILE__))
|
6
|
+
|
7
|
+
def recording_name_for(recording_name, os, device)
|
8
|
+
if !recording_name.end_with? ".base64"
|
9
|
+
"#{recording_name}_#{os}_#{device}.base64"
|
10
|
+
else
|
11
|
+
recording_name
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def load_recording(recording, rec_dir)
|
16
|
+
directories = playback_file_directories(rec_dir)
|
17
|
+
directories.each { |dir|
|
18
|
+
path = "#{dir}/#{recording}"
|
19
|
+
if File.exists?(path)
|
20
|
+
# useful for debugging recordings, but too verbose for release
|
21
|
+
# suggest (yet) another variable CALABASH_DEBUG_PLAYBACK ?
|
22
|
+
#if ENV['CALABASH_FULL_CONSOLE_OUTPUT'] == '1'
|
23
|
+
# puts "found compatible playback: '#{path}'"
|
24
|
+
#end
|
25
|
+
return File.read(path)
|
26
|
+
end
|
27
|
+
}
|
28
|
+
nil
|
29
|
+
end
|
30
|
+
|
31
|
+
def playback_file_directories (rec_dir)
|
32
|
+
# rec_dir is either ENV['PLAYBACK_DIR'] or ./features/playback
|
33
|
+
[File.expand_path(rec_dir),
|
34
|
+
"#{Dir.pwd}",
|
35
|
+
"#{Dir.pwd}/features",
|
36
|
+
"#{Dir.pwd}/features/playback",
|
37
|
+
"#{DATA_PATH}/resources/"].uniq
|
38
|
+
end
|
39
|
+
|
40
|
+
def load_playback_data(recording_name, options={})
|
41
|
+
os = options["OS"] || ENV["OS"]
|
42
|
+
device = options["DEVICE"] || ENV["DEVICE"] || "iphone"
|
43
|
+
|
44
|
+
unless os
|
45
|
+
if @calabash_launcher && @calabash_launcher.active?
|
46
|
+
major = @calabash_launcher.ios_major_version
|
47
|
+
else
|
48
|
+
major = Calabash::Cucumber::SimulatorHelper.ios_major_version
|
49
|
+
end
|
50
|
+
|
51
|
+
unless major
|
52
|
+
raise <<EOF
|
53
|
+
Unable to determine iOS major version
|
54
|
+
Most likely you have updated your calabash-cucumber client
|
55
|
+
but not your server. Please follow closely:
|
56
|
+
|
57
|
+
https://github.com/calabash/calabash-ios/wiki/B1-Updating-your-Calabash-iOS-version
|
58
|
+
|
59
|
+
If you are running version 0.9.120+ then please report this message as a bug.
|
60
|
+
EOF
|
61
|
+
end
|
62
|
+
os = "ios#{major}"
|
63
|
+
end
|
64
|
+
|
65
|
+
rec_dir = ENV['PLAYBACK_DIR'] || "#{Dir.pwd}/features/playback"
|
66
|
+
|
67
|
+
candidates = []
|
68
|
+
data = find_compatible_recording(recording_name, os, rec_dir, device, candidates)
|
69
|
+
|
70
|
+
if data.nil? and device=='ipad'
|
71
|
+
if ENV['CALABASH_FULL_CONSOLE_OUTPUT'] == '1'
|
72
|
+
puts "Unable to find recording for #{os} and #{device}. Trying with #{os} iphone"
|
73
|
+
end
|
74
|
+
data = find_compatible_recording(recording_name, os, rec_dir, 'iphone', candidates)
|
75
|
+
end
|
76
|
+
|
77
|
+
if data.nil?
|
78
|
+
searched_for = " searched for => \n"
|
79
|
+
candidates.each { |file| searched_for.concat(" * '#{file}'\n") }
|
80
|
+
searched_in = " in directories =>\n"
|
81
|
+
playback_file_directories(rec_dir).each { |dir| searched_in.concat(" * '#{dir}'\n") }
|
82
|
+
screenshot_and_raise "Playback file not found for: '#{recording_name}'\n#{searched_for}#{searched_in}"
|
83
|
+
end
|
84
|
+
|
85
|
+
data
|
86
|
+
end
|
87
|
+
|
88
|
+
def find_compatible_recording (recording_name, os, rec_dir, device, candidates)
|
89
|
+
recording = recording_name_for(recording_name, os, device)
|
90
|
+
data = load_recording(recording, rec_dir)
|
91
|
+
if data.nil?
|
92
|
+
candidates << recording
|
93
|
+
version_counter = os[-1, 1].to_i
|
94
|
+
loop do
|
95
|
+
version_counter = version_counter - 1
|
96
|
+
break if version_counter < 5
|
97
|
+
loop_os = "ios#{version_counter}"
|
98
|
+
recording = recording_name_for(recording_name, loop_os, device)
|
99
|
+
candidates << recording
|
100
|
+
data = load_recording(recording, rec_dir)
|
101
|
+
break if !data.nil?
|
102
|
+
end
|
103
|
+
end
|
104
|
+
data
|
105
|
+
end
|
106
|
+
|
107
|
+
def playback(recording, options={})
|
108
|
+
data = load_playback_data(recording)
|
109
|
+
|
110
|
+
post_data = %Q|{"events":"#{data}"|
|
111
|
+
post_data<< %Q|,"query":"#{escape_quotes(options[:query])}"| if options[:query]
|
112
|
+
post_data<< %Q|,"offset":#{options[:offset].to_json}| if options[:offset]
|
113
|
+
post_data<< %Q|,"reverse":#{options[:reverse]}| if options[:reverse]
|
114
|
+
post_data<< %Q|,"uia_gesture":"#{options[:uia_gesture]}"| if options[:uia_gesture]
|
115
|
+
post_data<< %Q|,"prototype":"#{options[:prototype]}"| if options[:prototype]
|
116
|
+
post_data << "}"
|
117
|
+
|
118
|
+
res = http({:method => :post, :raw => true, :path => 'play'}, post_data)
|
119
|
+
|
120
|
+
res = JSON.parse(res)
|
121
|
+
if res['outcome'] != 'SUCCESS'
|
122
|
+
screenshot_and_raise "playback failed because: #{res['reason']}\n#{res['details']}"
|
123
|
+
end
|
124
|
+
res['results']
|
125
|
+
end
|
126
|
+
|
127
|
+
def interpolate(recording, options={})
|
128
|
+
data = load_playback_data(recording)
|
129
|
+
|
130
|
+
post_data = %Q|{"events":"#{data}"|
|
131
|
+
post_data<< %Q|,"start":"#{escape_quotes(options[:start])}"| if options[:start]
|
132
|
+
post_data<< %Q|,"end":"#{escape_quotes(options[:end])}"| if options[:end]
|
133
|
+
post_data<< %Q|,"offset_start":#{options[:offset_start].to_json}| if options[:offset_start]
|
134
|
+
post_data<< %Q|,"offset_end":#{options[:offset_end].to_json}| if options[:offset_end]
|
135
|
+
post_data << "}"
|
136
|
+
|
137
|
+
res = http({:method => :post, :raw => true, :path => 'interpolate'}, post_data)
|
138
|
+
|
139
|
+
res = JSON.parse(res)
|
140
|
+
if res['outcome'] != 'SUCCESS'
|
141
|
+
screenshot_and_raise "interpolate failed because: #{res['reason']}\n#{res['details']}"
|
142
|
+
end
|
143
|
+
res['results']
|
144
|
+
end
|
145
|
+
|
146
|
+
def record_begin
|
147
|
+
http({:method => :post, :path => 'record'}, {:action => :start})
|
148
|
+
end
|
149
|
+
|
150
|
+
def record_end(file_name)
|
151
|
+
res = http({:method => :post, :path => 'record'}, {:action => :stop})
|
152
|
+
File.open("_recording.plist", 'wb') do |f|
|
153
|
+
f.write res
|
154
|
+
end
|
155
|
+
|
156
|
+
device = ENV['DEVICE'] || 'iphone'
|
157
|
+
os = ENV['OS']
|
158
|
+
|
159
|
+
unless os
|
160
|
+
if @calabash_launcher && @calabash_launcher.active?
|
161
|
+
major = @calabash_launcher.ios_major_version
|
162
|
+
else
|
163
|
+
major = Calabash::Cucumber::SimulatorHelper.ios_major_version
|
164
|
+
end
|
165
|
+
|
166
|
+
unless major
|
167
|
+
raise <<EOF
|
168
|
+
Unable to determine iOS major version
|
169
|
+
Most likely you have updated your calabash-cucumber client
|
170
|
+
but not your server. Please follow closely:
|
171
|
+
|
172
|
+
https://github.com/calabash/calabash-ios/wiki/B1-Updating-your-Calabash-iOS-version
|
173
|
+
|
174
|
+
If you are running version 0.9.120+ then please report this message as a bug.
|
175
|
+
EOF
|
176
|
+
end
|
177
|
+
os = "ios#{major}"
|
178
|
+
end
|
179
|
+
|
180
|
+
file_name = "#{file_name}_#{os}_#{device}.base64"
|
181
|
+
system("/usr/bin/plutil -convert binary1 -o _recording_binary.plist _recording.plist")
|
182
|
+
system("openssl base64 -in _recording_binary.plist -out '#{file_name}'")
|
183
|
+
system("rm _recording.plist _recording_binary.plist")
|
184
|
+
|
185
|
+
rec_dir = ENV['PLAYBACK_DIR'] || "#{Dir.pwd}/features/playback"
|
186
|
+
unless File.directory?(rec_dir)
|
187
|
+
if ENV['CALABASH_FULL_CONSOLE_OUTPUT'] == '1'
|
188
|
+
puts "creating playback directory at '#{rec_dir}'"
|
189
|
+
end
|
190
|
+
system("mkdir -p #{rec_dir}")
|
191
|
+
end
|
192
|
+
|
193
|
+
system("mv #{file_name} #{rec_dir}")
|
194
|
+
"#{file_name} ==> '#{rec_dir}/#{file_name}'"
|
195
|
+
|
196
|
+
end
|
197
|
+
|
198
|
+
end
|
199
|
+
end
|
200
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Calabash
|
2
|
+
module Cucumber
|
3
|
+
module QueryHelpers
|
4
|
+
|
5
|
+
def escape_quotes(str)
|
6
|
+
str.gsub("'", "\\\\'")
|
7
|
+
end
|
8
|
+
|
9
|
+
def point_from(query_result, options={})
|
10
|
+
offset_x = 0
|
11
|
+
offset_y = 0
|
12
|
+
if options[:offset]
|
13
|
+
offset_x += options[:offset][:x] || 0
|
14
|
+
offset_y += options[:offset][:y] || 0
|
15
|
+
end
|
16
|
+
x = offset_x
|
17
|
+
y = offset_y
|
18
|
+
rect = query_result['rect'] || query_result[:rect]
|
19
|
+
if rect
|
20
|
+
x += rect['center_x'] || rect[:center_x] || rect[:x] || 0
|
21
|
+
y += rect['center_y'] || rect[:center_y] || rect[:y] || 0
|
22
|
+
else
|
23
|
+
x += query_result['center_x'] || query_result[:center_x] || query_result[:x] || 0
|
24
|
+
y += query_result['center_y'] || query_result[:center_y] || query_result[:y] || 0
|
25
|
+
end
|
26
|
+
|
27
|
+
{:x => x, :y => y}
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
YnBsaXN0MDCkARIcJdUCAwQFBgcICQ4RVFRpbWVURGF0YV5XaW5kb3dMb2NhdGlv
|
2
|
+
blhMb2NhdGlvblRUeXBlEwAANNCNhOloTxBAAQAAAAEAAQAAAAAAAAAAAAAAAAAA
|
3
|
+
AAAAAAAAAAAAAAAAAAEAAgICAAAAgD8AAIA/AAAcQwAAP0MAoIZAAAAAANIKCwwN
|
4
|
+
UVhRWSNAY4AAAAAAACNAZ+AAAAAAANIKCw8QI0BjgAAAAAAAI0Bn4AAAAAAAEQu5
|
5
|
+
1QITBAUGFBUWGRFURGF0YRMAADTQkuDv208QQAYAAAABAAEAAAAAAAAAAAAAAAAA
|
6
|
+
AAAAAAAAAAAAAAAAAAABAAICAQAAAIA/AACAPwAAHEMAAD9D/38AAE52xJLSCgsX
|
7
|
+
GCNAY4AAAAAAACNAZ+AAAAAAANIKCxobI0BjgAAAAAAAI0Bn4AAAAAAA1QITBAUG
|
8
|
+
HR4fIhETAAA00Jg8n41PEEABAAAAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
9
|
+
AAAAAQACAgIAAACAPwAAgD8AABxDAAA/QwCghkAAAAAA0goLICEjQGOAAAAAAAAj
|
10
|
+
QGfgAAAAAADSCgsjJCNAY4AAAAAAACNAZ+AAAAAAANUCEwQFBiYnKCsREwAANNCa
|
11
|
+
5tq1TxBABgAAAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAgIBAAAA
|
12
|
+
gD8AAIA/AAAcQwAAP0P/fwAATnbEktIKCykqI0BjgAAAAAAAI0Bn4AAAAAAA0goL
|
13
|
+
LC0jQGOAAAAAAAAjQGfgAAAAAAAACAANABgAHQAiADEAOgA/AEgAiwCQAJIAlACd
|
14
|
+
AKYAqwC0AL0AwADLANAA2QEcASEBKgEzATgBQQFKAVUBXgGhAaYBrwG4Ab0BxgHP
|
15
|
+
AdoB4wImAisCNAI9AkICSwAAAAAAAAIBAAAAAAAAAC4AAAAAAAAAAAAAAAAAAAJU
|
@@ -0,0 +1,15 @@
|
|
1
|
+
YnBsaXN0MDCkARIcJdUCAwQFBgcICQ4RVFRpbWVURGF0YV5XaW5kb3dMb2NhdGlv
|
2
|
+
blhMb2NhdGlvblRUeXBlEwAANNCNhOloTxBAAQAAAAEAAQAAAAAAAAAAAAAAAAAA
|
3
|
+
AAAAAAAAAAAAAAAAAAEAAgICAAAAgD8AAIA/AAAcQwAAP0MAoIZAAAAAANIKCwwN
|
4
|
+
UVhRWSNAY4AAAAAAACNAZ+AAAAAAANIKCw8QI0BjgAAAAAAAI0Bn4AAAAAAAEQu5
|
5
|
+
1QITBAUGFBUWGRFURGF0YRMAADTQkuDv208QQAYAAAABAAEAAAAAAAAAAAAAAAAA
|
6
|
+
AAAAAAAAAAAAAAAAAAABAAICAQAAAIA/AACAPwAAHEMAAD9D/38AAE52xJLSCgsX
|
7
|
+
GCNAY4AAAAAAACNAZ+AAAAAAANIKCxobI0BjgAAAAAAAI0Bn4AAAAAAA1QITBAUG
|
8
|
+
HR4fIhETAAA00Jg8n41PEEABAAAAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
9
|
+
AAAAAQACAgIAAACAPwAAgD8AABxDAAA/QwCghkAAAAAA0goLICEjQGOAAAAAAAAj
|
10
|
+
QGfgAAAAAADSCgsjJCNAY4AAAAAAACNAZ+AAAAAAANUCEwQFBiYnKCsREwAANNCa
|
11
|
+
5tq1TxBABgAAAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAgIBAAAA
|
12
|
+
gD8AAIA/AAAcQwAAP0P/fwAATnbEktIKCykqI0BjgAAAAAAAI0Bn4AAAAAAA0goL
|
13
|
+
LC0jQGOAAAAAAAAjQGfgAAAAAAAACAANABgAHQAiADEAOgA/AEgAiwCQAJIAlACd
|
14
|
+
AKYAqwC0AL0AwADLANAA2QEcASEBKgEzATgBQQFKAVUBXgGhAaYBrwG4Ab0BxgHP
|
15
|
+
AdoB4wImAisCNAI9AkICSwAAAAAAAAIBAAAAAAAAAC4AAAAAAAAAAAAAAAAAAAJU
|
@@ -0,0 +1,22 @@
|
|
1
|
+
YnBsaXN0MDCmARIcJS431QIDBAUGBwgJDhFUVGltZVREYXRhXldpbmRvd0xvY2F0
|
2
|
+
aW9uWExvY2F0aW9uVFR5cGUTAAA0oLBqf5xPEEABAAAAAQABAAAAAAAAAAAAAAAA
|
3
|
+
AAAAAAAAAAAAAAAAAAAAAQABAgMAAAAAAAAAoEAAAA9DAACBQysKswYAAAAA0goL
|
4
|
+
DA1RWFFZI0Bh4AAAAAAAI0BwIAAAAAAA0goLDxAjQGHgAAAAAAAjQHAgAAAAAAAR
|
5
|
+
C7nVAhMEBQYUFRYZEVREYXRhEwAANKC1ZkWoTxBABgAAAAEAAAAAAAAAAAAAAAAA
|
6
|
+
AAAAAAAAAAAAAAAAAAAAAAEAAQIAAAAAAAAAAKBAAAAPQwAAgUMrCrMGAAAAANIK
|
7
|
+
CxcYI0Bh4AAAAAAAI0BwIAAAAAAA0goLGhsjQGHgAAAAAAAjQHAgAAAAAADVAhME
|
8
|
+
BQYdHh8iERMAADSguiC7pE8QQAEAAAABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
9
|
+
AAAAAAABAAECAwAAAAAAAACgQAAAD0MAAIFD/zFrnwAAAADSCgsgISNAYeAAAAAA
|
10
|
+
ACNAcCAAAAAAANIKCyMkI0Bh4AAAAAAAI0BwIAAAAAAA1QITBAUGJicoKxETAAA0
|
11
|
+
oLohDQRPEEAGAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAgAA
|
12
|
+
AAAAAAAAoEAAAA9DAACBQ/8xa58AAAAA0goLKSojQGHgAAAAAAAjQHAgAAAAAADS
|
13
|
+
CgssLSNAYeAAAAAAACNAcCAAAAAAANUCEwQFBi8wMTQREwAANKC6IcAUTxBAAQAA
|
14
|
+
AAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQIDAAAAAAAAAKBAAAAP
|
15
|
+
QwAAgUP/MWufAAAAANIKCzIzI0Bh4AAAAAAAI0BwIAAAAAAA0goLNTYjQGHgAAAA
|
16
|
+
AAAjQHAgAAAAAADVAhMEBQY4OTo9ERMAADSgvhhKlk8QQAYAAAABAAAAAAAAAAAA
|
17
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAEBAAECAAAAAAAAAACgQAAAD0MAAIFD/zFrnwAA
|
18
|
+
AADSCgs7PCNAYeAAAAAAACNAcCAAAAAAANIKCz4/I0Bh4AAAAAAAI0BwIAAAAAAA
|
19
|
+
AAgADwAaAB8AJAAzADwAQQBKAI0AkgCUAJYAnwCoAK0AtgC/AMIAzQDSANsBHgEj
|
20
|
+
ASwBNQE6AUMBTAFXAWABowGoAbEBugG/AcgB0QHcAeUCKAItAjYCPwJEAk0CVgJh
|
21
|
+
AmoCrQKyArsCxALJAtIC2wLmAu8DMgM3A0ADSQNOA1cAAAAAAAACAQAAAAAAAABA
|
22
|
+
AAAAAAAAAAAAAAAAAAADYA==
|
@@ -0,0 +1,22 @@
|
|
1
|
+
YnBsaXN0MDCmARIcJS431QIDBAUGBwgJDhFUVGltZVREYXRhXldpbmRvd0xvY2F0
|
2
|
+
aW9uWExvY2F0aW9uVFR5cGUTAAA0oLBqf5xPEEABAAAAAQABAAAAAAAAAAAAAAAA
|
3
|
+
AAAAAAAAAAAAAAAAAAAAAQABAgMAAAAAAAAAoEAAAA9DAACBQysKswYAAAAA0goL
|
4
|
+
DA1RWFFZI0Bh4AAAAAAAI0BwIAAAAAAA0goLDxAjQGHgAAAAAAAjQHAgAAAAAAAR
|
5
|
+
C7nVAhMEBQYUFRYZEVREYXRhEwAANKC1ZkWoTxBABgAAAAEAAAAAAAAAAAAAAAAA
|
6
|
+
AAAAAAAAAAAAAAAAAAAAAAEAAQIAAAAAAAAAAKBAAAAPQwAAgUMrCrMGAAAAANIK
|
7
|
+
CxcYI0Bh4AAAAAAAI0BwIAAAAAAA0goLGhsjQGHgAAAAAAAjQHAgAAAAAADVAhME
|
8
|
+
BQYdHh8iERMAADSguiC7pE8QQAEAAAABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
9
|
+
AAAAAAABAAECAwAAAAAAAACgQAAAD0MAAIFD/zFrnwAAAADSCgsgISNAYeAAAAAA
|
10
|
+
ACNAcCAAAAAAANIKCyMkI0Bh4AAAAAAAI0BwIAAAAAAA1QITBAUGJicoKxETAAA0
|
11
|
+
oLohDQRPEEAGAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAgAA
|
12
|
+
AAAAAAAAoEAAAA9DAACBQ/8xa58AAAAA0goLKSojQGHgAAAAAAAjQHAgAAAAAADS
|
13
|
+
CgssLSNAYeAAAAAAACNAcCAAAAAAANUCEwQFBi8wMTQREwAANKC6IcAUTxBAAQAA
|
14
|
+
AAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQIDAAAAAAAAAKBAAAAP
|
15
|
+
QwAAgUP/MWufAAAAANIKCzIzI0Bh4AAAAAAAI0BwIAAAAAAA0goLNTYjQGHgAAAA
|
16
|
+
AAAjQHAgAAAAAADVAhMEBQY4OTo9ERMAADSgvhhKlk8QQAYAAAABAAAAAAAAAAAA
|
17
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAEBAAECAAAAAAAAAACgQAAAD0MAAIFD/zFrnwAA
|
18
|
+
AADSCgs7PCNAYeAAAAAAACNAcCAAAAAAANIKCz4/I0Bh4AAAAAAAI0BwIAAAAAAA
|
19
|
+
AAgADwAaAB8AJAAzADwAQQBKAI0AkgCUAJYAnwCoAK0AtgC/AMIAzQDSANsBHgEj
|
20
|
+
ASwBNQE6AUMBTAFXAWABowGoAbEBugG/AcgB0QHcAeUCKAItAjYCPwJEAk0CVgJh
|
21
|
+
AmoCrQKyArsCxALJAtIC2wLmAu8DMgM3A0ADSQNOA1cAAAAAAAACAQAAAAAAAABA
|
22
|
+
AAAAAAAAAAAAAAAAAAADYA==
|
@@ -1,18 +1,31 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
1
|
+
YnBsaXN0MDCpARIcJS43QElS1QIDBAUGBwgJDhFUVGltZVREYXRhXldpbmRvd0xv
|
2
|
+
Y2F0aW9uWExvY2F0aW9uVFR5cGUTAAA07zUa5kpPEEABAAAAAQABAAAAAAAAAAAA
|
3
|
+
JpbVwHBDecMAAAAAAAAAAAAAAQACAgIAAACAPwAAgD8AABlDAABGQwCghkAAAAAA
|
4
|
+
0goLDA1RWFFZI0BjIAAAAAAAI0BowAAAAAAA0goLDxAjQGMgAAAAAAAjQGjAAAAA
|
5
|
+
AAARC7nVAhMEBQYUFRYZEVREYXRhEwAANO9L+02wTxBAAgAAAAEAAQAAAAAAAAAA
|
6
|
+
ACaW1cBwQ3nDAAAAAAAAAAAAAAEAAgICAAAAgD8AAIA/AAAZQwAAR0P/fwAATnbE
|
7
|
+
ktIKCxcYI0BjIAAAAAAAI0Bo4AAAAAAA0goLGhsjQGMgAAAAAAAjQGjgAAAAAADV
|
8
|
+
AhMEBQYdHh8iERMAADTvTP2+5U8QQAIAAAABAAEAAAAAAAAAAAAmltXAcEN5wwAA
|
9
|
+
AAAAAAAAAAABAAICAgAAAIA/AACAPwAAGUMAAFBD/38AAE52xJLSCgsgISNAYyAA
|
10
|
+
AAAAACNAagAAAAAAANIKCyMkI0BjIAAAAAAAI0BqAAAAAAAA1QITBAUGJicoKxET
|
11
|
+
AAA07036AYhPEEACAAAAAQABAAAAAAAAAAAAJpbVwHBDecMAAAAAAAAAAAAAAQAC
|
12
|
+
AgIAAACAPwAAgD8AABlDAABbQ/9/AABOdsSS0goLKSojQGMgAAAAAAAjQGtgAAAA
|
13
|
+
AADSCgssLSNAYyAAAAAAACNAa2AAAAAAANUCEwQFBi8wMTQREwAANO9O/HDCTxBA
|
14
|
+
AgAAAAEAAQAAAAAAAAAAACaW1cBwQ3nDAAAAAAAAAAAAAAEAAgICAAAAgD8AAIA/
|
15
|
+
AAAZQwAAZ0P/fwAATnbEktIKCzIzI0BjIAAAAAAAI0Bs4AAAAAAA0goLNTYjQGMg
|
16
|
+
AAAAAAAjQGzgAAAAAADVAhMEBQY4OTo9ERMAADTvT/TgXU8QQAIAAAABAAEAAAAA
|
17
|
+
AAAAAAAmltXAcEN5wwAAAAAAAAAAAAABAAICAgAAAIA/AACAPwAAGUMAAHJD/38A
|
18
|
+
AE52xJLSCgs7PCNAYyAAAAAAACNAbkAAAAAAANIKCz4/I0BjIAAAAAAAI0BuQAAA
|
19
|
+
AAAA1QITBAUGQUJDRhETAAA071D49A5PEEACAAAAAQABAAAAAAAAAAAAJpbVwHBD
|
20
|
+
ecMAAAAAAAAAAAAAAQACAgIAAACAPwAAgD8AABlDAAB+Q/9/AABOdsSS0goLREUj
|
21
|
+
QGMgAAAAAAAjQG/AAAAAAADSCgtHSCNAYyAAAAAAACNAb8AAAAAAANUCEwQFBkpL
|
22
|
+
TE8REwAANO9R8YBdTxBAAgAAAAEAAQAAAAAAAAAAACaW1cBwQ3nDAAAAAAAAAAAA
|
23
|
+
AAEAAgICAAAAgD8AAIA/AAAZQwCAhkP/fwAATnbEktIKC01OI0BjIAAAAAAAI0Bw
|
24
|
+
0AAAAAAA0goLUFEjQGMgAAAAAAAjQHDQAAAAAADVAhMEBQZTVFVYERMAADTvUiXW
|
25
|
+
b08QQAYAAAABAAEAAAAAAAAAAAAmltXAcEN5wwAAAAAAAAAAAAABAAICAQAAAIA/
|
26
|
+
AACAPwAAGUMAgIZD/38AAE52xJLSCgtWVyNAYyAAAAAAACNAcNAAAAAAANIKC1la
|
27
|
+
I0BjIAAAAAAAI0Bw0AAAAAAAAAgAEgAdACIAJwA2AD8ARABNAJAAlQCXAJkAogCr
|
28
|
+
ALAAuQDCAMUA0ADVAN4BIQEmAS8BOAE9AUYBTwFaAWMBpgGrAbQBvQHCAcsB1AHf
|
29
|
+
AegCKwIwAjkCQgJHAlACWQJkAm0CsAK1Ar4CxwLMAtUC3gLpAvIDNQM6A0MDTANR
|
30
|
+
A1oDYwNuA3cDugO/A8gD0QPWA98D6APzA/wEPwREBE0EVgRbBGQEbQR4BIEExATJ
|
31
|
+
BNIE2wTgBOkAAAAAAAACAQAAAAAAAABbAAAAAAAAAAAAAAAAAAAE8g==
|
@@ -0,0 +1,25 @@
|
|
1
|
+
YnBsaXN0MDCnARIcJS43QNUCAwQFBgcICQ4RVFRpbWVURGF0YV5XaW5kb3dMb2Nh
|
2
|
+
dGlvblhMb2NhdGlvblRUeXBlEwAABDj0QU/0TxBAAQAAAAEAAQAAAAAAAAAAAAAA
|
3
|
+
AAAAAAAAAAAAAAAAAAAAAAEAAQIDAAAAAAAAAKBAAIAYQwAAbUONN5TmAAAAANIK
|
4
|
+
CwwNUVhRWSNAYxAAAAAAACNAbaAAAAAAANIKCw8QI0BjEAAAAAAAI0BtoAAAAAAA
|
5
|
+
EQu51QITBAUGFBUWGRFURGF0YRMAAAQ5BiTQ7k8QQAIAAAABAAEAAAAAAAAAAAAA
|
6
|
+
AAAAAAAAAAAAAAAAAAAAAAABAAECAwAAAAAAAACgQACAGEMAgHBDjTeU5gAAAADS
|
7
|
+
CgsXGCNAYxAAAAAAACNAbhAAAAAAANIKCxobI0BjEAAAAAAAI0BuEAAAAAAA1QIT
|
8
|
+
BAUGHR4fIhETAAAEOQcrp+hPEEACAAAAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
9
|
+
AAAAAAAAAQABAgMAAAAAAAAAoEAAgBhDAIB5Q403lOYAAAAA0goLICEjQGMQAAAA
|
10
|
+
AAAjQG8wAAAAAADSCgsjJCNAYxAAAAAAACNAbzAAAAAAANUCEwQFBiYnKCsREwAA
|
11
|
+
BDkIJ0wrTxBAAgAAAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQID
|
12
|
+
AAAAAAAAAKBAAIAYQwDAgkONN5TmAAAAANIKCykqI0BjEAAAAAAAI0BwWAAAAAAA
|
13
|
+
0goLLC0jQGMQAAAAAAAjQHBYAAAAAADVAhMEBQYvMDE0ERMAAAQ5CSXFXk8QQAIA
|
14
|
+
AAABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAECAwAAAAAAAACgQAAA
|
15
|
+
GEMAAIxDjTeU5gAAAADSCgsyMyNAYwAAAAAAACNAcYAAAAAAANIKCzU2I0BjAAAA
|
16
|
+
AAAAI0BxgAAAAAAA1QITBAUGODk6PRETAAAEOQos23JPEEACAAAAAQABAAAAAAAA
|
17
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAgMAAAAAAAAAoEAAgBZDAICcQ403lOYA
|
18
|
+
AAAA0goLOzwjQGLQAAAAAAAjQHOQAAAAAADSCgs+PyNAYtAAAAAAACNAc5AAAAAA
|
19
|
+
ANUCEwQFBkFCQ0YREwAABDkMr21BTxBABgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAA
|
20
|
+
AAAAAAAAAAAAAAEAAQIAAAAAAAAAAKBAAIAWQwAAtEONN5TmAAAAANIKC0RFI0Bi
|
21
|
+
0AAAAAAAI0B2gAAAAAAA0goLR0gjQGLQAAAAAAAjQHaAAAAAAAAACAAQABsAIAAl
|
22
|
+
ADQAPQBCAEsAjgCTAJUAlwCgAKkArgC3AMAAwwDOANMA3AEfASQBLQE2ATsBRAFN
|
23
|
+
AVgBYQGkAakBsgG7AcAByQHSAd0B5gIpAi4CNwJAAkUCTgJXAmICawKuArMCvALF
|
24
|
+
AsoC0wLcAucC8AMzAzgDQQNKA08DWANhA2wDdQO4A70DxgPPA9QD3QAAAAAAAAIB
|
25
|
+
AAAAAAAAAEkAAAAAAAAAAAAAAAAAAAPm
|
@@ -0,0 +1,25 @@
|
|
1
|
+
YnBsaXN0MDCnARIcJS43QNUCAwQFBgcICQ4RVFRpbWVURGF0YV5XaW5kb3dMb2Nh
|
2
|
+
dGlvblhMb2NhdGlvblRUeXBlEwAABDj0QU/0TxBAAQAAAAEAAQAAAAAAAAAAAAAA
|
3
|
+
AAAAAAAAAAAAAAAAAAAAAAEAAQIDAAAAAAAAAKBAAIAYQwAAbUONN5TmAAAAANIK
|
4
|
+
CwwNUVhRWSNAYxAAAAAAACNAbaAAAAAAANIKCw8QI0BjEAAAAAAAI0BtoAAAAAAA
|
5
|
+
EQu51QITBAUGFBUWGRFURGF0YRMAAAQ5BiTQ7k8QQAIAAAABAAEAAAAAAAAAAAAA
|
6
|
+
AAAAAAAAAAAAAAAAAAAAAAABAAECAwAAAAAAAACgQACAGEMAgHBDjTeU5gAAAADS
|
7
|
+
CgsXGCNAYxAAAAAAACNAbhAAAAAAANIKCxobI0BjEAAAAAAAI0BuEAAAAAAA1QIT
|
8
|
+
BAUGHR4fIhETAAAEOQcrp+hPEEACAAAAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
9
|
+
AAAAAAAAAQABAgMAAAAAAAAAoEAAgBhDAIB5Q403lOYAAAAA0goLICEjQGMQAAAA
|
10
|
+
AAAjQG8wAAAAAADSCgsjJCNAYxAAAAAAACNAbzAAAAAAANUCEwQFBiYnKCsREwAA
|
11
|
+
BDkIJ0wrTxBAAgAAAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQID
|
12
|
+
AAAAAAAAAKBAAIAYQwDAgkONN5TmAAAAANIKCykqI0BjEAAAAAAAI0BwWAAAAAAA
|
13
|
+
0goLLC0jQGMQAAAAAAAjQHBYAAAAAADVAhMEBQYvMDE0ERMAAAQ5CSXFXk8QQAIA
|
14
|
+
AAABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAECAwAAAAAAAACgQAAA
|
15
|
+
GEMAAIxDjTeU5gAAAADSCgsyMyNAYwAAAAAAACNAcYAAAAAAANIKCzU2I0BjAAAA
|
16
|
+
AAAAI0BxgAAAAAAA1QITBAUGODk6PRETAAAEOQos23JPEEACAAAAAQABAAAAAAAA
|
17
|
+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAgMAAAAAAAAAoEAAgBZDAICcQ403lOYA
|
18
|
+
AAAA0goLOzwjQGLQAAAAAAAjQHOQAAAAAADSCgs+PyNAYtAAAAAAACNAc5AAAAAA
|
19
|
+
ANUCEwQFBkFCQ0YREwAABDkMr21BTxBABgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAA
|
20
|
+
AAAAAAAAAAAAAAEAAQIAAAAAAAAAAKBAAIAWQwAAtEONN5TmAAAAANIKC0RFI0Bi
|
21
|
+
0AAAAAAAI0B2gAAAAAAA0goLR0gjQGLQAAAAAAAjQHaAAAAAAAAACAAQABsAIAAl
|
22
|
+
ADQAPQBCAEsAjgCTAJUAlwCgAKkArgC3AMAAwwDOANMA3AEfASQBLQE2ATsBRAFN
|
23
|
+
AVgBYQGkAakBsgG7AcAByQHSAd0B5gIpAi4CNwJAAkUCTgJXAmICawKuArMCvALF
|
24
|
+
AsoC0wLcAucC8AMzAzgDQQNKA08DWANhA2wDdQO4A70DxgPPA9QD3QAAAAAAAAIB
|
25
|
+
AAAAAAAAAEkAAAAAAAAAAAAAAAAAAAPm
|