moved the static files, and some tweaks to the member pages

This commit is contained in:
Oliver Marks 2016-02-06 08:24:07 +00:00
parent 102b5564d8
commit 6efcdbc79b
71 changed files with 1120 additions and 496 deletions

View File

@ -31,3 +31,4 @@ ENTRYPOINT /bin/sh -c 'cd /var/www; python index.py'
#docker build -t mhackspace . #docker build -t mhackspace .
#docker run -d --name=mhackspace_container --restart=always mhackspace #docker run -d --name=mhackspace_container --restart=always mhackspace
#accesss on dockerip 172.17.0.?:5000

View File

@ -48,16 +48,13 @@ def todict(data):
class User(UserMixin): class User(UserMixin):
def __init__(self, user_id, active=True): def __init__(self, user_id, active=True):
print 'logged in ###########'
print user_id
user_details = site_user.get_user_details({'id': user_id}).get() user_details = site_user.get_user_details({'id': user_id}).get()
self.active = False self.active = False
print user_details
if user_details: if user_details:
#~ self.check_password(user_details.get('password')) #~ self.check_password(user_details.get('password'))
self.id = user_id self.id = user_id
self.name = user_details.get('username') self.name = user_details.get('username')
self.team_id = user_details.get('team_id', 1) #~ self.team_id = user_details.get('team_id', 1)
self.active = active self.active = active
def get_id(self): def get_id(self):
@ -128,11 +125,9 @@ def register_submit():
data['password'] = request.form.get('password') data['password'] = request.form.get('password')
data['password_confirm'] = request.form.get('password') data['password_confirm'] = request.form.get('password')
data['password'] = generate_password_hash(request.form.get('password')) data['password'] = generate_password_hash(request.form.get('password'))
#TODO password strength tests #TODO password strength tests
if is_weak_password(request.form.get('password'), request.form.get('password_confirm')): if is_weak_password(request.form.get('password'), request.form.get('password_confirm')):
print 'password not strong enough'
redirect('/register') redirect('/register')
header('Your account has been registered') header('Your account has been registered')

View File

