Created a CDN

This commit is contained in:
Godwin 2014-07-12 15:29:19 -06:00
parent 867dbec2bb
commit 466e7fccc5
89 changed files with 55 additions and 121 deletions

View File

@ -28,6 +28,7 @@ gem 'forgery'
gem 'paper_trail'
gem 'font-awesome-rails'
gem 'wysiwyg-rails'
gem 'rails-assets-cdn'
group :development, :test do
gem 'rspec'

View File

@ -219,6 +219,8 @@ GEM
bundler (>= 1.3.0, < 2.0)
railties (= 4.0.0)
sprockets-rails (~> 2.0.0)
rails-assets-cdn (0.1.0)
rails
rails_12factor (0.0.2)
rails_serve_static_assets
rails_stdout_logging
@ -312,6 +314,7 @@ GEM
addressable (>= 2.3.6)
crack (>= 0.3.2)
websocket (1.0.7)
win32console (1.3.2)
win32console (1.3.2-x86-mingw32)
wysiwyg-rails (1.1.5)
font-awesome-rails (= 4.1.0.0)
@ -354,6 +357,7 @@ DEPENDENCIES
paper_trail
pg
rails (= 4.0.0)
rails-assets-cdn
rails-footnotes!
rails_12factor
rspec

View File

@ -439,6 +439,23 @@ module ApplicationHelper
('<svg' + hash_to_html_attributes(attributes) + '><use xlink:href="/assets/icons.svg#bb-icon-' + id + '"></use></svg>').html_safe
end
def static_map(location, zoom, width, height)
require 'fileutils'
local_file_name = "#{location}-#{width}x#{height}z#{zoom}.png"
file = File.join("public", "maps/#{local_file_name}")
FileUtils.mkdir_p("public/maps") unless File.directory?("public/maps")
if !File.exist?(file)
url = "http://maps.googleapis.com/maps/api/staticmap?center=#{location}&zoom=#{zoom}&size=#{width}x#{height}&maptype=roadmap&markers=size:small%7C#{location}&key=AIzaSyAH7U8xUUb8IwDPy1wWuYGprzxf4E1Jj4o"
require 'open-uri'
open(file, 'wb') do |f|
f << open(url).read
end
#FileUtils.cp url, file
end
"maps/#{local_file_name}"
end
private
def _form_field(type, name, value, options)
if type == 'check_box'

View File

@ -26,7 +26,6 @@
\==================================================
/ Placed at the top of the document 'cause of turbolinks
=# javascript_include_tag '//use.typekit.net/iqv7hcg.js'
= javascript_include_tag '//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'
=# javascript_include_tag 'application'
=# javascript_include_tag 'nested_form'

View File

@ -13,9 +13,8 @@
%h3=territory
- cities.sort_by{|k,v|k}.each do |city,organizations|
%ul.small-block-grid-1.medium-block-grid-2.large-block-grid-3.org-list.preview-list
- uri = CGI::escape(city+' '+country)
%li.city
%figure{:style => "background-image: url('http://maps.googleapis.com/maps/api/staticmap?center=#{uri}&zoom=4&size=600x300&maptype=roadmap&markers=size:small%7C#{uri}&key=AIzaSyAH7U8xUUb8IwDPy1wWuYGprzxf4E1Jj4o');"}
%figure{:style => "background-image: url('" + static_map(CGI::escape(city+' '+country), 4, 600, 300) + "');"}
%h4=city
- organizations.each do |organization|
%li=render 'preview', :organization => organization

View File