@ -32,8 +32,9 @@ rss_feeds = [{
'author':'Simon Ridley', 'author':'Simon Ridley',
'url': 'http://waistcoatforensicator.blogspot.com/feeds/posts/default?alt=rss' 'url': 'http://waistcoatforensicator.blogspot.com/feeds/posts/default?alt=rss'
}, { }, {
'author':'Mathew Beddow', 'tags': ['tech'], 'author':'Mathew Beddow',
'url': 'http://www.matthewbeddow.co.uk/?feed=rss2' 'url': 'http://www.matthewbeddow.co.uk/?feed=rss2',
'tags': ['tech'],
}, { }, {
'author':'Oliver Marks', 'author':'Oliver Marks',
'url': 'http://www.digitaloctave.co.uk/rss.xml' 'url': 'http://www.digitaloctave.co.uk/rss.xml'
@ -50,6 +51,13 @@ kent_hackspace = [
'http://canterbury.hackspace.org.uk/' 'http://canterbury.hackspace.org.uk/'
] ]
maker_events = [
'http://bristolmakerfaire.com/',
'http://makerfairebrighton.com/',
'http://makerfaireelephantandcastle.com/',
'https://www.emfcamp.org/'
]
email = 'support@maidstone-hackspace.org.uk' email = 'support@maidstone-hackspace.org.uk'
email_server = { email_server = {

View File

@ -15,10 +15,13 @@ class update_description(update_data):
table = 'user_detail' table = 'user_detail'
required = {'user_id', 'description', 'skills'} required = {'user_id', 'description', 'skills'}
columns = {'user_id', 'description', 'skills'} columns = {'user_id', 'description', 'skills'}
columns_optional = {'description', 'skills'}
columns_where = {'user_id'}
class create_description(insert_data): class create_description(insert_data):
debug = True debug = True
table = 'user_detail' table = 'user_detail'
required = {'user_id'} required = {'user_id'}
columns = {'user_id'} columns = {'user_id'}
columns_optional = {'description', 'skills'}

View File

@ -30,6 +30,24 @@ class update_last_login(update_data):
#~ columns = {'id'} #~ columns = {'id'}
columns_where = {} columns_where = {}
class update_membership_status(update_data):
debug = True
query_str = "update `users` set `status`=%(status)s where id=%(user_id)s"
required = {'user_id', 'status'}
columns_where = {}
class update_membership(update_data):
debug = True
query_str = """
update `user_membership` set
`status`=%(status)s,
subscription_id=%(subscription_is),
amount=%(amount)s,
join_date=%(join_date)s
where id=%(user_id)s"""
required = {'subscription_id', 'status', 'amount', 'join_date'}
columns_where = {'user_id'}
class delete_password_reset(delete_data): class delete_password_reset(delete_data):
"""clean up expired password resets""" """clean up expired password resets"""
table = 'user_password_reset' table = 'user_password_reset'
@ -58,13 +76,18 @@ class get_users(select_data):
query_file = 'get_users.sql' query_file = 'get_users.sql'
class get_user_bio(select_data):
#~ debug = True
required = {'id'}
query_file = 'get_user_bio.sql'
columns_where = {'user_id'}
class get_user_details(select_data): class get_user_details(select_data):
#~ debug = True #~ debug = True
required = {'id'} required = {'id'}
query_file = 'get_user_detail.sql' query_file = 'get_user_detail.sql'
columns_where = {'users.id'} columns_where = {'users.id'}
class get_by_email(select_data): class get_by_email(select_data):
required = {'email'} required = {'email'}
query_file = 'get_users.sql' query_file = 'get_users.sql'

View File

@ -1,4 +1,4 @@
select users.id as user_id, members.id as member_id, username, first_name, last_name, email, users.profile_image, last_login, description, skills select users.id as user_id, members.id as member_id, user_detail.id as user_detail_id, username, first_name, last_name, status, email, users.profile_image, last_login, description, skills
from users from users
left join members on users.id=members.user_id left join members on users.id=members.user_id
left join user_detail on users.id = user_detail.user_id left join user_detail on users.id = user_detail.user_id

View File

@ -1,3 +1,3 @@
select users.id as user_id, first_name, last_name, users.profile_image, description, skills select users.id as user_id, status, first_name, last_name, users.profile_image, description, skills
from users from users
left join user_detail on user_detail.user_id=users.id left join user_detail on user_detail.user_id=users.id

View File

@ -35,11 +35,11 @@ if __name__ == "__main__":
#module, function, output file #module, function, output file
pages_list = ( pages_list = (
('pages.homepage', 'index', 'index.html'), ('pages.homepage', 'index', 'index.htm'),
('pages.blog', 'index', 'blog.html'), ('pages.blog', 'index', 'blog.htm'),
('pages.chat', 'index', 'chat.html'), ('pages.chat', 'index', 'chat.htm'),
('pages.donate', 'index', 'donate.html'), ('pages.donate', 'index', 'donate.htm'),
('pages.competition', 'index', 'competition.html')) ('pages.competition', 'index', 'competition.htm'))
args = parser.parse_args() args = parser.parse_args()
print args.folder print args.folder

File diff suppressed because one or more lines are too long

View File

@ -1,174 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" xmlns:sa="/">
<head>
<link rel="stylesheet" id="navigationCss" href="/static/css/default.css" media="" type="text/css" />
<link rel="stylesheet" id="navigationCss" href="/static/js/jquery-ui/themes/base/jquery-ui.css" media="" type="text/css" />
<link rel="stylesheet" id="navigationCss" href="/static/css/sprite-navigation-white.css" media="" type="text/css" />
<link rel="stylesheet" id="navigationCss" href="/static/css/sprite-action-white.css" media="" type="text/css" />
<link rel="stylesheet" id="navigationCss" href="/static/css/sprite-content-white.css" media="" type="text/css" />
<script type="text/javascript" src="/static/js/jquery-2.1.4.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular-animate.js"></script>
<script type="text/javascript" src="/static/js/default.js"></script>
<link rel="icon" type="image/png" href="/static/images/favicon.png">
<title>Maidstone Hackspace - Screw sorting competition</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<div id="headerstrip"><nav class="navstrip"><div class="left"><a id="mini_logo" href="/login"><img src="//127.0.0.1:5000/static/images/hackspace.png" class="mini-logo"></a><span class="mini-logo-text">Maidstone Hackspace</span></div><div class="social"><div class="btn"><a href="https://twitter.com/share" class="twitter-share-button" data-via="MHackspace">Tweet</a></div><div class="btn"><div class="fb-share-button" data-href="http://maidstone-hackspace.org.uk/" data-layout="button_count"></div></div><div class="btn"><script type="IN/Share" data-url="http://maidstone-hackspace.org.uk/" data-counter="right"></script></div><div class="btn"><div size="standard" class="g-plusone" data-href="http://maidstone-hackspace.org.uk/" data-size="medium" data-annotation="bubble" count="true"></div></div></div></nav></div>
<nav id="leftNav" class="menu" >
<ul>
<li class="active mi0"><a href="/" >Home</a></li>
<li class="mi1"><a href="/chat" >Chat</a></li>
<li class="mi2"><a href="/donate" >Donate</a></li>
<li class="mi3"><a href="#mailing-list-signup" >Contact</a></li>
<li class="mi4"><a href="/login" >login</a></li>
</ul>
<div style="clear:both;"></div>
</nav>
<div class="page" >
<header class="pageHeader">
<img src="/static/images/competitions/screw_sorting_competition_banner.jpg" alt="Screw sorting competition banner" align="middle" style="margin:auto;display:block;width:500px;" />
</header>
<section class="pageSection">
<p>Welcome to the first Maidstone Hackspace challenge! A great opportunity for all to show off their creative flair and to join our community of makers, tinkerers, artists and more.</p><h2>The Challenge:</h2></section>
<section class="pageSection">
<p>Design a device which can sort a jar of screws by size, the winning entry will be built by Maidstone Hackspace.</p></section>
<section class="pageSection">
<p>Concepts can be designed in any software as long as the finished product is viewable without any specialist software e.g.JPG images. If you prefer to paint or draw we accept that too.</p></section>
<section class="pageSection">
<p>Submissions must be via our mailing list. The closing date is the 31st of July, submissions after this date will not be entered.</p></section>
<section class="pageSection">
<p><a title="Submit your image here." href="https://groups.google.com/forum/#!forum/maidstone-hackspace" >Submit your image here.</a>
</p></section>
<section class="pageSection">
<h2>Win a UNO Basic Starter Kit</h2></section>
<section class="pageSection">
<p><img src="http://imgapp.banggood.com/thumb/large/2014/xiemeijuan/03/SKU208787/SKU208787a.jpg" alt="Arduino starter kit" align="middle" style="margin:auto;display:block;width:500px;" />
This kit comes with an arduino board and various sensors and components, list below of every thing in the kit.<ul class="bullet-list" >
<li>1 x Arduino UNO R3 development board</li>
<li>1 x USB cable</li>
<li>1 x Prototype extension board</li>
<li>1 x Mini breadboard</li>
<li>1 x 5V stepper motor</li>
<li>1 x 2003 stepper motor driver board</li>
<li>5 x Red LED</li>
<li>5 x Green LED</li>
<li>5 x Yellow LED</li>
<li>2 x Vibration Sensor</li>
<li>1 x Flame sensor</li>
<li>1 x LM35 temperature sensor</li>
<li>1 x Infrared receiver</li>
<li>3 x Photoresistor</li>
<li>4 x Key cap</li>
<li>4 x Key switch</li>
<li>1 x Adjustable potentiometer</li>
<li>1 x Passive buzzer</li>
<li>1 x Active buzzer</li>
<li>1 x Jumper cap</li>
<li>1 x Large breadboard</li>
<li>1 x Remote Control</li>
<li>1 x 1602 Screen</li>
<li>1 x 9G servos</li>
<li>1 x Component box</li>
<li>1 x 10p DuPont line</li>
<li>30 x Breadboard line(approximately)</li>
<li>1 x 220ohm resistance</li>
<li>1 x 8*8 dot matrix</li>
<li>1 x One digit eight segment tube</li>
<li>1 x Four digit eight segment tube</li>
<li>1 x IC 74HC595</li>
<li>1 x Battery Holder</li>
<li>1 x 1K resistor plug</li>
<li>1 x 10K resistor plug</li>
<li>1 x 9V battery</li>
<li>1 x 2.54mm 40pin pin header</li>
</ul></p></section>
<footer class="pageFooter">
</footer>
</div>
<div id="footer"><div id="footertop"></div><div id="footerbottom"><div class="container"><div class="copyright">&copy;2015 Maidstone Hackspace</div><div mailing-list-signup class="google-groups-signup"><h3>Signup and make yourself known</h3><form class="block" name="signup" method="get" action="http://groups.google.com/group/maidstone-hackspace/boxsubscribe"><label for="groups-email">Email Address</label><input id="groups-email" name="email" class="required"/><button type="submit" />Subscribe</button><a href="http://groups.google.com/group/maidstone-hackspace">Browse Archives</a></form><div style="clear:both;"></div><div></div></div><div>
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
<script><!--//--><![CDATA[//><!--!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');
//]]></script>
<script src="//platform.linkedin.com/in.js" type="text/javascript"> lang: en_US</script>
<div id="fb-root"></div><script><!--//--><![CDATA[//><!--
//facebook share
(function(d, s, id) {var js, fjs = d.getElementsByTagName(s)[0];if (d.getElementById(id)) return;js = d.createElement(s); js.id = id;js.src = "//connect.facebook.net/en_GB/sdk.js#xfbml=1&version=v2.3";fjs.parentNode.insertBefore(js, fjs);}(document, 'script', 'facebook-jssdk'));
//]]></script><script type="text/javascript" ><!--//--><![CDATA[//><!--
$(document).ready(function(){
$('#mini_logo').on("click", function(e){
e.preventDefault();
$('#member_navigation').toggle();
});
});
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-63373181-1', 'maidstone-hackspace.org.uk');
ga('send', 'pageview');
var app = angular.module('myApp', ['ngAnimate']);
app.controller('sliderController', function($scope, $interval) {
$scope.currentSlide = 0;
$scope.autoSlide = true;
//$scope.length = 0;
$scope.next = function() {
$scope.autoSlide=false;
if ($scope.currentSlide < $scope.length - 1){
$scope.currentSlide += 1;
}else{
$scope.currentSlide = 0;
};
}
$scope.prev = function() {
$scope.autoSlide=false;
if ($scope.currentSlide > 0){
$scope.currentSlide -= 1;
}else{
$scope.currentSlide = $scope.length - 1;
}
}
$scope.isCurrentSlideIndex = function (index) {
return $scope.currentSlide === index;
};
$scope.loopSlides = function (index) {
if ($scope.autoSlide==false){return false;}
if ($scope.currentSlide < $scope.length - 1){
$scope.currentSlide += 1;
}else{
$scope.currentSlide = 0;
}
};
$interval(function(){$scope.loopSlides();}, 5000);
});
//]]>
</script>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@ -4,7 +4,6 @@ sys.path.insert(0, os.path.abspath('../../../scaffold/'))
from config import settings from config import settings
from scaffold.core.data.database import db from scaffold.core.data.database import db
print settings.database
db.config(settings.database) db.config(settings.database)
from scaffold.core.data.migrations import export_schema, import_schema from scaffold.core.data.migrations import export_schema, import_schema

View File

@ -11,13 +11,20 @@ def index():
header('Members') header('Members')
web.page.create('Members') web.page.create('Members')
web.member_tiles.create() web.member_tiles.create()
for item in members.get_members(): for item in members.get_members():
badges = []
print item
if item.get('status') == 1:
badges.append('member')
name = '%s %s' % (item.get('first_name'), item.get('last_name')) name = '%s %s' % (item.get('first_name'), item.get('last_name'))
web.member_tiles.append( web.member_tiles.append(
name = name, name = name,
image = item.get('profile_image'), image = item.get('profile_image'),
description=item.get('description') or 'Reclusive raccoon', description=item.get('description') or 'Reclusive raccoon',
link=item.get('user_id'), link=item.get('user_id'),
badges=badges,
skills=item.get('skills') or 'badger taunting') skills=item.get('skills') or 'badger taunting')
web.container.create(web.member_tiles.render()).set_classes('members') web.container.create(web.member_tiles.render()).set_classes('members')
web.page.section(web.container.render()) web.page.section(web.container.render())

View File

@ -6,9 +6,10 @@ import gocardless
from pages import web from pages import web
from pages import header, footer from pages import header, footer
from data.site_user import get_user_details from data.site_user import get_user_details, update_membership_status, get_user_bio
from data.profile import update_description, create_description from data.profile import update_description, create_description
from config.settings import gocardless_environment, gocardless_credentials from config.settings import gocardless_environment, gocardless_credentials
from config.settings import app_domain
profile_pages = Blueprint('profile_pages', __name__, template_folder='templates') profile_pages = Blueprint('profile_pages', __name__, template_folder='templates')
@ -37,7 +38,16 @@ def index():
web.paragraph.add('Skills %s' % (user.get('skills', ''))) web.paragraph.add('Skills %s' % (user.get('skills', '')))
web.columns.append(web.paragraph.render()) web.columns.append(web.paragraph.render())
web.columns.append(web.member_card.create(str(user.get('user_id')).zfill(5), name).render()) # membership form
#~ if user.get('status') != 1:
print user
web.columns.append(
web.member_card.create(
reference=str(user.get('user_id')).zfill(5),
name=name,
active=user.get('status')==1
).render()
)
web.paragraph.create( web.paragraph.create(
web.link.create( web.link.create(
@ -46,9 +56,6 @@ def index():
'/profile/details' '/profile/details'
).set_classes('ajaxPopup').render()) ).set_classes('ajaxPopup').render())
#~ web.form.create('Join Maidstone Hackspace', '/profile/membership')
#~ web.form.append(name='amount', label='Subscription Amount', placeholder='20.00', value='20.00')
#~ web.form.render()
web.columns.append(web.paragraph.render()) web.columns.append(web.paragraph.render())
@ -65,16 +72,67 @@ def index():
def pay_membership(): def pay_membership():
import gocardless import gocardless
gocardless.environment = gocardless_enviroment user = get_user_details({'id': current_user.get_id()}).get()
user_code = str(user.get('user_id')).zfill(5)
gocardless.environment = gocardless_environment
gocardless.set_details(**gocardless_credentials) gocardless.set_details(**gocardless_credentials)
url = gocardless.client.new_subscription_url( url = gocardless.client.new_subscription_url(
amount=request.form.get('amount'), amount=request.form.get('amount'),
interval_length=1, interval_length=1,
interval_unit="month", interval_unit="month",
name="Membership Subscription for MH0001") name="Membership your membership id is MH%s" % user_code,
redirect_uri='%s/profile/gocardless' % app_domain)
return redirect(url) return redirect(url)
@profile_pages.route("/profile/membership/cancel", methods=['GET'])
@login_required
def cancel_membership():
import gocardless
user = get_user_details({'id': current_user.get_id()}).get()
user_code = str(user.get('user_id')).zfill(5)
gocardless.environment = gocardless_environment
gocardless.set_details(**gocardless_credentials)
subscription = gocardless.client.subscription('0540QD22SKND')
subscription.cancel()
return redirect(url)
@profile_pages.route("/profile/gocardless", methods=['GET'])
@login_required
def gocardless_signup():
web.template.create('Maidstone Hackspace')
header('Maidstone Hackspace Member registration')
# confirm the payment
bill_id = request.args.get('resource_id')
try:
import gocardless
gocardless.environment = gocardless_environment
gocardless.set_details(**gocardless_credentials)
print gocardless.client.confirm_resource(request.args)
web.page.create('Thanks for becoming a member.')
web.paragraph.create(
"""Your membership request has been recieved and will be active shortly.""")
except:
# TODO log what actually has gone wrong
web.page.create('Something went wrong')
web.paragraph.create(
"""We could not confirm the payment something may have gone terribly wrong.""")
update_membership_status().execute({'user_id': current_user.get_id(), 'status': '1'})
update_membership().execute({'user_id': current_user.get_id(), 'status': '1', 'join_date': '', 'amount': '', 'subscription_id': ''})
web.page.section(web.paragraph.render())
web.template.body.append(web.page.render())
return footer()
@profile_pages.route("/profile/details", methods=['GET']) @profile_pages.route("/profile/details", methods=['GET'])
@login_required @login_required
def edit_profile(): def edit_profile():
@ -84,17 +142,22 @@ def edit_profile():
print 'create' print 'create'
create_description().execute({'user_id': current_user.get_id()}) create_description().execute({'user_id': current_user.get_id()})
web.form.create('Update your details', '/profile/update') web.form.create('Update your details', '/profile/update')
web.form.append(name='description', label='Description', placeholder='This is me i am great', value=user_details.get('description')) web.form.append(name='description', label='Description', placeholder='This is me i am great', value=user_details.get('description') or '')
web.form.append(name='skills', label='skills', placeholder='python, arduino, knitting', value=user_details.get('skills')) web.form.append(name='skills', label='skills', placeholder='python, arduino, knitting', value=user_details.get('skills') or '')
return web.form.render() return web.form.render()
@profile_pages.route("/profile/update", methods=['POST']) @profile_pages.route("/profile/update", methods=['POST'])
@login_required @login_required
def update_profile(): def update_profile():
""" handle form submit to update description and skills"""
data = { data = {
'user_id': current_user.get_id(), 'user_id': current_user.get_id(),
'skills': request.form.get('skills'), 'skills': request.form.get('skills'),
'description': request.form.get('description')} 'description': request.form.get('description')}
user_details = get_user_details({'id': current_user.get_id()}).get() or {}
if user_details.get('user_detail_id', None) is None:
create_description().execute(data)
else:
update_description().execute(data) update_description().execute(data)
return redirect('/profile') return redirect('/profile')

View File

@ -183,7 +183,7 @@ height:48px;width:48px; -webkit-animation:spin 2s linear infinite ;-moz-animatio
.tile {position:relative;background-color:#eee;width:460px;margin-left:20px;margin-bottom:20px;box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.26);} .tile {position:relative;background-color:#eee;width:460px;margin-left:20px;margin-bottom:20px;box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.26);}
.tile-img {margin:20px;width:420px;height:200px;overflow:hidden;background-repeat: no-repeat;background-position: center;background-image:url('/static/images/background.png');} .tile-img {margin:20px;width:420px;height:200px;overflow:hidden;background-repeat: no-repeat;background-position: center;background-image:url('/static/images/background.png');}
.tile header {background-color: #00232D;width:100%;bottom:20px;top:220px;overflow:auto;left:20px;right:20px;text-align:justify;line-height:150%;font-size:12px;} .tile header {background-color: #00232D;width:100%;bottom:20px;top:220px;overflow:auto;left:20px;right:20px;text-align:left;line-height:150%;font-size:12px;}
.tile h2 {line-height:150%;font-size:12px;margin-right:20px;} .tile h2 {line-height:150%;font-size:12px;margin-right:20px;}
.tile header a {color:#fff;} .tile header a {color:#fff;}
.tile-content {bottom:20px;top:220px;overflow:auto;left:20px;right:20px;text-align:justify;line-height:150%;font-size:12px;} .tile-content {bottom:20px;top:220px;overflow:auto;left:20px;right:20px;text-align:justify;line-height:150%;font-size:12px;}
@ -213,6 +213,7 @@ height:48px;width:48px; -webkit-animation:spin 2s linear infinite ;-moz-animatio
.members .tile{ width:220px;float:left;} .members .tile{ width:220px;float:left;}
.members .tile-img{margin:10px;width:200px;} .members .tile-img{margin:10px;width:200px;}
.members .badge{width:32px;height:32px;margin:0px;margin-top:5px;}
#member_navigation {z-index:2;position:fixed;top:68px;left:0px;width:180px;height:100%;} #member_navigation {z-index:2;position:fixed;top:68px;left:0px;width:180px;height:100%;}
#member_navigation a {color:#ffffff;font-weight:bold;text-decoration:none;} #member_navigation a {color:#ffffff;font-weight:bold;text-decoration:none;}
@ -233,20 +234,23 @@ height:48px;width:48px; -webkit-animation:spin 2s linear infinite ;-moz-animatio
#membercard{ #membercard{
background-color: #FF2670;border-radius: 14px;box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.26); color:#000;
background-color: #8C50A5;border-radius: 14px;box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.5);
background-image: url('/static/images/membership_card_background.png');
width: 430px; width: 430px;
height: 240px; height: 240px;
margin-left:20px; margin-left:20px;
text-shadow: 1px 1px #FFF;
position:relative; position:relative;
} }
#membercard .date {position:absolute;margin:25px;top:0px;left:0px;} #membercard .date {position:absolute;margin:25px;top:0px;left:0px;}
#membercard .container {position:relative;top:50%; width:100%;} #membercard .container {position:relative;top:50%; width:100%;}
#membercard .middle {position:absolute;top:-60px;width:100%;} #membercard .middle {color:#000;position:absolute;top:-38px;width:100%;text-align:center;font-size:28px;}
#membercard label {color:#000;text-align:left;line-height:48px;} #membercard label {text-align:left;line-height:48px;color:#000;}
#membercard input {width:140px;} #membercard input {width:140px;}
#membercard .button {margin:0px;} #membercard .button {margin:0px;}
#membercard button {margin-top:20px;} #membercard button {margin-top:30px;}
#membercard legend {margin-top:10px;margin-bottom:10px;font-weight:strong;} #membercard legend {margin-top:10px;margin-bottom:10px;font-weight:strong;}
#membercard fieldset {position:absolute;top:0px;left:0px;right:0px;padding:0px;margin:28px;border:0px;} #membercard fieldset {position:absolute;top:0px;left:0px;right:0px;padding:0px;margin:28px;border:0px;}

View File

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -575,15 +575,15 @@
inkscape:pageopacity="0.0" inkscape:pageopacity="0.0"
inkscape:pageshadow="2" inkscape:pageshadow="2"
inkscape:zoom="1.8101934" inkscape:zoom="1.8101934"
inkscape:cx="227.31994" inkscape:cx="125.94956"
inkscape:cy="906.1281" inkscape:cy="865.14175"
inkscape:document-units="px" inkscape:document-units="px"
inkscape:current-layer="layer1" inkscape:current-layer="layer1"
showgrid="true" showgrid="true"
inkscape:window-width="1920" inkscape:window-width="1551"
inkscape:window-height="1011" inkscape:window-height="876"
inkscape:window-x="0" inkscape:window-x="49"
inkscape:window-y="27" inkscape:window-y="24"
inkscape:window-maximized="1"> inkscape:window-maximized="1">
<inkscape:grid <inkscape:grid
type="xygrid" type="xygrid"
@ -1977,5 +1977,28 @@
id="g9935" /> id="g9935" />
</g> </g>
</g> </g>
<g
id="g5724"
inkscape:export-xdpi="25.26"
inkscape:export-ydpi="25.26">
<circle
style="fill:#008080;fill-opacity:1"
id="circle236-6-1-6"
r="57"
cy="184.35048"
cx="301.91724" />
<text
sodipodi:linespacing="125%"
id="text5720"
y="212.22142"
x="276.7699"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.5px;line-height:125%;font-family:Winks;-inkscape-font-specification:Winks;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:90px;font-family:'Century Schoolbook L';-inkscape-font-specification:'Century Schoolbook L Bold';fill:#ffffff;fill-opacity:1"
y="212.22142"
x="276.7699"
id="tspan5722"
sodipodi:role="line">£</tspan></text>
</g>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 99 KiB

View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 42 KiB

View File

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View File

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View File

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 47 KiB

View File

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

View File

@ -0,0 +1,122 @@
<html>
<head></head>
<body>
<canvas id="scene" width="800" height="800" style="width:800px;height:800px;border:1px solid #000;">
</canvas>
<script type="text/javascript">
//http://www.mathopenref.com/triggraphsine.html
var width = 800;
var height = 800;
var x = 1; // # start at left of screen
var y = height / 2; // # middle of the screen
var t = 1;
var sample_rate = width; // sample rate
var frequency = 2.0; // The frequency of a sine wave is the number of complete cycles that happen every second.
var amplitude = 20.0; // how many pixels tall the waves with rise/fall.
var velocity = parseFloat(width); //
var wavelength = velocity / frequency; //λ
var pi2 = Math.PI * 2.0;
var pi2_frequency = pi2 * frequency;
function* timeloop(wavelength=100, multiplyer=0.1){
/* looped time, instead of continuosly counting up
# we just repeat once one wavelength has been travelled*/
var a = 0;
while (true){
if (a > wavelength)
a = 0;
a += multiplyer;
yield a;
}
}
function wave_point(time, x, y, amplitude, frequency, sample_rate){
new_y = y + amplitude * Math.cos((pi2_frequency * ((x + time) / sample_rate)));
return [parseInt(x), parseInt(new_y)];
}
var c = document.getElementById("scene");
var ctx = c.getContext("2d");
var img = new Image();
img.src = 'icon.png';
var timestep = timeloop(wavelength=wavelength, multiplyer=6);
var rotate = 1;
function rotate(ctx, img, x, y, width, height, deg){
ctx.save();
var point = [x - width / 2, y - height / 2];
ctx.translate(point[0], point[1]);
ctx.rotate(deg * (Math.PI/180));
ctx.translate(-point[0], -point[1]);
ctx.drawImage(img, point[0], point[1], 32, 32);
ctx.restore();
}
ctx.lineWidth = 10;
// set line color
ctx.strokeStyle = '#ff0000';
setInterval(function(){
ctx.clearRect(0, 0, width, height);
console.log('draw');
var points = new Array();
var count = 0;
ctx.beginPath();
ctx.moveTo(0, height);
points.push(wave_point(time=t, x=0, height, amplitude=amplitude, frequency=frequency, sample_rate=sample_rate));
y = height / 2;
var wave_points = 10;
for (x = 0; x < width+wave_points+1; x=x+wave_points) {
points.push(wave_point(time=t, x=parseFloat(x), y=y, amplitude=amplitude, frequency=frequency, sample_rate=sample_rate));
ctx.lineTo(points[count][0], parseInt(points[count][1]));
count += 1;
}
point = wave_point(time=t, width, height, amplitude=amplitude, frequency=frequency, sample_rate=sample_rate);
ctx.lineTo(width, height);
ctx.fill();
ctx.stroke();
x = (width / 2);
y = (height / 2);
var x_center = x + 16;
var y_center = y + 16;
//~ rotate = 45;
var point = [x, y];
var point = wave_point(time=t, x=parseFloat(x), y=y, amplitude=amplitude, frequency=frequency, sample_rate=sample_rate);
ctx.beginPath()
ctx.arc(400,400,5,0,2*Math.PI);
ctx.stroke();
ctx.save();
var r = rotate * (Math.PI / 180);
ctx.translate(point[0], point[1]-16);
ctx.rotate(r);
ctx.drawImage(img, -16, -16, 32, 32);
ctx.restore();
//~ ctx.fill();
rotate = rotate + 5;
ctx.beginPath()
ctx.arc(400,400,5,0,2*Math.PI);
ctx.stroke()
ctx.save();
t = timestep.next().value;
}, 60);
</script>
</body>
</html>

View File

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 52 KiB

View File

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 94 KiB

View File

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 93 KiB

View File

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 53 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View File

Before

Width:  |  Height:  |  Size: 102 KiB

After

Width:  |  Height:  |  Size: 102 KiB

View File

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 100 KiB

View File

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

View File

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

Before

Width:  |  Height:  |  Size: 91 KiB

After

Width:  |  Height:  |  Size: 91 KiB

View File

Before

Width:  |  Height:  |  Size: 255 KiB

After

Width:  |  Height:  |  Size: 255 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 245 KiB

View File

@ -0,0 +1,545 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="210mm"
height="297mm"
viewBox="0 0 744.09448819 1052.3622047"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="membership_card.svg">
<defs
id="defs4">
<linearGradient
inkscape:collect="always"
id="linearGradient5070">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop5072" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop5074" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5070"
id="linearGradient5076"
x1="525.51941"
y1="267.84689"
x2="490"
y2="252.3622"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.3814435,0,0,2.9473683,-731.49485,-198.50985)" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.4"
inkscape:cx="368.87217"
inkscape:cy="806.04884"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:window-width="1551"
inkscape:window-height="876"
inkscape:window-x="49"
inkscape:window-y="24"
inkscape:window-maximized="1">
<inkscape:grid
type="xygrid"
id="grid4136" />
</sodipodi:namedview>
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="opacity:1;fill:#008080;fill-opacity:1;stroke:#ffffff;stroke-width:15;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect5029"
width="630"
height="420"
x="70"
y="32.362206" />
<circle
cx="294.85721"
cy="219.64789"
r="140.57143"
id="circle236-4"
style="fill:#008080;fill-opacity:1;stroke:#ffffff;stroke-width:15;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
inkscape:export-xdpi="184.2"
inkscape:export-ydpi="184.2" />
<g
id="g4997"
transform="matrix(2.4661655,0,0,2.4661655,-557.66917,-1248.6137)">
<circle
inkscape:export-ydpi="184.2"
inkscape:export-xdpi="184.2"
style="fill:#008080;fill-opacity:1"
id="circle236"
r="57"
cy="595.36218"
cx="337" />
<g
transform="translate(280,538.3622)"
inkscape:export-ydpi="184.2"
inkscape:export-xdpi="184.2"
id="g238">
<path
id="path240"
d="M 57,98.501 43.999,85.5 46.217,83.282 30.717,67.781 28.499,70 15.498,57 34.987,37.51 l 13.002,13 -4.234,4.235 2.66,2.661 10.992,-10.993 -2.66,-2.66 -4.089,4.089 L 37.656,34.841 57,15.497 70.001,28.498 67.784,30.716 83.282,46.216 85.501,43.998 98.503,57 79.159,76.343 66.157,63.342 70.246,59.253 68.083,57.09 57.091,68.083 59.253,70.245 63.487,66.011 76.49,79.014 57,98.501 Z"
inkscape:connector-curvature="0"
style="fill:#ffffff" />
</g>
</g>
<rect
style="opacity:1;fill:url(#linearGradient5076);fill-opacity:1;stroke:none;stroke-width:15;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect5068"
width="330"
height="440"
x="415"
y="429.50507" />
<rect
style="opacity:1;fill:none;fill-opacity:1;stroke:none;stroke-width:0.50087017;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4138"
width="430"
height="240"
x="156.87196"
y="96.204491"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<g
id="g5597"
transform="translate(-12.142857,0.71428572)">
<g
id="g3247"
transform="matrix(0,0.72750747,-0.71237282,0,570.75554,111.11459)"
style="fill:none;stroke:#ffffff">
<g
id="g3182"
style="fill:none;stroke:#ffffff">
<path
style="fill:none;stroke:#ffffff"
inkscape:connector-curvature="0"
id="path84-7"
d="m 24.771573,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z" />
<path
d="m 42.18185,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z"
id="path3154"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ffffff" />
<path
style="fill:none;stroke:#ffffff"
inkscape:connector-curvature="0"
id="path3156"
d="m 59.592125,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z" />
<path
d="m 77.002403,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.500002,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.900002,3.75 z"
id="path3158"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ffffff" />
<path
style="fill:none;stroke:#ffffff"
inkscape:connector-curvature="0"
id="path3160"
d="m 94.412682,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.599998,-4.15 7.749998,-9.1 9.299998,-10.95 l 2.85,-3.35 -5.35,0 c -4.949998,0 -5.699998,0.3 -8.899998,3.75 z" />
<path
d="m 111.82296,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z"
id="path3162"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ffffff" />
<path
style="fill:none;stroke:#ffffff"
inkscape:connector-curvature="0"
id="path3164"
d="m 146.64353,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.50001,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.90001,3.75 z" />
<path
d="m 181.4641,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z"
id="path3166"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ffffff" />
<path
style="fill:none;stroke:#ffffff"
inkscape:connector-curvature="0"
id="path3168"
d="m 216.28464,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z" />
<path
d="m 233.69492,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.50001,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.90001,3.75 z"
id="path3170"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ffffff" />
<path
style="fill:none;stroke:#ffffff"
inkscape:connector-curvature="0"
id="path3172"
d="m 251.1052,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z" />
<path
d="m 268.51548,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z"
id="path3174"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ffffff" />
<path
style="fill:none;stroke:#ffffff"
inkscape:connector-curvature="0"
id="path3176"
d="m 129.23324,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.50001,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.90001,3.75 z" />
<path
d="m 164.05382,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z"
id="path3178"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ffffff" />
<path
style="fill:none;stroke:#ffffff"
inkscape:connector-curvature="0"
id="path3180"
d="m 198.87438,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z" />
</g>
<path
d="m 24.771573,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z"
id="path3201"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ffffff" />
<path
style="fill:none;stroke:#ffffff"
inkscape:connector-curvature="0"
id="path3203"
d="m 42.18185,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z" />
<path
d="m 59.592125,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z"
id="path3205"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ffffff" />
<path
style="fill:none;stroke:#ffffff"
inkscape:connector-curvature="0"
id="path3207"
d="m 77.002403,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.500002,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.900002,3.75 z" />
<path
d="m 94.412682,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.599998,-4.15 7.749998,-9.1 9.299998,-10.95 l 2.85,-3.35 -5.35,0 c -4.949998,0 -5.699998,0.3 -8.899998,3.75 z"
id="path3209"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ffffff" />
<path
style="fill:none;stroke:#ffffff"
inkscape:connector-curvature="0"
id="path3211"
d="m 111.82296,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z" />
<path
d="m 146.64353,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.50001,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.90001,3.75 z"
id="path3213"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ffffff" />
<path
style="fill:none;stroke:#ffffff"
inkscape:connector-curvature="0"
id="path3215"
d="m 181.4641,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z" />
<path
d="m 216.28464,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z"
id="path3217"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ffffff" />
<path
style="fill:none;stroke:#ffffff"
inkscape:connector-curvature="0"
id="path3219"
d="m 233.69492,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.50001,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.90001,3.75 z" />
<path
d="m 251.1052,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z"
id="path3221"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ffffff" />
<path
style="fill:none;stroke:#ffffff"
inkscape:connector-curvature="0"
id="path3223"
d="m 268.51548,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z" />
<path
d="m 129.23324,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.50001,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.90001,3.75 z"
id="path3225"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ffffff" />
<path
style="fill:none;stroke:#ffffff"
inkscape:connector-curvature="0"
id="path3227"
d="m 164.05382,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z" />
<path
d="m 198.87438,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z"
id="path3229"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ffffff" />
</g>
<g
id="g3280"
transform="matrix(0,0.72750747,-0.71237282,0,615.49805,111.11459)"
style="fill:none;stroke:#ffffff">
<g
id="g3282"
style="fill:none;stroke:#ffffff">
<path
d="m 24.771573,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z"
id="path3284"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ffffff" />
<path
style="fill:none;stroke:#ffffff"
inkscape:connector-curvature="0"
id="path3286"
d="m 42.18185,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z" />
<path
d="m 59.592125,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z"
id="path3288"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ffffff" />
<path
style="fill:none;stroke:#ffffff"
inkscape:connector-curvature="0"
id="path3290"
d="m 77.002403,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.500002,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.900002,3.75 z" />
<path
d="m 94.412682,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.599998,-4.15 7.749998,-9.1 9.299998,-10.95 l 2.85,-3.35 -5.35,0 c -4.949998,0 -5.699998,0.3 -8.899998,3.75 z"
id="path3292"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ffffff" />
<path
style="fill:none;stroke:#ffffff"
inkscape:connector-curvature="0"
id="path3294"
d="m 111.82296,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z" />
<path
d="m 146.64353,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.50001,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.90001,3.75 z"
id="path3296"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ffffff" />
<path
style="fill:none;stroke:#ffffff"
inkscape:connector-curvature="0"
id="path3298"
d="m 181.4641,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z" />
<path
d="m 216.28464,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z"
id="path3300"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ffffff" />
<path
style="fill:none;stroke:#ffffff"
inkscape:connector-curvature="0"
id="path3302"
d="m 233.69492,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.50001,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.90001,3.75 z" />
<path
d="m 251.1052,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z"
id="path3304"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ffffff" />
<path
style="fill:none;stroke:#ffffff"
inkscape:connector-curvature="0"
id="path3306"
d="m 268.51548,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z" />
<path
d="m 129.23324,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.50001,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.90001,3.75 z"
id="path3308"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ffffff" />
<path
style="fill:none;stroke:#ffffff"
inkscape:connector-curvature="0"
id="path3310"
d="m 164.05382,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z" />
<path
d="m 198.87438,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z"
id="path3312"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ffffff" />
</g>
<path
style="fill:none;stroke:#ffffff"
inkscape:connector-curvature="0"
id="path3314"
d="m 24.771573,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z" />
<path
d="m 42.18185,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z"
id="path3316"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ffffff" />
<path
style="fill:none;stroke:#ffffff"
inkscape:connector-curvature="0"
id="path3318"
d="m 59.592125,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z" />
<path
d="m 77.002403,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.500002,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.900002,3.75 z"
id="path3320"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ffffff" />
<path
style="fill:none;stroke:#ffffff"
inkscape:connector-curvature="0"
id="path3322"
d="m 94.412682,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.599998,-4.15 7.749998,-9.1 9.299998,-10.95 l 2.85,-3.35 -5.35,0 c -4.949998,0 -5.699998,0.3 -8.899998,3.75 z" />
<path
d="m 111.82296,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z"
id="path3324"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ffffff" />
<path
style="fill:none;stroke:#ffffff"
inkscape:connector-curvature="0"
id="path3326"
d="m 146.64353,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.50001,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.90001,3.75 z" />
<path
d="m 181.4641,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z"
id="path3328"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ffffff" />
<path
style="fill:none;stroke:#ffffff"
inkscape:connector-curvature="0"
id="path3330"
d="m 216.28464,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z" />
<path
d="m 233.69492,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.50001,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.90001,3.75 z"
id="path3332"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ffffff" />
<path
style="fill:none;stroke:#ffffff"
inkscape:connector-curvature="0"
id="path3334"
d="m 251.1052,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z" />
<path
d="m 268.51548,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z"
id="path3336"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ffffff" />
<path
style="fill:none;stroke:#ffffff"
inkscape:connector-curvature="0"
id="path3338"
d="m 129.23324,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.50001,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.90001,3.75 z" />
<path
d="m 164.05382,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z"
id="path3340"
inkscape:connector-curvature="0"
style="fill:none;stroke:#ffffff" />
<path
style="fill:none;stroke:#ffffff"
inkscape:connector-curvature="0"
id="path3342"
d="m 198.87438,81.75 c -1.95,2.05 -6.35,7 -9.8,11 l -6.3,7.25 5.85,-0.05 5.85,0 6.5,-7.65 c 3.6,-4.15 7.75,-9.1 9.3,-10.95 l 2.85,-3.35 -5.35,0 c -4.95,0 -5.7,0.3 -8.9,3.75 z" />
</g>
<path
d="m 537.02124,119.18316 0,5.14802 c -2e-5,0.17437 -0.0353,0.28533 -0.10574,0.3329 -0.0705,0.0476 -0.28757,0.0713 -0.65116,0.0713 -0.36362,0 -0.60479,-0.11493 -0.7235,-0.34478 -0.0891,-0.17439 -0.18182,-0.2913 -0.27827,-0.35074 -0.0965,-0.0594 -0.282,-0.0892 -0.55654,-0.0892 l -12.46653,0 c -0.34134,0 -0.61776,0.10304 -0.82924,0.30912 -0.21149,0.20608 -0.31723,0.46764 -0.31723,0.78469 0,0.29326 0.11872,0.54293 0.35619,0.74902 0.23745,0.20607 0.50088,0.30911 0.79028,0.30912 l 12.46653,0 c 0.21518,-1e-5 0.36544,-0.0218 0.4508,-0.0654 0.0853,-0.0436 0.19106,-0.15258 0.31723,-0.32695 0.19291,-0.26949 0.48974,-0.40424 0.89046,-0.40423 0.31165,-1e-5 0.49902,0.0376 0.56211,0.11295 0.0631,0.0753 0.0946,0.18427 0.0946,0.32695 l 0,2.56807 c -2e-5,0.28533 -0.13359,0.428 -0.40071,0.42801 l -0.53428,0 c -0.23747,-1e-5 -0.38774,-0.0159 -0.4508,-0.0476 -0.0631,-0.0317 -0.1206,-0.12287 -0.17253,-0.27345 -0.11874,-0.37254 -0.35991,-0.55881 -0.7235,-0.5588 l -12.14373,0 c -1.15019,-1e-5 -2.06106,-0.35272 -2.73262,-1.05814 -0.67156,-0.70543 -1.00734,-1.68827 -1.00734,-2.94852 0,-1.41085 0.35619,-2.48683 1.06856,-3.22792 0.71237,-0.74109 1.74012,-1.11164 3.08324,-1.11164 l 11.73189,0 c 0.31165,0 0.54169,-0.17437 0.69011,-0.52312 0.0742,-0.17438 0.14283,-0.2794 0.20592,-0.31507 0.063,-0.0357 0.19849,-0.0535 0.40628,-0.0535 0.43037,0 0.70122,0.0277 0.81255,0.0832 0.11129,0.0555 0.16694,0.214 0.16696,0.47557 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:33.07216644px;line-height:125%;font-family:'Bernard MT Condensed';-inkscape-font-specification:'Bernard MT Condensed,';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.71237284"
id="path4220"
inkscape:connector-curvature="0" />
<path
d="m 529.24079,132.29694 -7.85836,0 c -0.32651,0 -0.57138,0.19815 -0.73463,0.59446 -0.141,0.3329 -0.34135,0.49935 -0.60107,0.49935 -0.5417,0 -0.84223,-0.0139 -0.9016,-0.0416 -0.0594,-0.0277 -0.089,-0.14465 -0.089,-0.35073 l 0,-3.16253 c 0,-0.15852 0.0575,-0.2576 0.17253,-0.29723 0.11501,-0.0396 0.39885,-0.0594 0.8515,-0.0594 0.20778,0 0.35248,0.107 0.43411,0.32101 0.17067,0.41216 0.3636,0.61824 0.5788,0.61824 l 13.15664,0 c 0.31906,0 0.55837,-0.0317 0.71793,-0.0951 0.15953,-0.0634 0.29124,-0.20609 0.39515,-0.42802 0.089,-0.19815 0.18549,-0.33091 0.2894,-0.39828 0.10387,-0.0674 0.30051,-0.10106 0.58993,-0.10106 0.51942,0 0.77914,0.14663 0.77916,0.4399 l 0,3.3052 -8.67091,3.99477 6.38909,0 c 0.35617,-1e-5 0.60847,-0.1942 0.7569,-0.58257 0.0965,-0.22987 0.2059,-0.37848 0.32836,-0.44585 0.12242,-0.0674 0.36173,-0.10106 0.71794,-0.10106 0.22259,0 0.35802,0.0238 0.40627,0.0713 0.0482,0.0475 0.0723,0.1387 0.0724,0.27345 l 0,3.28142 c -0.0223,0.18229 -0.26716,0.27344 -0.73463,0.27345 -0.27458,-1e-5 -0.44896,-0.0178 -0.52315,-0.0535 -0.0742,-0.0357 -0.1373,-0.11692 -0.18923,-0.24372 -0.1039,-0.27743 -0.20408,-0.4518 -0.30053,-0.52313 -0.0965,-0.0713 -0.23005,-0.10701 -0.40071,-0.107 l -15.8169,0 0,-2.02117 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:33.07216644px;line-height:125%;font-family:'Bernard MT Condensed';-inkscape-font-specification:'Bernard MT Condensed,';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.71237284"
id="path4222"
inkscape:connector-curvature="0" />
<path
d="m 521.52713,141.42785 13.47943,0 c 0.1484,-0.0238 0.2597,-0.16645 0.33393,-0.42801 0.0593,-0.20608 0.14654,-0.34479 0.26157,-0.41612 0.115,-0.0713 0.36174,-0.107 0.7402,-0.107 0.27454,0 0.45635,0.0515 0.54541,0.15456 0.089,0.10303 0.13355,0.36856 0.13357,0.79657 l 0,5.69493 c -2e-5,1.62485 -0.70126,2.97031 -2.10373,4.03638 -1.40249,1.06606 -3.73254,1.59909 -6.99015,1.5991 -2.96823,-1e-5 -5.18883,-0.51521 -6.6618,-1.5456 -1.47298,-1.0304 -2.20947,-2.3937 -2.20947,-4.08988 l 0,-6.2775 c 0,-0.17437 0.039,-0.29525 0.11687,-0.36262 0.0779,-0.0674 0.25044,-0.10106 0.51758,-0.10106 0.31909,0 0.51944,0.0119 0.60107,0.0357 0.0816,0.0238 0.17438,0.13871 0.27827,0.34479 0.21519,0.44386 0.53428,0.66579 0.95725,0.66579 z m 14.16954,4.42278 -15.41619,0 0,0.63013 c 0,0.44386 0.17253,0.76883 0.51758,0.97492 0.34506,0.20607 0.95911,0.30911 1.84215,0.30912 l 11.37571,0 c 0.49716,-1e-5 0.90158,-0.12683 1.21326,-0.38046 0.31164,-0.25364 0.46748,-0.61428 0.46749,-1.08192 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:33.07216644px;line-height:125%;font-family:'Bernard MT Condensed';-inkscape-font-specification:'Bernard MT Condensed,';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.71237284"
id="path4224"
inkscape:connector-curvature="0" />
<path
d="m 535.65215,159.14276 -6.3557,0 0,0.80847 c -1e-5,0.22192 0.0445,0.38441 0.13357,0.48745 0.089,0.10304 0.28197,0.1823 0.5788,0.23779 0.52685,0.0951 0.84222,0.17238 0.94612,0.23184 0.10388,0.0594 0.15582,0.15257 0.15583,0.27939 -10e-6,0.62616 -0.0241,0.98085 -0.0724,1.06409 -0.0482,0.0832 -0.23561,0.12482 -0.56211,0.12483 l -3.70656,0 c -0.23004,-1e-5 -0.38031,-0.0396 -0.4508,-0.11889 -0.0705,-0.0793 -0.10575,-0.32498 -0.10574,-0.73713 -10e-6,-0.26949 0.0464,-0.44981 0.13913,-0.54096 0.0928,-0.0912 0.35433,-0.18032 0.78473,-0.2675 0.39328,-0.0872 0.63445,-0.1724 0.7235,-0.25562 0.089,-0.0832 0.13356,-0.21203 0.13357,-0.3864 l 0,-0.92736 -7.66914,0 0,0.63013 c 0,0.38837 0.10203,0.65588 0.3061,0.80252 0.20406,0.14663 0.79214,0.38243 1.76424,0.70741 0.40812,0.13473 0.67526,0.27344 0.80142,0.41612 0.12614,0.14266 0.18921,0.39233 0.18922,0.74902 -10e-6,0.49141 -0.14842,0.73712 -0.44523,0.73713 -0.089,-1e-5 -0.21891,-0.0159 -0.38958,-0.0476 l -2.5267,-0.4399 c -0.46008,-0.0793 -0.73649,-0.14466 -0.82925,-0.19617 -0.0927,-0.0515 -0.13913,-0.21204 -0.13913,-0.48152 l 0,-7.93009 c 0,-0.19816 0.0427,-0.32498 0.128,-0.38046 0.0853,-0.0555 0.33207,-0.0832 0.7402,-0.0832 0.25972,0 0.44894,0.14267 0.56767,0.42801 0.17068,0.43593 0.40442,0.6539 0.70125,0.6539 l 13.88014,0 c 0.14097,-0.008 0.28196,-0.18626 0.42297,-0.53501 0.0965,-0.23778 0.18921,-0.37847 0.27827,-0.42207 0.089,-0.0436 0.30422,-0.0654 0.64559,-0.0654 0.28938,0 0.46191,0.0238 0.51758,0.0713 0.0556,0.0476 0.0835,0.18627 0.0835,0.41612 l 0,7.58532 c -2e-5,0.19021 -0.0297,0.32892 -0.0891,0.41612 -0.0594,0.0872 -0.20037,0.15455 -0.42297,0.20211 l -2.87175,0.60635 c -0.14843,0.0317 -0.2486,0.0476 -0.30053,0.0476 -0.20037,-1e-5 -0.30055,-0.19023 -0.30054,-0.57068 -1e-5,-0.42802 0.0464,-0.71336 0.13914,-0.85602 0.0927,-0.14268 0.32463,-0.28139 0.69568,-0.41612 0.66783,-0.24572 1.13161,-0.45774 1.39135,-0.63608 0.2597,-0.17834 0.38956,-0.37847 0.38958,-0.6004 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:33.07216644px;line-height:125%;font-family:'Bernard MT Condensed';-inkscape-font-specification:'Bernard MT Condensed,';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.71237284"
id="path4226"
inkscape:connector-curvature="0" />
<path
d="m 526.95897,169.31992 -5.52089,0 c -0.25972,-1e-5 -0.4341,0.0178 -0.52314,0.0535 -0.0891,0.0357 -0.18181,0.13672 -0.27828,0.30317 -0.12615,0.214 -0.33763,0.32101 -0.63445,0.32101 -0.43039,0 -0.69568,-0.0416 -0.79586,-0.12483 -0.10017,-0.0832 -0.15026,-0.23581 -0.15026,-0.45774 l 0,-5.02913 c 0,-0.28534 0.19293,-0.42801 0.5788,-0.42801 0.37103,0 0.61034,0.0119 0.71794,0.0357 0.1076,0.0238 0.18366,0.10304 0.22818,0.23778 0.16325,0.43594 0.48233,0.65391 0.95725,0.65391 l 13.0342,0 c 0.48232,0 0.77543,-0.19023 0.87933,-0.57068 0.0593,-0.19023 0.11872,-0.30912 0.1781,-0.35668 0.0593,-0.0476 0.23373,-0.0713 0.52315,-0.0713 0.57878,-1e-5 0.86818,0.16644 0.8682,0.49934 l 0,6.57473 c -2e-5,1.3078 -0.46009,2.47493 -1.38022,3.50137 -0.92017,1.02642 -2.15569,1.53964 -3.70657,1.53965 -2.20391,-1e-5 -3.6435,-1.20082 -4.31876,-3.60243 -0.45266,2.19553 -1.75496,3.2933 -3.90692,3.29331 l -2.64913,0 c -0.22262,-1e-5 -0.38958,0.0911 -0.50089,0.27345 -0.13357,0.214 -0.33764,0.321 -0.6122,0.32101 -0.43039,-1e-5 -0.6864,-0.0277 -0.76802,-0.0832 -0.0816,-0.0555 -0.12244,-0.20213 -0.12244,-0.4399 l 0,-3.18631 c 0,-0.38046 0.20221,-0.69354 0.60663,-0.93924 0.40442,-0.24572 0.90345,-0.36858 1.49709,-0.36857 l 4.48573,0 c 0.87561,-1e-5 1.31343,-0.47161 1.31343,-1.41482 z m 8.79336,0 -7.50218,0 0,0.7728 c -10e-6,0.78468 0.73833,1.17702 2.21503,1.17703 l 3.58413,0 c 0.62331,-10e-6 1.06298,-0.12485 1.319,-0.37451 0.256,-0.24968 0.384,-0.64004 0.38402,-1.17109 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:33.07216644px;line-height:125%;font-family:'Bernard MT Condensed';-inkscape-font-specification:'Bernard MT Condensed,';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.71237284"
id="path4228"
inkscape:connector-curvature="0" />
<path
d="m 537.32177,190.86315 0,0.61824 c -2e-5,0.14266 -0.0501,0.24967 -0.15026,0.32101 -0.1002,0.0713 -0.36919,0.12285 -0.80699,0.15456 l -3.58412,0.27345 c -0.0742,0.008 -0.14472,0.0118 -0.21149,0.0118 -0.25973,-1e-5 -0.44154,-0.0476 -0.54541,-0.14267 -0.1039,-0.0951 -0.15585,-0.28534 -0.15583,-0.57068 -2e-5,-0.34876 0.0853,-0.5905 0.25601,-0.72524 0.17066,-0.13475 0.57508,-0.26554 1.21326,-0.39235 1.61766,-0.32497 2.4265,-0.78865 2.42652,-1.39102 -2e-5,-0.49936 -0.58253,-0.74904 -1.74754,-0.74903 l -12.52218,0 c -0.8311,-1e-5 -1.24666,0.26156 -1.24665,0.78469 -10e-6,0.66579 0.69382,1.03832 2.08146,1.11758 0.40071,0.0238 0.67898,0.107 0.83481,0.24967 0.15583,0.14266 0.23375,0.43593 0.23375,0.87981 0,0.33289 -0.0575,0.56472 -0.17253,0.69551 -0.11502,0.13077 -0.33949,0.19617 -0.67341,0.19618 -1.06114,-1e-5 -1.94233,-0.34084 -2.64357,-1.02247 -0.70125,-0.68166 -1.05187,-1.52976 -1.05187,-2.54429 0,-0.98285 0.29311,-1.84679 0.87934,-2.59185 0.58622,-0.74506 1.59727,-1.38905 3.03315,-1.932 1.43587,-0.54294 3.27431,-0.8144 5.51532,-0.8144 2.11485,0 3.80488,0.22787 5.07009,0.68363 1.26519,0.45574 2.24285,1.03832 2.93298,1.7477 0.69009,0.7094 1.03514,1.53569 1.03516,2.4789 -2e-5,0.57068 -0.14472,1.06606 -0.4341,1.48616 -0.10391,0.15851 -0.15585,0.2774 -0.15583,0.35667 -2e-5,0.0951 0.10387,0.22985 0.31166,0.40423 0.1855,0.1506 0.27825,0.2893 0.27827,0.41613 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:33.07216644px;line-height:125%;font-family:'Bernard MT Condensed';-inkscape-font-specification:'Bernard MT Condensed,';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.71237284"
id="path4230"
inkscape:connector-curvature="0" />
<path
d="m 537.32177,199.09048 c -2e-5,1.16514 -0.36548,2.17374 -1.09638,3.0258 -0.73094,0.85205 -1.77168,1.54757 -3.1222,2.08656 -1.35055,0.53897 -3.08325,0.80845 -5.1981,0.80846 -2.53783,-1e-5 -4.68051,-0.52511 -6.42805,-1.57532 -1.74754,-1.05022 -2.62131,-2.53042 -2.62131,-4.44061 0,-1.81509 0.85336,-3.24575 2.56009,-4.29201 1.70673,-1.04625 3.91063,-1.56937 6.61171,-1.56937 2.76786,0 5.00886,0.53699 6.72302,1.61099 1.71413,1.07399 2.5712,2.52248 2.57122,4.3455 z m -2.638,0.93925 c 0.92755,-1e-5 1.39133,-0.32102 1.39135,-0.96303 -2e-5,-0.26949 -0.11504,-0.49935 -0.34506,-0.68957 -0.23005,-0.19024 -0.51203,-0.28535 -0.84594,-0.28534 l -13.4349,0 c -0.45266,-1e-5 -0.79586,0.0951 -1.02961,0.28534 -0.23374,0.19022 -0.35062,0.41611 -0.35062,0.67768 0,0.29327 0.12986,0.52907 0.38958,0.70742 0.25972,0.17832 0.54912,0.26749 0.86821,0.2675 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:33.07216644px;line-height:125%;font-family:'Bernard MT Condensed';-inkscape-font-specification:'Bernard MT Condensed,';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.71237284"
id="path4232"
inkscape:connector-curvature="0" />
<path
d="m 529.24079,208.95852 -7.85836,0 c -0.32651,-1e-5 -0.57138,0.19815 -0.73463,0.59447 -0.141,0.33289 -0.34135,0.49933 -0.60107,0.49933 -0.5417,0 -0.84223,-0.0138 -0.9016,-0.0416 -0.0594,-0.0278 -0.089,-0.14465 -0.089,-0.35073 l 0,-3.16252 c 0,-0.15853 0.0575,-0.25761 0.17253,-0.29724 0.11501,-0.0396 0.39885,-0.0594 0.8515,-0.0594 0.20778,0 0.35248,0.10701 0.43411,0.321 0.17067,0.41216 0.3636,0.61824 0.5788,0.61824 l 13.15664,0 c 0.31906,0 0.55837,-0.0317 0.71793,-0.0951 0.15953,-0.0634 0.29124,-0.20608 0.39515,-0.42801 0.089,-0.19815 0.18549,-0.33092 0.2894,-0.39829 0.10387,-0.0674 0.30051,-0.10106 0.58993,-0.10106 0.51942,0 0.77914,0.14664 0.77916,0.43991 l 0,3.30519 -8.67091,3.99478 6.38909,0 c 0.35617,-1e-5 0.60847,-0.1942 0.7569,-0.58257 0.0965,-0.22987 0.2059,-0.37849 0.32836,-0.44585 0.12242,-0.0674 0.36173,-0.10106 0.71794,-0.10106 0.22259,0 0.35802,0.0238 0.40627,0.0713 0.0482,0.0476 0.0723,0.13871 0.0724,0.27345 l 0,3.28143 c -0.0223,0.18229 -0.26716,0.27343 -0.73463,0.27345 -0.27458,-2e-5 -0.44896,-0.0178 -0.52315,-0.0535 -0.0742,-0.0357 -0.1373,-0.11692 -0.18923,-0.24373 -0.1039,-0.27742 -0.20408,-0.4518 -0.30053,-0.52313 -0.0965,-0.0713 -0.23005,-0.10701 -0.40071,-0.10699 l -15.8169,0 0,-2.02117 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:33.07216644px;line-height:125%;font-family:'Bernard MT Condensed';-inkscape-font-specification:'Bernard MT Condensed,';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.71237284"
id="path4234"
inkscape:connector-curvature="0" />
<path
d="m 536.54262,222.74999 c 0.0371,0.0476 0.20404,0.18229 0.50088,0.40423 0.19292,0.14266 0.28939,0.33289 0.2894,0.57068 -10e-6,0.0555 -0.026,0.27741 -0.0779,0.6658 -0.0742,0.0793 -0.23006,0.13869 -0.4675,0.17834 l -3.77335,0.64201 c -0.20037,0.0316 -0.31909,0.0476 -0.35618,0.0476 -0.14101,-10e-6 -0.23376,-0.0416 -0.27827,-0.12484 -0.0445,-0.0832 -0.0668,-0.30319 -0.0668,-0.65986 -10e-6,-0.40423 0.0482,-0.6658 0.1447,-0.78468 0.0965,-0.1189 0.49717,-0.34479 1.20213,-0.67768 1.49152,-0.70545 2.23728,-1.33557 2.2373,-1.89039 -2e-5,-0.39632 -0.25974,-0.59447 -0.77916,-0.59446 -0.6456,-1e-5 -1.91452,0.59842 -3.80674,1.79527 -2.18165,1.37122 -3.76037,2.26489 -4.73617,2.68101 -0.97581,0.41612 -2.06848,0.62418 -3.27803,0.62419 -1.43217,-1e-5 -2.53041,-0.36065 -3.29472,-1.08192 -0.76432,-0.72129 -1.14648,-1.53371 -1.14648,-2.43728 0,-0.5707 0.15213,-1.12156 0.45637,-1.6526 0.11873,-0.20609 0.17809,-0.36857 0.17809,-0.48746 0,-0.10304 -0.0705,-0.18627 -0.21149,-0.24968 -0.28198,-0.12682 -0.42297,-0.43594 -0.42297,-0.92736 0,-0.19023 0.0278,-0.31903 0.0835,-0.38639 0.0557,-0.0674 0.20222,-0.11691 0.43967,-0.14862 l 3.70657,-0.59446 c 0.47491,-0.0793 0.72721,-0.11889 0.75689,-0.11889 0.21519,0 0.32279,0.21004 0.3228,0.63013 -10e-6,0.57068 -0.0705,0.90754 -0.21149,1.01058 -0.14099,0.10303 -0.46379,0.24967 -0.96838,0.4399 -1.8032,0.69749 -2.70479,1.39896 -2.70479,2.10439 0,0.26156 0.089,0.47358 0.26714,0.63607 0.17809,0.16248 0.40071,0.24372 0.66785,0.24373 0.46749,-1e-5 1.02218,-0.18033 1.66406,-0.54096 0.64187,-0.36065 1.3561,-0.80253 2.14268,-1.32565 1.88481,-1.25233 3.38933,-2.13807 4.51355,-2.65723 1.1242,-0.51917 2.27253,-0.77874 3.44499,-0.77874 1.32084,0 2.37456,0.30912 3.16116,0.92735 0.78656,0.61824 1.17984,1.37518 1.17986,2.27084 -2e-5,0.61824 -0.25973,1.36725 -0.77915,2.24706 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:33.07216644px;line-height:125%;font-family:'Bernard MT Condensed';-inkscape-font-specification:'Bernard MT Condensed,';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.71237284"
id="path4236"
inkscape:connector-curvature="0" />
<path
d="m 535.77459,229.49117 0,-0.53501 c -2e-5,-0.17439 -0.10947,-0.31705 -0.32836,-0.42801 -0.21892,-0.11097 -0.81071,-0.2259 -1.77537,-0.34479 -0.42298,-0.0555 -0.68827,-0.14268 -0.79585,-0.26157 -0.10761,-0.11889 -0.16141,-0.35668 -0.1614,-0.71335 -10e-6,-0.34082 0.0389,-0.56077 0.11687,-0.65985 0.0779,-0.0991 0.23188,-0.14861 0.46193,-0.14861 0.13356,0 0.26713,0.004 0.40071,0.0119 l 2.59349,0.14267 c 0.30422,0.0158 0.50272,0.0713 0.59549,0.16645 0.0927,0.0951 0.13912,0.3329 0.13914,0.71335 l 0,8.71479 c -2e-5,0.25362 -0.0297,0.40818 -0.0891,0.46368 -0.0594,0.0554 -0.27457,0.0991 -0.64558,0.13078 l -2.29295,0.20212 c -0.17811,0.0158 -0.35992,0.0238 -0.54542,0.0238 -0.22263,0 -0.3933,-0.0298 -0.51201,-0.0892 -0.11874,-0.0595 -0.17811,-0.2477 -0.1781,-0.56474 -10e-6,-0.40424 0.0371,-0.66382 0.11131,-0.77874 0.0742,-0.11494 0.30794,-0.20807 0.70124,-0.2794 0.64558,-0.12683 1.17429,-0.26553 1.58615,-0.41612 0.41182,-0.1506 0.61774,-0.33687 0.61776,-0.55879 l 0,-0.35668 -14.29198,0 c -0.40813,-1e-5 -0.69011,0.19022 -0.84595,0.57068 -0.0668,0.15852 -0.14655,0.26354 -0.23931,0.31507 -0.0928,0.0516 -0.28754,0.0773 -0.58437,0.0773 -0.37844,-1e-5 -0.59921,-0.0357 -0.66228,-0.107 -0.0631,-0.0713 -0.0946,-0.23383 -0.0946,-0.48746 l 0,-5.23125 c 0,-0.20608 0.0371,-0.33885 0.11131,-0.39829 0.0742,-0.0594 0.28569,-0.0892 0.63445,-0.0892 0.41555,0 0.66785,0.12285 0.7569,0.36857 0.089,0.23778 0.17624,0.38837 0.26157,0.45179 0.0853,0.0634 0.23189,0.0951 0.43967,0.0951 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:33.07216644px;line-height:125%;font-family:'Bernard MT Condensed';-inkscape-font-specification:'Bernard MT Condensed,';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.71237284"
id="path4238"
inkscape:connector-curvature="0" />
<path
d="m 526.95897,243.2232 -5.52089,0 c -0.25972,0 -0.4341,0.0178 -0.52314,0.0535 -0.0891,0.0356 -0.18181,0.13673 -0.27828,0.30318 -0.12615,0.214 -0.33763,0.321 -0.63445,0.32101 -0.43039,-1e-5 -0.69568,-0.0416 -0.79586,-0.12484 -0.10017,-0.0832 -0.15026,-0.23581 -0.15026,-0.45773 l 0,-5.02913 c 0,-0.28534 0.19293,-0.42802 0.5788,-0.42802 0.37103,0 0.61034,0.0118 0.71794,0.0357 0.1076,0.0238 0.18366,0.10304 0.22818,0.23779 0.16325,0.43593 0.48233,0.6539 0.95725,0.6539 l 13.0342,0 c 0.48232,0 0.77543,-0.19023 0.87933,-0.57069 0.0593,-0.19022 0.11872,-0.30911 0.1781,-0.35667 0.0593,-0.0476 0.23373,-0.0713 0.52315,-0.0713 0.57878,0 0.86818,0.16645 0.8682,0.49934 l 0,6.57474 c -2e-5,1.3078 -0.46009,2.47492 -1.38022,3.50137 -0.92017,1.02642 -2.15569,1.53964 -3.70657,1.53965 -2.20391,-1e-5 -3.6435,-1.20082 -4.31876,-3.60244 -0.45266,2.19554 -1.75496,3.29331 -3.90692,3.29332 l -2.64913,0 c -0.22262,-1e-5 -0.38958,0.0911 -0.50089,0.27345 -0.13357,0.21399 -0.33764,0.32099 -0.6122,0.32101 -0.43039,-2e-5 -0.6864,-0.0278 -0.76802,-0.0832 -0.0816,-0.0555 -0.12244,-0.20212 -0.12244,-0.4399 l 0,-3.1863 c 0,-0.38046 0.20221,-0.69355 0.60663,-0.93925 0.40442,-0.24572 0.90345,-0.36858 1.49709,-0.36857 l 4.48573,0 c 0.87561,-1e-5 1.31343,-0.47161 1.31343,-1.41481 z m 8.79336,0 -7.50218,0 0,0.7728 c -10e-6,0.78468 0.73833,1.17702 2.21503,1.17702 l 3.58413,0 c 0.62331,0 1.06298,-0.12484 1.319,-0.3745 0.256,-0.24968 0.384,-0.64004 0.38402,-1.17109 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:33.07216644px;line-height:125%;font-family:'Bernard MT Condensed';-inkscape-font-specification:'Bernard MT Condensed,';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.71237284"
id="path4240"
inkscape:connector-curvature="0" />
<path
d="m 537.02124,251.39108 0,5.14802 c -2e-5,0.17438 -0.0353,0.28534 -0.10574,0.3329 -0.0705,0.0476 -0.28757,0.0713 -0.65116,0.0713 -0.36362,-1e-5 -0.60479,-0.11494 -0.7235,-0.34479 -0.0891,-0.17438 -0.18182,-0.29129 -0.27827,-0.35073 -0.0965,-0.0595 -0.282,-0.0892 -0.55654,-0.0892 l -12.46653,0 c -0.34134,-10e-6 -0.61776,0.10303 -0.82924,0.30912 -0.21149,0.20608 -0.31723,0.46764 -0.31723,0.78469 0,0.29325 0.11872,0.54293 0.35619,0.74902 0.23745,0.20607 0.50088,0.30911 0.79028,0.30911 l 12.46653,0 c 0.21518,0 0.36544,-0.0218 0.4508,-0.0654 0.0853,-0.0436 0.19106,-0.15259 0.31723,-0.32695 0.19291,-0.2695 0.48974,-0.40425 0.89046,-0.40424 0.31165,-1e-5 0.49902,0.0376 0.56211,0.11295 0.0631,0.0753 0.0946,0.18427 0.0946,0.32695 l 0,2.56807 c -2e-5,0.28534 -0.13359,0.42801 -0.40071,0.42801 l -0.53428,0 c -0.23747,0 -0.38774,-0.0158 -0.4508,-0.0476 -0.0631,-0.0317 -0.1206,-0.12287 -0.17253,-0.27346 -0.11874,-0.37253 -0.35991,-0.5588 -0.7235,-0.55879 l -12.14373,0 c -1.15019,-1e-5 -2.06106,-0.35272 -2.73262,-1.05814 -0.67156,-0.70543 -1.00734,-1.68828 -1.00734,-2.94852 0,-1.41086 0.35619,-2.48683 1.06856,-3.22791 0.71237,-0.7411 1.74012,-1.11165 3.08324,-1.11165 l 11.73189,0 c 0.31165,0 0.54169,-0.17438 0.69011,-0.52312 0.0742,-0.17438 0.14283,-0.2794 0.20592,-0.31507 0.063,-0.0357 0.19849,-0.0535 0.40628,-0.0535 0.43037,0 0.70122,0.0278 0.81255,0.0832 0.11129,0.0555 0.16694,0.21401 0.16696,0.47558 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:33.07216644px;line-height:125%;font-family:'Bernard MT Condensed';-inkscape-font-specification:'Bernard MT Condensed,';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.71237284"
id="path4242"
inkscape:connector-curvature="0" />
<path
d="m 537.32177,269.47456 0,0.61823 c -2e-5,0.14266 -0.0501,0.24967 -0.15026,0.32101 -0.1002,0.0713 -0.36919,0.12285 -0.80699,0.15456 l -3.58412,0.27346 c -0.0742,0.008 -0.14472,0.0118 -0.21149,0.0119 -0.25973,-2e-5 -0.44154,-0.0476 -0.54541,-0.14268 -0.1039,-0.0951 -0.15585,-0.28535 -0.15583,-0.57068 -2e-5,-0.34876 0.0853,-0.59051 0.25601,-0.72525 0.17066,-0.13474 0.57508,-0.26553 1.21326,-0.39234 1.61766,-0.32497 2.4265,-0.78865 2.42652,-1.39103 -2e-5,-0.49935 -0.58253,-0.74903 -1.74754,-0.74902 l -12.52218,0 c -0.8311,-1e-5 -1.24666,0.26156 -1.24665,0.78469 -10e-6,0.66579 0.69382,1.03832 2.08146,1.11758 0.40071,0.0238 0.67898,0.107 0.83481,0.24967 0.15583,0.14266 0.23375,0.43593 0.23375,0.87981 0,0.33289 -0.0575,0.56472 -0.17253,0.69551 -0.11502,0.13077 -0.33949,0.19617 -0.67341,0.19618 -1.06114,-10e-6 -1.94233,-0.34084 -2.64357,-1.02247 -0.70125,-0.68166 -1.05187,-1.52976 -1.05187,-2.54429 0,-0.98285 0.29311,-1.8468 0.87934,-2.59185 0.58622,-0.74506 1.59727,-1.38906 3.03315,-1.932 1.43587,-0.54294 3.27431,-0.81441 5.51532,-0.81441 2.11485,0 3.80488,0.22787 5.07009,0.68363 1.26519,0.45575 2.24285,1.03833 2.93298,1.74771 0.69009,0.70939 1.03514,1.53569 1.03516,2.4789 -2e-5,0.57068 -0.14472,1.06606 -0.4341,1.48615 -0.10391,0.15852 -0.15585,0.27741 -0.15583,0.35668 -2e-5,0.0951 0.10387,0.22985 0.31166,0.40423 0.1855,0.15059 0.27825,0.28931 0.27827,0.41613 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:33.07216644px;line-height:125%;font-family:'Bernard MT Condensed';-inkscape-font-specification:'Bernard MT Condensed,';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.71237284"
id="path4244"
inkscape:connector-curvature="0" />
<path
d="m 535.77459,274.62258 0,-0.53501 c -2e-5,-0.17438 -0.10947,-0.31705 -0.32836,-0.42802 -0.21892,-0.11096 -0.81071,-0.22589 -1.77537,-0.34479 -0.42298,-0.0555 -0.68827,-0.14266 -0.79585,-0.26155 -0.10761,-0.1189 -0.16141,-0.35669 -0.1614,-0.71336 -10e-6,-0.34082 0.0389,-0.56078 0.11687,-0.65985 0.0779,-0.0991 0.23188,-0.14862 0.46193,-0.14861 0.13356,-10e-6 0.26713,0.004 0.40071,0.0118 l 2.59349,0.14268 c 0.30422,0.0158 0.50272,0.0713 0.59549,0.16645 0.0927,0.0951 0.13912,0.33289 0.13914,0.71335 l 0,8.71478 c -2e-5,0.25363 -0.0297,0.40819 -0.0891,0.46368 -0.0594,0.0555 -0.27457,0.0991 -0.64558,0.13079 l -2.29295,0.20211 c -0.17811,0.0158 -0.35992,0.0238 -0.54542,0.0238 -0.22263,-10e-6 -0.3933,-0.0297 -0.51201,-0.0892 -0.11874,-0.0595 -0.17811,-0.2477 -0.1781,-0.56474 -10e-6,-0.40423 0.0371,-0.66382 0.11131,-0.77874 0.0742,-0.11493 0.30794,-0.20807 0.70124,-0.27939 0.64558,-0.12683 1.17429,-0.26554 1.58615,-0.41613 0.41182,-0.1506 0.61774,-0.33687 0.61776,-0.55879 l 0,-0.35667 -14.29198,0 c -0.40813,-10e-6 -0.69011,0.19022 -0.84595,0.57068 -0.0668,0.15851 -0.14655,0.26353 -0.23931,0.31506 -0.0928,0.0515 -0.28754,0.0773 -0.58437,0.0773 -0.37844,-2e-5 -0.59921,-0.0357 -0.66228,-0.10701 -0.0631,-0.0713 -0.0946,-0.23384 -0.0946,-0.48746 l 0,-5.23125 c 0,-0.20608 0.0371,-0.33884 0.11131,-0.39828 0.0742,-0.0594 0.28569,-0.0892 0.63445,-0.0892 0.41555,0 0.66785,0.12286 0.7569,0.36858 0.089,0.23777 0.17624,0.38837 0.26157,0.45178 0.0853,0.0634 0.23189,0.0951 0.43967,0.0951 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:33.07216644px;line-height:125%;font-family:'Bernard MT Condensed';-inkscape-font-specification:'Bernard MT Condensed,';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.71237284"
id="path4246"
inkscape:connector-curvature="0" />
<path
d="m 536.08625,282.86179 0.58993,0 c 0.23002,0 0.34504,0.13079 0.34506,0.39235 l 0,5.69493 c -2e-5,0.21399 -0.026,0.3527 -0.0779,0.41612 -0.052,0.0634 -0.20779,0.0951 -0.46749,0.0951 -0.39331,0 -0.63818,-0.0218 -0.73464,-0.0654 -0.0965,-0.0436 -0.15584,-0.1407 -0.17809,-0.29129 -0.0816,-0.49143 -0.37475,-0.73714 -0.87933,-0.73713 l -13.37926,0 c -0.28198,-10e-6 -0.50459,0.17833 -0.66785,0.53501 -0.10388,0.22986 -0.19664,0.36856 -0.27827,0.41613 -0.0816,0.0476 -0.22261,0.0713 -0.42297,0.0713 l -0.4341,0 c -0.23746,-1e-5 -0.37103,-0.0238 -0.40071,-0.0713 -0.0297,-0.0476 -0.0445,-0.17042 -0.0445,-0.36857 l 0,-5.80193 c 0,-0.22193 0.0816,-0.3329 0.24488,-0.3329 0.53427,0 0.86078,0.0198 0.97951,0.0594 0.11873,0.0396 0.21148,0.17834 0.27827,0.41612 0.11131,0.42801 0.32279,0.64201 0.63446,0.64201 l 13.21229,0 c 0.31164,0 0.54725,-0.0396 0.7068,-0.11888 0.15953,-0.0793 0.29124,-0.25364 0.39515,-0.52313 0.0816,-0.19815 0.15396,-0.31903 0.21705,-0.36262 0.0631,-0.0436 0.18364,-0.0654 0.36175,-0.0654 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:33.07216644px;line-height:125%;font-family:'Bernard MT Condensed';-inkscape-font-specification:'Bernard MT Condensed,';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.71237284"
id="path4248"
inkscape:connector-curvature="0" />
<path
d="m 537.32177,296.24904 c -2e-5,1.16514 -0.36548,2.17374 -1.09638,3.0258 -0.73094,0.85206 -1.77168,1.54757 -3.1222,2.08656 -1.35055,0.53897 -3.08325,0.80845 -5.1981,0.80847 -2.53783,-2e-5 -4.68051,-0.52513 -6.42805,-1.57532 -1.74754,-1.05023 -2.62131,-2.53044 -2.62131,-4.44063 0,-1.81508 0.85336,-3.24575 2.56009,-4.292 1.70673,-1.04624 3.91063,-1.56937 6.61171,-1.56937 2.76786,0 5.00886,0.537 6.72302,1.61099 1.71413,1.07398 2.5712,2.52249 2.57122,4.3455 z m -2.638,0.93925 c 0.92755,0 1.39133,-0.32101 1.39135,-0.96302 -2e-5,-0.2695 -0.11504,-0.49936 -0.34506,-0.68958 -0.23005,-0.19023 -0.51203,-0.28535 -0.84594,-0.28534 l -13.4349,0 c -0.45266,-1e-5 -0.79586,0.0951 -1.02961,0.28534 -0.23374,0.19022 -0.35062,0.41612 -0.35062,0.67769 0,0.29326 0.12986,0.52906 0.38958,0.7074 0.25972,0.17833 0.54912,0.26751 0.86821,0.26751 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:33.07216644px;line-height:125%;font-family:'Bernard MT Condensed';-inkscape-font-specification:'Bernard MT Condensed,';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.71237284"
id="path4250"
inkscape:connector-curvature="0" />
<path
d="m 529.24079,306.11708 -7.85836,0 c -0.32651,-10e-6 -0.57138,0.19815 -0.73463,0.59446 -0.141,0.33289 -0.34135,0.49935 -0.60107,0.49935 -0.5417,0 -0.84223,-0.0138 -0.9016,-0.0416 -0.0594,-0.0278 -0.089,-0.14467 -0.089,-0.35073 l 0,-3.16254 c 0,-0.15852 0.0575,-0.2576 0.17253,-0.29722 0.11501,-0.0396 0.39885,-0.0594 0.8515,-0.0594 0.20778,0 0.35248,0.107 0.43411,0.32101 0.17067,0.41216 0.3636,0.61824 0.5788,0.61824 l 13.15664,0 c 0.31906,0 0.55837,-0.0318 0.71793,-0.0951 0.15953,-0.0634 0.29124,-0.20609 0.39515,-0.42801 0.089,-0.19816 0.18549,-0.33092 0.2894,-0.3983 0.10387,-0.0674 0.30051,-0.10105 0.58993,-0.10105 0.51942,0 0.77914,0.14663 0.77916,0.43989 l 0,3.30521 -8.67091,3.99476 6.38909,0 c 0.35617,0 0.60847,-0.19419 0.7569,-0.58256 0.0965,-0.22987 0.2059,-0.37848 0.32836,-0.44585 0.12242,-0.0674 0.36173,-0.10106 0.71794,-0.10105 0.22259,-1e-5 0.35802,0.0238 0.40627,0.0713 0.0482,0.0476 0.0723,0.1387 0.0724,0.27345 l 0,3.28142 c -0.0223,0.18229 -0.26716,0.27344 -0.73463,0.27345 -0.27458,-10e-6 -0.44896,-0.0178 -0.52315,-0.0535 -0.0742,-0.0357 -0.1373,-0.11692 -0.18923,-0.24373 -0.1039,-0.27743 -0.20408,-0.4518 -0.30053,-0.52312 -0.0965,-0.0713 -0.23005,-0.10702 -0.40071,-0.107 l -15.8169,0 0,-2.02117 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:33.07216644px;line-height:125%;font-family:'Bernard MT Condensed';-inkscape-font-specification:'Bernard MT Condensed,';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.71237284"
id="path4252"
inkscape:connector-curvature="0" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 54 KiB

View File

@ -0,0 +1,229 @@
document.onkeypress = function(e){
e = e || window.event;
kcode = e.keyCode || e.which;
if (kcode == 32 && jump_height==0){ //space bar
jump_force = 8;
score.innerHTML = parseInt(score.innerHTML) + 1;
}
console.log(kcode);
// do something with key
};
var canvas = document.getElementById("scene");
var score = document.getElementById("score");
var ctx = canvas.getContext("2d");
var canvas_width = canvas.width; //800;
var canvas_height = canvas.height; //800;
//~ var y = canvas_height / 2; // # middle of the screen
var canvas_center_x = canvas_width / 2; // # middle of the screen
var canvas_center_y = canvas_height / 2; // # middle of the screen
var grd=ctx.createLinearGradient(0, canvas_center_y, 0, canvas_height);
ctx.lineWidth = 10;
ctx.strokeStyle = '#ff0000';
// wave settings
var wave_points = 10;
var sample_rate = canvas_width; // sample rate
var frequency = 6.0; // The frequency of a sine wave is the number of complete cycles that happen every second.
var amplitude = 30.0; // how many pixels tall the waves with rise/fall.
var velocity = parseFloat(canvas_width); //
var wavelength = velocity / frequency; //λ
var timeloop_multiplier = 1;
window.addEventListener('resize', resizeCanvas, false);
function resizeCanvas(){
canvas.width = window.innerWidth;
//~ canvas.height = window.innerHeight;
canvas_width = canvas.width; //800;
canvas_height = canvas.height; //800;
y = canvas_height / 2; // # middle of the screen
canvas_center_x = canvas_width / 2; // # middle of the screen
canvas_center_y = canvas_height / 2; // # middle of the screen
// Calculate gradient in relation to the screen size
grd = ctx.createLinearGradient(0, canvas_center_y, 0, canvas_height);
grd.addColorStop(0, "#0087A8");
grd.addColorStop(1, "#0087A8");
ctx.fillStyle = grd;
}
resizeCanvas();
var t = 0;
var pi2 = Math.PI * 2.0;
var pi2_frequency = pi2 * frequency;
function timeloop(wavelength, multiplyer){
/* looped time, instead of continuosly counting up
# we just repeat once one wavelength has been travelled*/
var a = 0;
wavelength_max = Math.ceil(wavelength / multiplyer);
while (true){
if (a > wavelength_max)
a = 0;
//~ yield a;
a += multiplyer;
}
}
function timeloop_new(t, wavelength, multiplyer){
/* looped time, instead of continuosly counting up
we just repeat once one wavelength has been travelled */
wavelength_max = Math.ceil(wavelength / multiplyer) * multiplyer;
t += multiplyer;
// 0 and wavelength are the same, so start on multiplyer ie first step
if (t > wavelength_max)
t = multiplyer;
return t;
}
function wave_point(time, x, y, amplitude, frequency, sample_rate){
cr = Math.cos((pi2_frequency * ((x + time) / sample_rate)))
new_y = y + amplitude * cr;
return [x, new_y, cr];
}
// calculate vector between two points and normalise the result
function vector_norm(p1, p2){
a1 = p2[0] - p1[0];
a2 = p2[1] - p1[1];
length = Math.sqrt((a1 * a1) + (a2 * a2));
return [a1 / length, a2 / length];
}
function draw_triangle(p1, p2, p3){
}
// calculate the dot product of two vectors then pass the dot to
// acos to get a angle in radians
function triangle_angle(p1, p2, p3){
a = vector_norm(p1, p2); // vector 1
b = vector_norm(p1, p3);
dot = a[0] * b[0] + a[1] * b[1];
return Math.acos(dot);
}
function calculate_image_angle(p1, p2){
// Draw the duck, calculate the angle by creating a right angled traingle from the wave points
if(p1[1] > p2[1]){
angle = -triangle_angle(
[p1[0] - 10, p1[1]],
p2,
p1);
}else{
angle = triangle_angle(
[p1[0] - 10, p1[1]],
p2,
p1);
}
return angle;
}
function draw_character(point, angle){
// Draw the duck
ctx.save();
ctx.translate(point[0], point[1] - 16);
ctx.rotate(angle);
ctx.drawImage(img, -16, -16, 32, 32);
ctx.restore();
}
function draw_wave(){
// Draw the wave polygon
ctx.beginPath();
ctx.moveTo(0, canvas_height);
for (p=0;p < points.length; p=p+1){
ctx.lineTo(parseInt(points[p][0]), parseInt(points[p][1]));
}
ctx.lineTo(canvas_width, canvas_height);
ctx.lineWidth = 10;
ctx.stroke();
ctx.fill();
}
function draw_wave_points(){
// Draw the wave points, usefull for debuging
ctx.beginPath();
//~ ctx.moveTo(-10, canvas_height);
for (p=0;p < points.length; p=p+1){
ctx.arc(parseInt(points[p][0]), parseInt(points[p][1]),2,0,2*Math.PI);
}
ctx.stroke();
}
// Calculate the initial wave polygon, at time 0 then step to the next time index
var points = new Array();
var point = null;
for (x_pos = 0; x_pos < canvas_width + 1; x_pos = x_pos + 10) {
for (p=0;p < points.length; p = p + 1){
points[p][0] = points[p][0] - wave_points;
}
point = wave_point(time=t, x=canvas_width, y=canvas_center_y, amplitude=amplitude, frequency=frequency, sample_rate=sample_rate);
points.push([point[0], point[1]]);
t = timeloop_new(t, wavelength, timeloop_multiplier);
}
var angle = null;
var center_point = Math.ceil(points.length / 2);
var img = new Image();
img.src = '/static/images/icon.png';
var rotate = 0;
var world_gravity = 0.75;
var jump_height = 0;
var jump_force = 0;
function drawScene(){
ctx.clearRect(0, 0, canvas_width, canvas_height);
// shift each points along by wave point distance, remove the first item on the array
// push a new point to the end of the wave
for (p=0;p < points.length; p = p + 1){
points[p][0] = points[p][0] - wave_points;
}
points.shift();
points.push(wave_point(time=t, x=canvas_width, y=canvas_center_y, amplitude=amplitude, frequency=frequency, sample_rate=sample_rate));
if (jump_height > 0 || jump_force > 0){
jump_height += jump_force;
jump_force -= world_gravity;
}else{
jump_force = 0;
jump_height = 0;
}
//angle = calculate_image_angle(points[center_point - 1], points[center_point]);
rotate = rotate + 0.1;
draw_character(
[points[center_point][0], points[center_point][1] - jump_height],
rotate
);
//~ draw_character(
//~ points[center_point - 8],
//~ rotate
//~ );
//~ draw_character(
//~ points[center_point - 16],
//~ rotate
//~ );
draw_wave();
//~ draw_wave_points();
t = timeloop_new(t, wavelength, timeloop_multiplier);
requestAnimationFrame(drawScene);
}
drawScene();

View File

@ -10,7 +10,6 @@ class control(base_widget):
return self return self
def render(self): def render(self):
print os.path.abspath(self.filepath)
return markdown_reader( return markdown_reader(
os.path.abspath(self.filepath) os.path.abspath(self.filepath)
).render() ).render()

View File

@ -14,7 +14,7 @@ class control(base_widget):
htm = '<div id="footer">' htm = '<div id="footer">'
htm += '<div id="footertop"></div>' htm += '<div id="footertop"></div>'
htm += '<div id="footerbottom"><div class="container">' htm += '<div id="footerbottom"><div class="container">'
htm += '<div class="copyright">&copy;2015 Maidstone Hackspace</div>' htm += '<div class="copyright">&copy;2016 Maidstone Hackspace</div>'
htm += ''.join(self.items) htm += ''.join(self.items)
htm += '</div></div>' htm += '</div></div>'
htm += '<div>' htm += '<div>'

View File

@ -11,7 +11,6 @@ class control(base_widget_extended):
calendar_id, calendar_id,
datetime.now().strftime('%Y-%m-%dT%H:%M:%S-00:00'), datetime.now().strftime('%Y-%m-%dT%H:%M:%S-00:00'),
api_key) api_key)
print url
date_now = datetime.now().strftime('%Y-%m-%dT%H:%M:%S-00:00') date_now = datetime.now().strftime('%Y-%m-%dT%H:%M:%S-00:00')
response = requests.get('https://www.googleapis.com/calendar/v3/calendars/contact@maidstone-hackspace.org.uk/events?singleEvents=true&maxResults=2&timeMin=%s&key=AIzaSyA98JvRDmplA9lVLZeKwrs1f2k17resLy0' % date_now) response = requests.get('https://www.googleapis.com/calendar/v3/calendars/contact@maidstone-hackspace.org.uk/events?singleEvents=true&maxResults=2&timeMin=%s&key=AIzaSyA98JvRDmplA9lVLZeKwrs1f2k17resLy0' % date_now)
calendar_data = response.json() calendar_data = response.json()

View File

@ -35,8 +35,7 @@ class control(base_widget):
if self.twitter_script is False: if self.twitter_script is False:
self.twitter_script = True self.twitter_script = True
self.footer.append(""" self.footer.append("""
<script><!--//--><![CDATA[//><!--!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'http://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');\n//]]></script>""") <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>""")
if linkedin is not None: if linkedin is not None:
if self.linkedin_script is False: if self.linkedin_script is False:
self.linkedin_script = True self.linkedin_script = True
@ -49,12 +48,11 @@ class control(base_widget):
self.footer.append(""" self.footer.append("""
<div id="fb-root"></div><script><!--//--><![CDATA[//><!--\n//facebook share\n(function(d, s, id) {var js, fjs = d.getElementsByTagName(s)[0];if (d.getElementById(id)) return;js = d.createElement(s); js.id = id;js.src = "//connect.facebook.net/en_GB/sdk.js#xfbml=1&version=v2.3";fjs.parentNode.insertBefore(js, fjs);}(document, 'script', 'facebook-jssdk'));\n//]]></script>""") <div id="fb-root"></div><script><!--//--><![CDATA[//><!--\n//facebook share\n(function(d, s, id) {var js, fjs = d.getElementsByTagName(s)[0];if (d.getElementById(id)) return;js = d.createElement(s); js.id = id;js.src = "//connect.facebook.net/en_GB/sdk.js#xfbml=1&version=v2.3";fjs.parentNode.insertBefore(js, fjs);}(document, 'script', 'facebook-jssdk'));\n//]]></script>""")
return self return self
def render(self): def render(self):
self.count += 1 self.count += 1
htm = '' htm = ''
if self.twitter: if self.twitter:
htm += '<div class="btn"><a href="https://twitter.com/share" class="twitter-share-button" data-via="%s">Tweet</a></div>' % self.url htm += '<div class="btn"><a href="https://twitter.com/share" class="twitter-share-button" data-via="%s" data-hashtags="mhackspace">Tweet</a></div>' % self.url
if self.facebook: if self.facebook:
htm += '<div class="btn"><div class="fb-share-button" data-href="%s" data-layout="button_count"></div></div>' % self.url htm += '<div class="btn"><div class="fb-share-button" data-href="%s" data-layout="button_count"></div></div>' % self.url
if self.linkedin: if self.linkedin:

View File

@ -2,23 +2,33 @@ from scaffold.core.widget import base_widget_extended
class control(base_widget_extended): class control(base_widget_extended):
def create(self, reference, name): def create(self, reference, name, active=False):
super(control, self).create() super(control, self).create()
self.reference = reference self.reference = reference
self.name = name self.name = name
self.active = active
return self return self
def render(self): def render(self):
if self.active is True:
content = ''' return '''
<div id="membercard" class="registered">
<div class="date">Joined 02/12/2015</div> <div class="date">Joined 02/12/2015</div>
<div class="container"> <div class="container">
<div class="middle"> <div class="middle">
<p>MHS%s</p><p>%s</p> <p>MHS%s</p><p>%s</p>
</div> </div>
</div>
</div>''' % (self.reference, self.name) </div>''' % (self.reference, self.name)
content='<form action="/profile/membership" method="post"><fieldset><legend>Join Maidstone Hackspace</legend><p><label for="amount">Subscription Amount<input name="amount" placeholder="20.00" value="20.00" type="text"></label></p><p class="button"><button type="submit">submit</button></p></fieldset></form>'
return ''' return '''
<div id="membercard"> <div id="membercard" class="register">
%s <form action="/profile/membership" method="post">
</div>''' % content <fieldset>
<legend>Join Maidstone Hackspace</legend>
<p><label for="amount">Subscription Amount<input name="amount" placeholder="20.00" value="20.00" type="text"></label></p>
<p class="button"><button type="submit">submit</button></p>
</fieldset>
</form>
</div>'''

View File

@ -6,12 +6,13 @@ class control(base_widget):
self.data = [] self.data = []
return self return self
def append(self, name, image, description, link, skills): def append(self, name, image, description, link, badges, skills):
self.data.append({ self.data.append({
'name': name, 'name': name,
'image': image, 'image': image,
'description': description, 'description': description,
'link': link, 'link': link,
'badges': badges,
'skills': skills}) 'skills': skills})
return self return self
@ -24,8 +25,11 @@ class control(base_widget):
htm += u'<div class="tile-img" style="background:center no-repeat url(%s);background-size:contain;"></div>' % project.get('image') htm += u'<div class="tile-img" style="background:center no-repeat url(%s);background-size:contain;"></div>' % project.get('image')
else: else:
htm += u'<div class="tile-img"></div>' htm += u'<div class="tile-img"></div>'
htm += u'<header class="tile-content"><h2><a href="%s/%s">%s</a> Skilled in %s</h2></header>' % ( htm += u'<header class="tile-content"><h2><a href="%s/%s">%s</a> Skilled in %s' % (
project.get('link'), project.get('name'), project.get('name'), project.get('skills')) project.get('link'), project.get('name'), project.get('name'), project.get('skills'))
for badge in project.get('badges'):
htm += u'<img class="badge" title="%s" src="/static/images/badges/%s.png" />' % (badge.capitalize(), badge)
htm += '</h2></header>'
htm += u'<div class="tile-content"><p>%s</p></div>' % (project.get('description')) htm += u'<div class="tile-content"><p>%s</p></div>' % (project.get('description'))
htm += u'</div>' htm += u'</div>'
count += 1 count += 1