@ -7,6 +7,7 @@
%a{href: '/conferences/'}='Zine'
.columns.medium-3.large-3.text-right
&copy;2014 Bike!Bike!
= javascript_include_tag '//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'
:javascript
#{yield :scripts}
$(function(){

9
config/assets_cdn.yml Normal file
View File

@ -0,0 +1,9 @@
development:
enabled: false
host: assets.myapp.dev
production:
enabled: true
host: cdn.bikebike.org
protocol: https
fallback_protocol: http

View File

@ -258,27 +258,29 @@ namespace :migrate do
$panoramios[location] ||= 0
$panoramios[location] += 1
result = Geocoder.search(location).first
if result
points = Geocoder::Calculations.bounding_box([result.latitude, result.longitude], 5, { :unit => :km })
response = RestClient.get 'http://www.panoramio.com/map/get_panoramas.php', :params => {:set => :public, :size => :original, :from => 0, :to => 20, :mapfilter => false, :miny => points[0], :minx => points[1], :maxy => points[2], :maxx => points[3]}
if response.code == 200
i = 0
JSON.parse(response.to_str)['photos'].each { |img|
if img['width'].to_i > 980
i += 1
if i >= $panoramios[location]
params["remote_#{column.to_s}_url".to_sym] = img['photo_file_url']
params[column.to_sym] = img['photo_file_url'].gsub(/^.*\/(.*)$/, '\1')
params[:cover_attribution_id] = img['photo_id']
params[:cover_attribution_user_id] = img['owner_id']
params[:cover_attribution_name] = img['owner_name']
params[:cover_attribution_src] = 'panoramio'
return params
begin
if result
points = Geocoder::Calculations.bounding_box([result.latitude, result.longitude], 5, { :unit => :km })
response = RestClient.get 'http://www.panoramio.com/map/get_panoramas.php', :params => {:set => :public, :size => :original, :from => 0, :to => 20, :mapfilter => false, :miny => points[0], :minx => points[1], :maxy => points[2], :maxx => points[3]}
if response.code == 200
i = 0
JSON.parse(response.to_str)['photos'].each { |img|
if img['width'].to_i > 980
i += 1
if i >= $panoramios[location]
params["remote_#{column.to_s}_url".to_sym] = img['photo_file_url']
params[column.to_sym] = img['photo_file_url'].gsub(/^.*\/(.*)$/, '\1')
params[:cover_attribution_id] = img['photo_id']
params[:cover_attribution_user_id] = img['owner_id']
params[:cover_attribution_name] = img['owner_name']
params[:cover_attribution_src] = 'panoramio'
return params
end
end
end
}
}
end
end
end
rescue; end
return params
end
@ -311,7 +313,7 @@ namespace :migrate do
new_object = model.class.create(params)
post_save = (type.singularize + '_post_save')
begin
self.send(post_save, object, new_object)
self.send(post_save, object, new_object)
rescue; end
end
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

View File

@ -1,22 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIDmjCCAoICCQCABjRcroTvojANBgkqhkiG9w0BAQUFADCBjjELMAkGA1UEBhMC
Q0ExCzAJBgNVBAgTAkFCMRAwDgYDVQQHEwdDYWxnYXJ5MRMwEQYDVQQKFApCaWtl
IUJpa2UhMQwwCgYDVQQLEwNEZXYxFjAUBgNVBAMTDWxvY2FsaG9zdC5zc2wxJTAj
BgkqhkiG9w0BCQEWFmdvb2Rnb2R3aW5AaG90bWFpbC5jb20wHhcNMTQwNzEyMDEz
MDU2WhcNMTUwNzEyMDEzMDU2WjCBjjELMAkGA1UEBhMCQ0ExCzAJBgNVBAgTAkFC
MRAwDgYDVQQHEwdDYWxnYXJ5MRMwEQYDVQQKFApCaWtlIUJpa2UhMQwwCgYDVQQL
EwNEZXYxFjAUBgNVBAMTDWxvY2FsaG9zdC5zc2wxJTAjBgkqhkiG9w0BCQEWFmdv
b2Rnb2R3aW5AaG90bWFpbC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQDIgjCmK03nV4zGQRZXIqYGnSwOCHQ0x8J+SXIFqxyfWdL64AL0Nygj2Sa8
f5RCW/G2Nt2v9VFrbUWfz2ZgdXK2htGxfbyQfskx9C7v+NrTFB/p3SzkQUzzIKy1
+qtIB+/PDnQyUFIN3tExFx4RUW4T8vMAmqisQgBvuDg6b3OvqjIIzEanMD+W1tcA
J4kHjoCOlaOVQ0amcDOJbKuSrJeOCGvkyYO/8RU8oK83opHI6ZinGBxt382avf+D
4QApOLW7M1wcroab7RjPNkNejyKHp6xIrg9SZs4TUa4ERAPo2gyFPnAvmEHaOExE
XUpevy6p0SlOki3FGAUUmz86lVrTAgMBAAEwDQYJKoZIhvcNAQEFBQADggEBAETK
AiNXGCp5upwAS36CCTV5xBWovLglX52cJt5ZdEgL/E884FsGThIjT5Z7qBnP2sW0
iTqF5OHh7NGtMMUfaYImsUo2vSH4y2mF4DHjV38VvnzbqnM4ADUqPld8PkbrCHUA
j9H+5ggeDw6LYXvvrUicAXVaX2uoKYgkwRz4g/jgBgfuE+l8vDlFi6Rm54Lh6gDy
4mcgKSf/NGlocqHlzFvASih1H1BSq4jfK32orRSbYd2HNHRsYtMUgjoRSuyueQEQ
9pDN7J8gJrI37ypt8mg9646U1wuxDzqT4wDRQwRFunRgNGtM6nF+40PfWPAkokSa
tkmZfXF2VUw4nqMEa+k=
-----END CERTIFICATE-----

View File

@ -1,19 +0,0 @@
-----BEGIN CERTIFICATE REQUEST-----
MIIDCDCCAfACAQAwgY4xCzAJBgNVBAYTAkNBMQswCQYDVQQIEwJBQjEQMA4GA1UE
BxMHQ2FsZ2FyeTETMBEGA1UEChQKQmlrZSFCaWtlITEMMAoGA1UECxMDRGV2MRYw
FAYDVQQDEw1sb2NhbGhvc3Quc3NsMSUwIwYJKoZIhvcNAQkBFhZnb29kZ29kd2lu
QGhvdG1haWwuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyIIw
pitN51eMxkEWVyKmBp0sDgh0NMfCfklyBascn1nS+uAC9DcoI9kmvH+UQlvxtjbd
r/VRa21Fn89mYHVytobRsX28kH7JMfQu7/ja0xQf6d0s5EFM8yCstfqrSAfvzw50
MlBSDd7RMRceEVFuE/LzAJqorEIAb7g4Om9zr6oyCMxGpzA/ltbXACeJB46AjpWj
lUNGpnAziWyrkqyXjghr5MmDv/EVPKCvN6KRyOmYpxgcbd/Nmr3/g+EAKTi1uzNc
HK6Gm+0YzzZDXo8ih6esSK4PUmbOE1GuBEQD6NoMhT5wL5hB2jhMRF1KXr8uqdEp
TpItxRgFFJs/OpVa0wIDAQABoDQwEwYJKoZIhvcNAQkCMQYWBEIhQiEwHQYJKoZI
hvcNAQkHMRAWDk5ld09ybGVhbnNAKSEjMA0GCSqGSIb3DQEBBQUAA4IBAQCTsPln
29vj2ygz2sD1rtsAFNxR/TKxE/9pHkbqswjenjTRScx7mYU7LXBbDsT1/0RB0LJB
PYLeKKBCCGSnYqSkZyUKUGv5ZdV0BxOiJ0CVOA3wfMnUwfv1bidkx4OfX3o+pLnW
7c3tzEHHiyst94bI9gn8BD/87zhjZn24VtQCedb4oxYvU/LTx2h+RbZYMLlRxySe
Rb1gsJc/nV/v1inNPbBGkZ+xz8TDgV9w/+pzfLeFn82L/GfkNEeY1M0un5ldDgOe
oR7zVRolp0T4qaXmGIU/TJv3iTBN8U+1ZRPu3AlATV4kzhT02l0X29ziQuBqZj3B
lXUOcuq9QvC+u2h8
-----END CERTIFICATE REQUEST-----

View File

@ -1,27 +0,0 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAyIIwpitN51eMxkEWVyKmBp0sDgh0NMfCfklyBascn1nS+uAC
9DcoI9kmvH+UQlvxtjbdr/VRa21Fn89mYHVytobRsX28kH7JMfQu7/ja0xQf6d0s
5EFM8yCstfqrSAfvzw50MlBSDd7RMRceEVFuE/LzAJqorEIAb7g4Om9zr6oyCMxG
pzA/ltbXACeJB46AjpWjlUNGpnAziWyrkqyXjghr5MmDv/EVPKCvN6KRyOmYpxgc
bd/Nmr3/g+EAKTi1uzNcHK6Gm+0YzzZDXo8ih6esSK4PUmbOE1GuBEQD6NoMhT5w
L5hB2jhMRF1KXr8uqdEpTpItxRgFFJs/OpVa0wIDAQABAoIBAEM2qTo6z/2Z8p3O
2b9R5RfYfhkiKlo7EG6nDirqRkkAomHoz/SvvKvvsjWECt4H1kn/sGa4tJdvZOSC
cM4q8M5Q+WAnRxuk9KrjMQzOfgQ9/ci2lMLbRQFHVb4XDm2yA2iEbt0i4a62n6d2
GWUyx9S2H1F3hs1fvqe0uFyWWdBrhAT7ba/1qPTTxf/V7H31xHGhA/pAkvnSpd0y
5+qVHU4yBD9bzR/ujuS4lhJ6zm3d3gsdDzJWy4huNXuZiQfxI0Db0nN20iflIv2u
GzMAqy1dcDuU3L1Fqm4AjiRI55MdC9Cb9TEWk7ncABWyo47/F5cjUypLO8wmZcPl
mKPbBhECgYEA70Mh8FY0v+skdD1t/GF/GyxNLz144WvraUKhu4is4eQSKdgXqzGk
S+tsJEi7H9AeJualuvjHqDYh4tqkjrdU12TEHckskFujtpvsjVIWD0yKhuUvbDq2
SSC89rX0su+7I/KyNMzV4PVk9vF2TYXi1v/fflvxBtYm81Un1lTy0KkCgYEA1okH
3cOGdYnrJgTs11Us1oEoVRNM/0YVKP39IvHCvlpwiYMBPgsF/HJFL29OuZIDgcZI
nQ6G0GUdJ+iCsL+3kvG0/lBqoDXUqLOqX1PTEUXZvUhOwIahhpI5ZzTfCxpS7WaV
oF5GkeCHYZASK39ZHRUmjmQobZ1bt3Ju8MNhMRsCgYAvl37su3kKo89Af+ecyBfs
Y8eGmgetbzYIXgSltO4OkLs8L4ultd4ka9O68+yky1T0D/TvWAT+5KWg5jTNXpI1
tgl8k0OWA2RxMlq/UZCpwmPbqULhmFwh960etdrSrPTglan07rmsYaOPq0AI85TH
h2YBUHCFF5vv0wR1kbgq4QKBgBMJD5ieu7R8K1AxSa6FkTfrN9/smX1hA4mil65d
EzF+ptOcuyR9J+fRX9AoqSyQBx2hsVm2K0IcZqze1ZHHQQuZxLx3+C4E+LyLTIeu
0WCL+RjxbINqrrRZDxzYNR4wFMGZw5b6JnrVGE4Q0Xvojcil0sj5nBi1yKiLT8qv
G1WXAoGAV5q4BG+3Ogtzbra1g86B738tGwCugVN09+aa5CMUmHby+dxOV8TWUonU
WR8B0ftHNwGQbIyXH8vvUWouZc299un4GvSk2kD8QXOh7B8utEvhLUOESWZh3DK0
XLt/qjOfZWroefAippJWjYzMDr7ksjbf+VOEspuswJuq9n0porY=
-----END RSA PRIVATE KEY-----

View File

@ -1,30 +0,0 @@
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,E2B7A45350D7EA1A
rS1BnPRCuwtWbHERCXw2moG6YJ3sMebRS1kqG5cNYY5Id6wcQbOzUfAMbzHitOBb
9jxwU2P9bxKGkohdtL/4x6voJbbt1WZivHa79g2lJvgSGqkGeF36sEQ+5FQo83xQ
houl4MWcl+AIZiJpjuCHrj4ZAhZZLaScRdzbOc32sm+y1evWjOR6QKj6l+kaEwCx
cHl7zusD/AjICS7qnkc2LyqHAukF/5VA+TPQGbslaA5E6FC/1FaOZMgvjJ/1doWF
Oq5J4tMLDrgcX36+5zRYmEv7OPIqz5h4ynTaZJgeceuJhHwnNhD0VipbzlC0cQd7
AGHnRVDb+znQve58Zev14B5QtQhYQAuNmWiE3uiFAJEgnfbCt/zYMc7doNvzfOl2
tqOgD5FVRVAdCPXVlmDCXWp/LmxraxmtGsdH916fYHrBEe2VZ2Eamen5EKWjcVje
quwhSjqR2GPfFZexR9s6FahGLuRIL6BB4pOwwG4D9OGBfvweqiaqlXVe5XGCZf1d
KY4YArWhHectUJB8xHWp5nVh6vuqAygQFyn4dS5lpNGLwNyhytBPZb6GwV6OT2mY
W6MBGcayqM66MeFoK67ghOfBNA+BG1P5F87wVOGEi8MvGRPmRdwLIKweaU+qF8jb
la6NvzRL0oBieDZq4EHo05YaYIqKVbSh18zpVS2iI57tDLKxdRhjl+ZDXcPmB8+S
LdrvoTE+SAC4tefeJ9/BRa/G8DRcnFv9GW8lDm/wiPmVW6F2UWqLNYP+wiUJeWhr
E0mAn8xq9TEGOKWNI5ZPkYwZVzrCa1N6Zrh/VNscufTEk+HVmarXXO1OZfqFRy/A
6QUTbhA1/+VqXFpN5LANlP23PHJKI0eQa3dUuUBIepoBMbFTjGu80K3UwUX8SfUr
925hHbL/ag5zr0LstMg0iC3JlX34zoU0fxM6Sp47Bw8H+j2A731zAHShAQBVQXdq
DymwhXAgV9WHgFlhrn0w8G0zex1FPCARUU8mi4/YYuJHJIED4jxBXE2dGcV2m3EH
x0ES3J13CcuQSzb1mI5oueWiDCuSUWKgnEeLVelc6GjdtbAaj3yknoEcHkeNOJ/p
idTE3r+dwbolhe5PWFnTDNNg9sdjl95tqgFXkVKU5l/f2aMqh94aBkc5aUxCdXQj
jpiP1zPlWwqBz6kpXOII86eVIzD9k2KZoWJUXvdfsTjPo+Gz+75Z+hZjmOAC4lMv
cjj6cDepwxZS6HgN+16rAc/yVzi0bUkKkxLehjPDUAHPrK4dpeXydmuz3niHe7c7
yZTYezl3pDVRdH4I1B5Xsc/cHl0Bqo7twq1wps9sr0EUzLyiUo3oWKhTcQ/Fij9F
dMa30yyfRIZeZHw80gYcIfWwDfw5S71UqyCefs0jpQ3XX0ZRvLNMhjE5BOGYVUhU
E3Hf8xJGDchls5KSoNJYY7bZZ04AH3szDlV17nuPjhoshRZDAasLi8vVn3C0VB4O
KJn8FJpjtMuqtaJ8OdYP3duOZVLE9ycqpJHnr4BYTNqm5UANWtW3FMCXqQIb3pey
ZWctm2ARzyvmpjpPUcnalnn7gxzvrpjqYAznLTNyrffuSmVxZB9d1g==
-----END RSA PRIVATE KEY-----