Initial release of Discourse
5
.autotest
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
Autotest.add_hook :initialize do |autotest|
|
||||||
|
%w{.git .svn .hg .DS_Store db log tmp vendor ._*}.each do |exception|
|
||||||
|
autotest.add_exception(exception)
|
||||||
|
end
|
||||||
|
end
|
1
.gitattributes
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
* text=auto
|
61
.gitignore
vendored
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
# See http://help.github.com/ignore-files/ for more about ignoring files.
|
||||||
|
#
|
||||||
|
# If you find yourself ignoring temporary files generated by your text editor
|
||||||
|
# or operating system, you probably want to add a global ignore instead:
|
||||||
|
# git config --global core.excludesfile ~/.gitignore_global
|
||||||
|
|
||||||
|
tags
|
||||||
|
|
||||||
|
.DS_Store
|
||||||
|
._.DS_Store
|
||||||
|
dump.rdb
|
||||||
|
|
||||||
|
.sass-cache/*
|
||||||
|
|
||||||
|
# Ignore bundler config
|
||||||
|
/.bundle
|
||||||
|
/.vagrant
|
||||||
|
/.vagrantfile
|
||||||
|
/cache
|
||||||
|
/coverage/*
|
||||||
|
|
||||||
|
# Ignore the default SQLite database and db dumps
|
||||||
|
/db/*.sqlite3
|
||||||
|
/dbs/*.sql
|
||||||
|
/dbs/*.sql.gz
|
||||||
|
|
||||||
|
# Ignore all logfiles and tempfiles.
|
||||||
|
/log/*.log
|
||||||
|
/tmp
|
||||||
|
|
||||||
|
# Ignore Eclipse .project file
|
||||||
|
/.project
|
||||||
|
|
||||||
|
# Ignore Eclipse .buildpath file
|
||||||
|
/.buildpath
|
||||||
|
|
||||||
|
# Ignore RubyMine settings
|
||||||
|
/.idea
|
||||||
|
|
||||||
|
# Ignore gem that is copied in
|
||||||
|
MiniProfiler/Ruby/rack-mini-profiler-2.0.1a.gem
|
||||||
|
|
||||||
|
sublime-project.sublime-workspace
|
||||||
|
|
||||||
|
# Vim temp files
|
||||||
|
*~
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
|
||||||
|
# don't check in multisite config
|
||||||
|
config/multisite.yml
|
||||||
|
# don't check in my renamed multisite config as well :)
|
||||||
|
config/multisite1.yml
|
||||||
|
config/fog_credentials.yml
|
||||||
|
|
||||||
|
/public/uploads
|
||||||
|
/public/stylesheet-cache/*
|
||||||
|
|
||||||
|
# Scripts used for downloading/refshing db
|
||||||
|
script/download_db
|
||||||
|
script/refresh_db
|
19
AUTHORS.md
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
# The Discourse Team
|
||||||
|
|
||||||
|
* Jeff Atwood - Founder, Principal Overlord, Lead Systems Design
|
||||||
|
|
||||||
|
* Robin Ward - Co-Founder, Ruby developer
|
||||||
|
|
||||||
|
* Sam Saffron - Co-Founder, Ruby developer
|
||||||
|
|
||||||
|
* Neil Lalonde - Ruby Developer
|
||||||
|
|
||||||
|
* Ryan Mudryk - UI Implementation, supplemental
|
||||||
|
|
||||||
|
### Specials Thanks To
|
||||||
|
|
||||||
|
* Nick Sahler - UI Implementation, supplemental
|
||||||
|
|
||||||
|
* Don Petersen - Ruby developmer, installation scripts
|
||||||
|
|
||||||
|
*For a more detailed list of the many individuals that contributed to the design and development of Discourse outside of GitHub, please refer to the official Discourse website.*
|
114
CONTRIBUTING.md
Normal file
|
@ -0,0 +1,114 @@
|
||||||
|
# Contributing to Discourse
|
||||||
|
|
||||||
|
## Before You Start
|
||||||
|
|
||||||
|
Anyone wishing to contribute to the **[Discourse/Core](https://github.com/discourse/core)** project **MUST read & sign the [Discourse Forums Contribution License Agreement](https://github.com/discourse/core-cla)**. The Discourse team is legally prevented from accepting any pull requests from users who have not signed the CLA first.
|
||||||
|
|
||||||
|
## Reporting Bugs
|
||||||
|
|
||||||
|
1. Update to the most recent master release; the bug may already be resolved.
|
||||||
|
|
||||||
|
2. Search for similar issues on the Discourse development forums; it may already be an identified bug.
|
||||||
|
|
||||||
|
3. On GitHub, provide the details of the issue, with any included workflows, screenshots, or links to examples on jsfiddle.net. If possible, submit a Pull Request with a failing test. If you'd rather take matters into your own hands, fix the bug yourself (jump down to the "Contributing (Step-by-step)" section).
|
||||||
|
|
||||||
|
4. The Discourse team will work with you until your issue can be verified. Once verified, a team member will flag the issue appropriately, lock it, and create a new topic discussing the bug on the Discourse forums.
|
||||||
|
|
||||||
|
5. Continue to monitor the progress/discussion surrounding the bug by reading the topic assigned to your bug on the Discourse forums.
|
||||||
|
|
||||||
|
6. When the bug is fixed, the Discourse topic will be frozen, and the bug will be marked as fixed in the repo, with the appropriate commit assigned to the fix for tracking purposes.
|
||||||
|
|
||||||
|
## Requesting New Features
|
||||||
|
|
||||||
|
1. Do not submit a feature request on GitHub; all feature requests on GitHub will be closed. Instead, visit the Discourse development forums, and search for the "Feature Request" category, which will filter a list of outstanding requests. Review this list for similar feature requests. It's possible somebody has already asked for this feature or provided a pull request that we're still discussing.
|
||||||
|
|
||||||
|
2. Provide a clear and detailed explanation of the feature you want and why it's important to add. The feature must apply to a wide array of users of Discourse; for smaller, more targeted "one-off" features, you might consider writing a plugin for Discourse. You may also want to provide us with some advance documentation on the feature, which will help the community to better understand where it will fit.
|
||||||
|
|
||||||
|
3. If you're a Rock Star programmer, build the feature yourself (refer to the "Contributing (Step-by-step)" section below).
|
||||||
|
|
||||||
|
## Contributing (Step-by-step)
|
||||||
|
|
||||||
|
1. Clone the Repo:
|
||||||
|
|
||||||
|
```
|
||||||
|
git clone git://github.com/discourse/core.git
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Create a new Branch:
|
||||||
|
|
||||||
|
```
|
||||||
|
cd core
|
||||||
|
git checkout -b new_discourse_branch
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Code
|
||||||
|
|
||||||
|
Make some magic happen! Remember to:
|
||||||
|
* Adhere to conventions.
|
||||||
|
* Update CHANGELOG with a description of your work.
|
||||||
|
* Include tests, and ensure they pass.
|
||||||
|
* Remember to check to see if your new functionality has an impact on our Documentation, and include updates as appropriate.
|
||||||
|
|
||||||
|
Completing these steps will increase the chances of your code making it into **[Discourse/Core](https://github.com/discourse/core)**.
|
||||||
|
|
||||||
|
4. Commit
|
||||||
|
|
||||||
|
```
|
||||||
|
git commit -a
|
||||||
|
```
|
||||||
|
|
||||||
|
**Do not leave the commit message blank!** Provide a detailed description of your commit!
|
||||||
|
|
||||||
|
### PRO TIP
|
||||||
|
|
||||||
|
Ensure that if you supply a multitude of commits, they are **squashed into a single commit**:
|
||||||
|
|
||||||
|
```
|
||||||
|
git remote add upstream https://github.com/discourse/core.git
|
||||||
|
git fetch upstream
|
||||||
|
git checkout new_discourse_branch
|
||||||
|
git rebase upstream/master
|
||||||
|
git rebase -i
|
||||||
|
|
||||||
|
< Choose 'squash' for all of your commits except the first one. >
|
||||||
|
< Edit the commit message to make sense, and describe all your changes. >
|
||||||
|
|
||||||
|
git push origin new_discourse_branch -f
|
||||||
|
```
|
||||||
|
|
||||||
|
5. Update your branch
|
||||||
|
|
||||||
|
```
|
||||||
|
git checkout master
|
||||||
|
git pull --rebase
|
||||||
|
```
|
||||||
|
|
||||||
|
6. Fork
|
||||||
|
|
||||||
|
```
|
||||||
|
git remote add mine git@github.com:<your user name>/core.git
|
||||||
|
```
|
||||||
|
|
||||||
|
7. Push to your remote
|
||||||
|
|
||||||
|
```
|
||||||
|
git push mine new_discourse_branch
|
||||||
|
```
|
||||||
|
|
||||||
|
8. Issue a Pull Request
|
||||||
|
|
||||||
|
In order to make a pull request,
|
||||||
|
* Navigate to the Discourse repository you just pushed to (e.g. https://github.com/your-user-name/discourse)
|
||||||
|
* Click "Pull Request".
|
||||||
|
* Write your branch name in the branch field (this is filled with "master" by default)
|
||||||
|
* Click "Update Commit Range".
|
||||||
|
* Ensure the changesets you introduced are included in the "Commits" tab.
|
||||||
|
* Ensure that the "Files Changed" incorporate all of your changes.
|
||||||
|
* Fill in some details about your potential patch including a meaningful title.
|
||||||
|
* Click "Send pull request".
|
||||||
|
|
||||||
|
Once these steps are done, you will soon receive feedback from The Discourse team!
|
||||||
|
|
||||||
|
9. Responding to Feedback
|
||||||
|
|
||||||
|
The Discourse team may recommend adjustments to your code, and this is perfectly normal. Part of interacting with a healthy open-source community requires you to be open to learning new techniques and strategies; *don't get discouraged!* Remember: if the Discourse team suggest changes to your code, **they care enough about your work that they want to include it**, and hope that you can assist by implementing those revisions on your own.
|
33
COPYRIGHT.txt
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
All Discourse code is Copyright 2013 by Civilized Discourse Construction Kit, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or (at
|
||||||
|
your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||||
|
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program as the file LICENSE.txt; if not, please see
|
||||||
|
http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
|
||||||
|
|
||||||
|
Discourse is a registered trademark of FIRSTNAME LASTNAME.
|
||||||
|
|
||||||
|
Discourse includes works under other copyright notices and distributed
|
||||||
|
according to the terms of the GNU General Public License or a compatible
|
||||||
|
license (where indicated), including:
|
||||||
|
|
||||||
|
Javascript
|
||||||
|
|
||||||
|
Ember.js - Copyright (c) 2012-2013 Yehuda Katz, Tom Dale, Charles Jolley and Ember.js contributors
|
||||||
|
|
||||||
|
jQuery - Copyright (c) 2010-2013 John Resig
|
||||||
|
|
||||||
|
Ruby
|
||||||
|
|
||||||
|
Rails - Copyright (c) 2005-2013 David Heinemeier Hansson, Rails Core Team contributors (MIT)
|
||||||
|
|
||||||
|
Thin - Copyright (c) 2012-2013 Marc-Andre Cournoyer
|
77
DEVELOPMENT.md
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
# Discourse Developer Install Guide
|
||||||
|
|
||||||
|
If you'd like to set up a development environment for Discourse, the easiest way is by using a virtual machine.
|
||||||
|
|
||||||
|
### Getting Started
|
||||||
|
|
||||||
|
1. Install the Xcode tools: https://developer.apple.com/xcode/
|
||||||
|
2. Install VirtualBox: https://www.virtualbox.org/wiki/Downloads
|
||||||
|
3. Install Ruby 1.9.3. We recommend RVM: https://rvm.io/
|
||||||
|
4. Open a terminal
|
||||||
|
5. Clone the project: `git@github.com:discourse/core.git`
|
||||||
|
6. Enter the project directory: `cd core`
|
||||||
|
7. Install vagrant: `gem install vagrant`
|
||||||
|
|
||||||
|
### Using Vagrant
|
||||||
|
|
||||||
|
When you're ready to start working, boot the VM:
|
||||||
|
```
|
||||||
|
vagrant up
|
||||||
|
```
|
||||||
|
|
||||||
|
It should prompt you for your admin password. This is so it can mount your local files inside the VM for an easy workflow.
|
||||||
|
|
||||||
|
(The first time you do this, it will take a while as it downloads the VM image and installs it. Go grab a coffee.)
|
||||||
|
|
||||||
|
Once the machine has booted up, you can shell into it by typing:
|
||||||
|
|
||||||
|
```
|
||||||
|
vagrant ssh
|
||||||
|
```
|
||||||
|
|
||||||
|
### Keeping your VM up to date
|
||||||
|
|
||||||
|
Now you're in a virtual machine is almost ready to start developing. It's a good idea to perform the following instructions
|
||||||
|
*every time* you pull from master to ensure your environment is still up to date.
|
||||||
|
|
||||||
|
```
|
||||||
|
bundle install
|
||||||
|
bundle exec rake db:migrate
|
||||||
|
bundle exec rake db:seed_fu
|
||||||
|
```
|
||||||
|
|
||||||
|
### Starting Rails
|
||||||
|
|
||||||
|
Once your VM is up to date, you can start a rails instance using the following command:
|
||||||
|
|
||||||
|
```
|
||||||
|
bundle exec rails server
|
||||||
|
```
|
||||||
|
|
||||||
|
In a few seconds, rails will start server pages. To access them, open a web browser to http://localhost:4000 - if it all worked you should see discourse! Congratulations, you are ready to start working!
|
||||||
|
|
||||||
|
You can now edit files on your local file system, using your favorite text editor or IDE. When you reload your web browser, it should have the latest changed.
|
||||||
|
|
||||||
|
### Guard + Rspec
|
||||||
|
|
||||||
|
If you're actively working on Discourse, we recommend that you run Guard. It'll automatically run our unit tests over and over, and includes support
|
||||||
|
for live CSS reloading.
|
||||||
|
|
||||||
|
To use it, follow all the above steps. Once rails is running, open a new terminal window or tab, and then do this:
|
||||||
|
|
||||||
|
```
|
||||||
|
vagrant ssh
|
||||||
|
bundle exec guard -p
|
||||||
|
```
|
||||||
|
|
||||||
|
Wait a minute while it runs all our unit tests. Once it has completed, live reloading should start working. Simply save a file locally, wait a couple of seconds and you'll see it change in your browser. No reloading of pages should be necessary for the most part, although if something doesn't update you should refresh to confirm.
|
||||||
|
|
||||||
|
|
||||||
|
### Shutting down the VM
|
||||||
|
|
||||||
|
When you're done working on Discourse, you can shut down Vagrant like so:
|
||||||
|
|
||||||
|
```
|
||||||
|
vagrant halt
|
||||||
|
```
|
||||||
|
|
115
Gemfile
Normal file
|
@ -0,0 +1,115 @@
|
||||||
|
source 'http://rubygems.org'
|
||||||
|
|
||||||
|
gem 'redis'
|
||||||
|
gem 'redis-rails'
|
||||||
|
gem 'hiredis'
|
||||||
|
gem 'em-redis'
|
||||||
|
gem 'rails'
|
||||||
|
gem 'pg'
|
||||||
|
gem 'haml'
|
||||||
|
gem 'sass'
|
||||||
|
gem 'rake'
|
||||||
|
# errbit is broken with 3.1.3 for now
|
||||||
|
gem 'airbrake', "3.1.2"
|
||||||
|
gem 'rest-client'
|
||||||
|
gem 'rails3_acts_as_paranoid', "~>0.2.0"
|
||||||
|
gem 'activerecord-postgres-hstore'
|
||||||
|
gem 'sidekiq'
|
||||||
|
gem 'fastimage'
|
||||||
|
gem 'nokogiri'
|
||||||
|
gem 'seed-fu'
|
||||||
|
gem 'sanitize'
|
||||||
|
|
||||||
|
|
||||||
|
gem 'slim', '<= 1.3.0'
|
||||||
|
gem 'sinatra', :require => nil
|
||||||
|
gem 'clockwork', :require => false
|
||||||
|
|
||||||
|
gem 'i18n-js'
|
||||||
|
# gem 'rack-mini-profiler', '0.1.21'
|
||||||
|
# gem 'rack-mini-profiler', :path => '/home/sam/Source/MiniProfiler'
|
||||||
|
gem 'rack-mini-profiler', :git => 'git://github.com/SamSaffron/MiniProfiler'
|
||||||
|
gem 'oauth', :require => false
|
||||||
|
gem 'fast_xs'
|
||||||
|
gem 'pbkdf2'
|
||||||
|
gem 'simple_handlebars_rails', path: 'vendor/gems/simple_handlebars_rails'
|
||||||
|
|
||||||
|
# Gem that enables support for plugins. It is required
|
||||||
|
gem 'discourse_plugin', path: 'vendor/gems/discourse_plugin'
|
||||||
|
|
||||||
|
# Discourse Plugins (optional)
|
||||||
|
# Polls and Tasks have been disabled for launch, we need think all sorts of stuff through before adding them back in
|
||||||
|
# biggest concern is core support for custom sort orders, but there is also styling that just gets mishmashed into our core theme.
|
||||||
|
# gem 'discourse_poll', path: 'vendor/gems/discourse_poll'
|
||||||
|
gem 'discourse_emoji', path: 'vendor/gems/discourse_emoji'
|
||||||
|
# gem 'discourse_task', path: 'vendor/gems/discourse_task'
|
||||||
|
|
||||||
|
gem 'rails_multisite', path: 'vendor/gems/rails_multisite'
|
||||||
|
gem 'message_bus', path: 'vendor/gems/message_bus'
|
||||||
|
|
||||||
|
gem 'koala', :require => false
|
||||||
|
gem 'multi_json'
|
||||||
|
gem 'oj'
|
||||||
|
gem 'eventmachine'
|
||||||
|
gem 'thin'
|
||||||
|
|
||||||
|
gem "active_model_serializers", :git => "git://github.com/rails-api/active_model_serializers.git"
|
||||||
|
gem 'has_ip_address'
|
||||||
|
|
||||||
|
gem 'vestal_versions', :git => 'git://github.com/zhangyuan/vestal_versions'
|
||||||
|
|
||||||
|
gem 'fog', :require => false
|
||||||
|
|
||||||
|
# Gems used only for assets and not required
|
||||||
|
# in production environments by default.
|
||||||
|
# allow everywhere for now cause we are allowing asset debugging in prd
|
||||||
|
group :assets do
|
||||||
|
gem 'sass'
|
||||||
|
gem 'sass-rails'
|
||||||
|
gem 'coffee-rails'
|
||||||
|
gem 'uglifier'
|
||||||
|
# gem "asset_sync"
|
||||||
|
gem 'turbo-sprockets-rails3'
|
||||||
|
end
|
||||||
|
|
||||||
|
# need this to compile coffee on the fly
|
||||||
|
gem 'coffee-script'
|
||||||
|
|
||||||
|
gem 'hpricot'
|
||||||
|
gem 'jquery-rails'
|
||||||
|
|
||||||
|
gem "ember-rails", :git => 'git://github.com/emberjs/ember-rails.git' # so we get the pre version
|
||||||
|
gem 'mustache'
|
||||||
|
gem 'therubyracer', :require => 'v8'
|
||||||
|
gem 'rinku'
|
||||||
|
|
||||||
|
|
||||||
|
gem 'ruby-openid', :require => 'openid'
|
||||||
|
|
||||||
|
group :test, :development do
|
||||||
|
# Pretty printed test output
|
||||||
|
gem 'rspec-rails'
|
||||||
|
gem 'shoulda'
|
||||||
|
#gem 'turn', :require => false
|
||||||
|
gem 'jasminerice'
|
||||||
|
gem 'fabrication'
|
||||||
|
gem 'guard-jasmine'
|
||||||
|
gem 'guard-rspec'
|
||||||
|
gem 'guard-spork'
|
||||||
|
gem 'mocha', :require => false
|
||||||
|
gem 'test-unit', :require => "test/unit"
|
||||||
|
gem 'simplecov', :require => false
|
||||||
|
gem 'image_optim'
|
||||||
|
gem 'certified'
|
||||||
|
gem 'rb-fsevent'
|
||||||
|
gem 'rb-inotify', :require => RUBY_PLATFORM.include?('linux') && 'rb-inotify'
|
||||||
|
gem 'terminal-notifier-guard', :require => RUBY_PLATFORM.include?('darwin') && 'terminal-notifier-guard'
|
||||||
|
end
|
||||||
|
|
||||||
|
group :development do
|
||||||
|
gem 'pry-rails'
|
||||||
|
gem 'better_errors'
|
||||||
|
gem 'binding_of_caller' # I tried adding this and got an occational crash
|
||||||
|
end
|
||||||
|
|
||||||
|
# gem 'stacktrace', :require => false
|
442
Gemfile.lock
Normal file
|
@ -0,0 +1,442 @@
|
||||||
|
GIT
|
||||||
|
remote: git://github.com/SamSaffron/MiniProfiler
|
||||||
|
revision: 8fa1391e1eda809d4e7d0f2c307ac8cea11ef540
|
||||||
|
specs:
|
||||||
|
rack-mini-profiler (0.1.23)
|
||||||
|
rack (>= 1.1.3)
|
||||||
|
|
||||||
|
GIT
|
||||||
|
remote: git://github.com/emberjs/ember-rails.git
|
||||||
|
revision: 587a55a8c53aae2193a3602895e89311eb8544b0
|
||||||
|
specs:
|
||||||
|
ember-rails (0.9.2)
|
||||||
|
active_model_serializers
|
||||||
|
barber
|
||||||
|
execjs (>= 1.2)
|
||||||
|
railties (>= 3.1)
|
||||||
|
|
||||||
|
GIT
|
||||||
|
remote: git://github.com/rails-api/active_model_serializers.git
|
||||||
|
revision: cef10cf01dfe18f72060bda279d5246c156ae737
|
||||||
|
specs:
|
||||||
|
active_model_serializers (0.5.2)
|
||||||
|
activemodel (>= 3.0)
|
||||||
|
|
||||||
|
GIT
|
||||||
|
remote: git://github.com/zhangyuan/vestal_versions
|
||||||
|
revision: 0ea75ec4e269b5a9e609639919ade0f36381a446
|
||||||
|
specs:
|
||||||
|
vestal_versions (1.2.2)
|
||||||
|
activerecord (>= 3.0.0)
|
||||||
|
activesupport (>= 3.0.0)
|
||||||
|
|
||||||
|
PATH
|
||||||
|
remote: vendor/gems/discourse_emoji
|
||||||
|
specs:
|
||||||
|
discourse_emoji (0.0.1)
|
||||||
|
|
||||||
|
PATH
|
||||||
|
remote: vendor/gems/discourse_plugin
|
||||||
|
specs:
|
||||||
|
discourse_plugin (0.0.1)
|
||||||
|
|
||||||
|
PATH
|
||||||
|
remote: vendor/gems/message_bus
|
||||||
|
specs:
|
||||||
|
message_bus (0.0.1)
|
||||||
|
eventmachine
|
||||||
|
rack (>= 1.1.3)
|
||||||
|
redis
|
||||||
|
thin
|
||||||
|
|
||||||
|
PATH
|
||||||
|
remote: vendor/gems/rails_multisite
|
||||||
|
specs:
|
||||||
|
rails_multisite (0.0.1)
|
||||||
|
|
||||||
|
PATH
|
||||||
|
remote: vendor/gems/simple_handlebars_rails
|
||||||
|
specs:
|
||||||
|
simple_handlebars_rails (0.0.1)
|
||||||
|
rails (~> 3.1)
|
||||||
|
|
||||||
|
GEM
|
||||||
|
remote: http://rubygems.org/
|
||||||
|
specs:
|
||||||
|
actionmailer (3.2.11)
|
||||||
|
actionpack (= 3.2.11)
|
||||||
|
mail (~> 2.4.4)
|
||||||
|
actionpack (3.2.11)
|
||||||
|
activemodel (= 3.2.11)
|
||||||
|
activesupport (= 3.2.11)
|
||||||
|
builder (~> 3.0.0)
|
||||||
|
erubis (~> 2.7.0)
|
||||||
|
journey (~> 1.0.4)
|
||||||
|
rack (~> 1.4.0)
|
||||||
|
rack-cache (~> 1.2)
|
||||||
|
rack-test (~> 0.6.1)
|
||||||
|
sprockets (~> 2.2.1)
|
||||||
|
activemodel (3.2.11)
|
||||||
|
activesupport (= 3.2.11)
|
||||||
|
builder (~> 3.0.0)
|
||||||
|
activerecord (3.2.11)
|
||||||
|
activemodel (= 3.2.11)
|
||||||
|
activesupport (= 3.2.11)
|
||||||
|
arel (~> 3.0.2)
|
||||||
|
tzinfo (~> 0.3.29)
|
||||||
|
activerecord-postgres-hstore (0.7.0)
|
||||||
|
rails
|
||||||
|
rake
|
||||||
|
activeresource (3.2.11)
|
||||||
|
activemodel (= 3.2.11)
|
||||||
|
activesupport (= 3.2.11)
|
||||||
|
activesupport (3.2.11)
|
||||||
|
i18n (~> 0.6)
|
||||||
|
multi_json (~> 1.0)
|
||||||
|
addressable (2.3.2)
|
||||||
|
airbrake (3.1.2)
|
||||||
|
activesupport
|
||||||
|
builder
|
||||||
|
arel (3.0.2)
|
||||||
|
barber (0.2.0)
|
||||||
|
execjs
|
||||||
|
better_errors (0.3.2)
|
||||||
|
coderay (>= 1.0.0)
|
||||||
|
erubis (>= 2.7.0)
|
||||||
|
binding_of_caller (0.6.8)
|
||||||
|
bourne (1.1.2)
|
||||||
|
mocha (= 0.10.5)
|
||||||
|
builder (3.0.4)
|
||||||
|
celluloid (0.12.4)
|
||||||
|
facter (>= 1.6.12)
|
||||||
|
timers (>= 1.0.0)
|
||||||
|
certified (0.1.1)
|
||||||
|
childprocess (0.3.7)
|
||||||
|
ffi (~> 1.0, >= 1.0.6)
|
||||||
|
clockwork (0.4.1)
|
||||||
|
tzinfo
|
||||||
|
coderay (1.0.8)
|
||||||
|
coffee-rails (3.2.2)
|
||||||
|
coffee-script (>= 2.2.0)
|
||||||
|
railties (~> 3.2.0)
|
||||||
|
coffee-script (2.2.0)
|
||||||
|
coffee-script-source
|
||||||
|
execjs
|
||||||
|
coffee-script-source (1.4.0)
|
||||||
|
connection_pool (1.0.0)
|
||||||
|
daemons (1.1.9)
|
||||||
|
diff-lcs (1.1.3)
|
||||||
|
em-redis (0.3.0)
|
||||||
|
eventmachine
|
||||||
|
erubis (2.7.0)
|
||||||
|
eventmachine (1.0.0)
|
||||||
|
excon (0.16.10)
|
||||||
|
execjs (1.4.0)
|
||||||
|
multi_json (~> 1.0)
|
||||||
|
fabrication (2.5.4)
|
||||||
|
facter (1.6.17)
|
||||||
|
faraday (0.8.5)
|
||||||
|
multipart-post (~> 1.1)
|
||||||
|
fast_xs (0.8.0)
|
||||||
|
fastimage (1.2.13)
|
||||||
|
ffi (1.3.1)
|
||||||
|
fog (1.9.0)
|
||||||
|
builder
|
||||||
|
excon (~> 0.14)
|
||||||
|
formatador (~> 0.2.0)
|
||||||
|
mime-types
|
||||||
|
multi_json (~> 1.0)
|
||||||
|
net-scp (~> 1.0.4)
|
||||||
|
net-ssh (>= 2.1.3)
|
||||||
|
nokogiri (~> 1.5.0)
|
||||||
|
ruby-hmac
|
||||||
|
formatador (0.2.4)
|
||||||
|
fspath (2.0.4)
|
||||||
|
guard (1.6.2)
|
||||||
|
listen (>= 0.6.0)
|
||||||
|
lumberjack (>= 1.0.2)
|
||||||
|
pry (>= 0.9.10)
|
||||||
|
terminal-table (>= 1.4.3)
|
||||||
|
thor (>= 0.14.6)
|
||||||
|
guard-jasmine (1.12.1)
|
||||||
|
childprocess
|
||||||
|
guard (>= 1.1.0)
|
||||||
|
multi_json
|
||||||
|
thor
|
||||||
|
guard-rspec (2.4.0)
|
||||||
|
guard (>= 1.1)
|
||||||
|
rspec (~> 2.11)
|
||||||
|
guard-spork (1.4.2)
|
||||||
|
childprocess (>= 0.2.3)
|
||||||
|
guard (>= 1.1)
|
||||||
|
spork (>= 0.8.4)
|
||||||
|
haml (3.1.7)
|
||||||
|
has_ip_address (0.0.1)
|
||||||
|
hike (1.2.1)
|
||||||
|
hiredis (0.4.5)
|
||||||
|
hpricot (0.8.6)
|
||||||
|
i18n (0.6.1)
|
||||||
|
i18n-js (2.1.2)
|
||||||
|
i18n
|
||||||
|
image_optim (0.7.2)
|
||||||
|
fspath (~> 2.0.3)
|
||||||
|
image_size (~> 1.1)
|
||||||
|
in_threads (~> 1.1.1)
|
||||||
|
progress (~> 2.4.0)
|
||||||
|
image_size (1.1.1)
|
||||||
|
in_threads (1.1.1)
|
||||||
|
jasminerice (0.0.10)
|
||||||
|
coffee-rails
|
||||||
|
haml
|
||||||
|
journey (1.0.4)
|
||||||
|
jquery-rails (2.2.0)
|
||||||
|
railties (>= 3.0, < 5.0)
|
||||||
|
thor (>= 0.14, < 2.0)
|
||||||
|
json (1.7.6)
|
||||||
|
koala (1.6.0)
|
||||||
|
addressable (~> 2.2)
|
||||||
|
faraday (~> 0.8)
|
||||||
|
multi_json (~> 1.3)
|
||||||
|
libv8 (3.11.8.13)
|
||||||
|
listen (0.7.2)
|
||||||
|
lumberjack (1.0.2)
|
||||||
|
mail (2.4.4)
|
||||||
|
i18n (>= 0.4.0)
|
||||||
|
mime-types (~> 1.16)
|
||||||
|
treetop (~> 1.4.8)
|
||||||
|
metaclass (0.0.1)
|
||||||
|
method_source (0.8.1)
|
||||||
|
mime-types (1.20.1)
|
||||||
|
mocha (0.10.5)
|
||||||
|
metaclass (~> 0.0.1)
|
||||||
|
multi_json (1.5.0)
|
||||||
|
multipart-post (1.1.5)
|
||||||
|
mustache (0.99.4)
|
||||||
|
net-scp (1.0.4)
|
||||||
|
net-ssh (>= 1.99.1)
|
||||||
|
net-ssh (2.6.3)
|
||||||
|
nokogiri (1.5.6)
|
||||||
|
oauth (0.4.7)
|
||||||
|
oj (2.0.3)
|
||||||
|
pbkdf2 (0.1.0)
|
||||||
|
pg (0.14.1)
|
||||||
|
polyglot (0.3.3)
|
||||||
|
progress (2.4.0)
|
||||||
|
pry (0.9.11.4)
|
||||||
|
coderay (~> 1.0.5)
|
||||||
|
method_source (~> 0.8)
|
||||||
|
slop (~> 3.4)
|
||||||
|
pry-rails (0.2.2)
|
||||||
|
pry (>= 0.9.10)
|
||||||
|
rack (1.4.4)
|
||||||
|
rack-cache (1.2)
|
||||||
|
rack (>= 0.4)
|
||||||
|
rack-protection (1.3.2)
|
||||||
|
rack
|
||||||
|
rack-ssl (1.3.3)
|
||||||
|
rack
|
||||||
|
rack-test (0.6.2)
|
||||||
|
rack (>= 1.0)
|
||||||
|
rails (3.2.11)
|
||||||
|
actionmailer (= 3.2.11)
|
||||||
|
actionpack (= 3.2.11)
|
||||||
|
activerecord (= 3.2.11)
|
||||||
|
activeresource (= 3.2.11)
|
||||||
|
activesupport (= 3.2.11)
|
||||||
|
bundler (~> 1.0)
|
||||||
|
railties (= 3.2.11)
|
||||||
|
rails3_acts_as_paranoid (0.2.5)
|
||||||
|
activerecord (~> 3.2)
|
||||||
|
railties (3.2.11)
|
||||||
|
actionpack (= 3.2.11)
|
||||||
|
activesupport (= 3.2.11)
|
||||||
|
rack-ssl (~> 1.3.2)
|
||||||
|
rake (>= 0.8.7)
|
||||||
|
rdoc (~> 3.4)
|
||||||
|
thor (>= 0.14.6, < 2.0)
|
||||||
|
rake (10.0.3)
|
||||||
|
rb-fsevent (0.9.3)
|
||||||
|
rb-inotify (0.9.0)
|
||||||
|
ffi (>= 0.5.0)
|
||||||
|
rdoc (3.12)
|
||||||
|
json (~> 1.4)
|
||||||
|
redis (3.0.2)
|
||||||
|
redis-actionpack (3.2.3)
|
||||||
|
actionpack (~> 3.2.3)
|
||||||
|
redis-rack (~> 1.4.0)
|
||||||
|
redis-store (~> 1.1.0)
|
||||||
|
redis-activesupport (3.2.3)
|
||||||
|
activesupport (~> 3.2.3)
|
||||||
|
redis-store (~> 1.1.0)
|
||||||
|
redis-namespace (1.2.1)
|
||||||
|
redis (~> 3.0.0)
|
||||||
|
redis-rack (1.4.2)
|
||||||
|
rack (~> 1.4.1)
|
||||||
|
redis-store (~> 1.1.0)
|
||||||
|
redis-rails (3.2.3)
|
||||||
|
redis-actionpack (~> 3.2.3)
|
||||||
|
redis-activesupport (~> 3.2.3)
|
||||||
|
redis-store (~> 1.1.0)
|
||||||
|
redis-store (1.1.3)
|
||||||
|
redis (>= 2.2.0)
|
||||||
|
ref (1.0.2)
|
||||||
|
rest-client (1.6.7)
|
||||||
|
mime-types (>= 1.16)
|
||||||
|
rinku (1.7.2)
|
||||||
|
rspec (2.12.0)
|
||||||
|
rspec-core (~> 2.12.0)
|
||||||
|
rspec-expectations (~> 2.12.0)
|
||||||
|
rspec-mocks (~> 2.12.0)
|
||||||
|
rspec-core (2.12.2)
|
||||||
|
rspec-expectations (2.12.1)
|
||||||
|
diff-lcs (~> 1.1.3)
|
||||||
|
rspec-mocks (2.12.2)
|
||||||
|
rspec-rails (2.12.2)
|
||||||
|
actionpack (>= 3.0)
|
||||||
|
activesupport (>= 3.0)
|
||||||
|
railties (>= 3.0)
|
||||||
|
rspec-core (~> 2.12.0)
|
||||||
|
rspec-expectations (~> 2.12.0)
|
||||||
|
rspec-mocks (~> 2.12.0)
|
||||||
|
ruby-hmac (0.4.0)
|
||||||
|
ruby-openid (2.2.2)
|
||||||
|
sanitize (2.0.3)
|
||||||
|
nokogiri (>= 1.4.4, < 1.6)
|
||||||
|
sass (3.2.5)
|
||||||
|
sass-rails (3.2.6)
|
||||||
|
railties (~> 3.2.0)
|
||||||
|
sass (>= 3.1.10)
|
||||||
|
tilt (~> 1.3)
|
||||||
|
seed-fu (2.2.0)
|
||||||
|
activerecord (~> 3.1)
|
||||||
|
activesupport (~> 3.1)
|
||||||
|
shoulda (3.3.2)
|
||||||
|
shoulda-context (~> 1.0.1)
|
||||||
|
shoulda-matchers (~> 1.4.1)
|
||||||
|
shoulda-context (1.0.2)
|
||||||
|
shoulda-matchers (1.4.2)
|
||||||
|
activesupport (>= 3.0.0)
|
||||||
|
bourne (~> 1.1.2)
|
||||||
|
sidekiq (2.7.0)
|
||||||
|
celluloid (~> 0.12.0)
|
||||||
|
connection_pool (~> 1.0)
|
||||||
|
multi_json (~> 1)
|
||||||
|
redis (~> 3)
|
||||||
|
redis-namespace
|
||||||
|
simplecov (0.7.1)
|
||||||
|
multi_json (~> 1.0)
|
||||||
|
simplecov-html (~> 0.7.1)
|
||||||
|
simplecov-html (0.7.1)
|
||||||
|
sinatra (1.3.4)
|
||||||
|
rack (~> 1.4)
|
||||||
|
rack-protection (~> 1.3)
|
||||||
|
tilt (~> 1.3, >= 1.3.3)
|
||||||
|
slim (1.3.0)
|
||||||
|
temple (~> 0.4.1)
|
||||||
|
tilt (~> 1.3.3)
|
||||||
|
slop (3.4.3)
|
||||||
|
spork (0.9.2)
|
||||||
|
sprockets (2.2.2)
|
||||||
|
hike (~> 1.2)
|
||||||
|
multi_json (~> 1.0)
|
||||||
|
rack (~> 1.0)
|
||||||
|
tilt (~> 1.1, != 1.3.0)
|
||||||
|
temple (0.4.1)
|
||||||
|
terminal-notifier-guard (1.5.3)
|
||||||
|
terminal-table (1.4.5)
|
||||||
|
test-unit (2.5.4)
|
||||||
|
therubyracer (0.11.3)
|
||||||
|
libv8 (~> 3.11.8.12)
|
||||||
|
ref
|
||||||
|
thin (1.5.0)
|
||||||
|
daemons (>= 1.0.9)
|
||||||
|
eventmachine (>= 0.12.6)
|
||||||
|
rack (>= 1.0.0)
|
||||||
|
thor (0.17.0)
|
||||||
|
tilt (1.3.3)
|
||||||
|
timers (1.1.0)
|
||||||
|
treetop (1.4.12)
|
||||||
|
polyglot
|
||||||
|
polyglot (>= 0.3.1)
|
||||||
|
turbo-sprockets-rails3 (0.3.6)
|
||||||
|
railties (> 3.2.8, < 4.0.0)
|
||||||
|
sprockets (>= 2.0.0)
|
||||||
|
tzinfo (0.3.35)
|
||||||
|
uglifier (1.3.0)
|
||||||
|
execjs (>= 0.3.0)
|
||||||
|
multi_json (~> 1.0, >= 1.0.2)
|
||||||
|
|
||||||
|
PLATFORMS
|
||||||
|
ruby
|
||||||
|
|
||||||
|
DEPENDENCIES
|
||||||
|
active_model_serializers!
|
||||||
|
activerecord-postgres-hstore
|
||||||
|
airbrake (= 3.1.2)
|
||||||
|
better_errors
|
||||||
|
binding_of_caller
|
||||||
|
certified
|
||||||
|
clockwork
|
||||||
|
coffee-rails
|
||||||
|
coffee-script
|
||||||
|
discourse_emoji!
|
||||||
|
discourse_plugin!
|
||||||
|
em-redis
|
||||||
|
ember-rails!
|
||||||
|
eventmachine
|
||||||
|
fabrication
|
||||||
|
fast_xs
|
||||||
|
fastimage
|
||||||
|
fog
|
||||||
|
guard-jasmine
|
||||||
|
guard-rspec
|
||||||
|
guard-spork
|
||||||
|
haml
|
||||||
|
has_ip_address
|
||||||
|
hiredis
|
||||||
|
hpricot
|
||||||
|
i18n-js
|
||||||
|
image_optim
|
||||||
|
jasminerice
|
||||||
|
jquery-rails
|
||||||
|
koala
|
||||||
|
message_bus!
|
||||||
|
mocha
|
||||||
|
multi_json
|
||||||
|
mustache
|
||||||
|
nokogiri
|
||||||
|
oauth
|
||||||
|
oj
|
||||||
|
pbkdf2
|
||||||
|
pg
|
||||||
|
pry-rails
|
||||||
|
rack-mini-profiler!
|
||||||
|
rails
|
||||||
|
rails3_acts_as_paranoid (~> 0.2.0)
|
||||||
|
rails_multisite!
|
||||||
|
rake
|
||||||
|
rb-fsevent
|
||||||
|
rb-inotify
|
||||||
|
redis
|
||||||
|
redis-rails
|
||||||
|
rest-client
|
||||||
|
rinku
|
||||||
|
rspec-rails
|
||||||
|
ruby-openid
|
||||||
|
sanitize
|
||||||
|
sass
|
||||||
|
sass-rails
|
||||||
|
seed-fu
|
||||||
|
shoulda
|
||||||
|
sidekiq
|
||||||
|
simple_handlebars_rails!
|
||||||
|
simplecov
|
||||||
|
sinatra
|
||||||
|
slim (<= 1.3.0)
|
||||||
|
terminal-notifier-guard
|
||||||
|
test-unit
|
||||||
|
therubyracer
|
||||||
|
thin
|
||||||
|
turbo-sprockets-rails3
|
||||||
|
uglifier
|
||||||
|
vestal_versions!
|
87
Guardfile
Normal file
|
@ -0,0 +1,87 @@
|
||||||
|
guard 'spork' do
|
||||||
|
watch('config/application.rb')
|
||||||
|
watch('config/environment.rb')
|
||||||
|
watch(%r{^config/environments/.*\.rb$})
|
||||||
|
watch(%r{^config/initializers/.*\.rb$})
|
||||||
|
watch('Gemfile')
|
||||||
|
watch('Gemfile.lock')
|
||||||
|
watch('spec/spec_helper.rb') { :rspec }
|
||||||
|
end
|
||||||
|
|
||||||
|
phantom_path = File.expand_path('~/phantomjs/bin/phantomjs')
|
||||||
|
phantom_path = nil unless File.exists?(phantom_path)
|
||||||
|
|
||||||
|
jasmine_options = {:phantomjs_bin => phantom_path}
|
||||||
|
|
||||||
|
if ENV['JASMINE_URL']
|
||||||
|
jasmine_options[:jasmine_url] = ENV['JASMINE_URL']
|
||||||
|
jasmine_options[:server] = :none
|
||||||
|
else
|
||||||
|
jasmine_options[:server] = :thin
|
||||||
|
jasmine_options[:port] = 8888
|
||||||
|
jasmine_options[:server_timeout] = 300
|
||||||
|
end
|
||||||
|
|
||||||
|
guard 'jasmine', jasmine_options do watch(%r{spec/javascripts/spec\.(js\.coffee|js|coffee)$}) { "spec/javascripts" }
|
||||||
|
watch(%r{spec/javascripts/.+_spec\.(js\.coffee|js|coffee)$})
|
||||||
|
watch(%r{app/assets/javascripts/(.+?)\.(js\.coffee|js|coffee)$}) { "spec/javascripts" }
|
||||||
|
end
|
||||||
|
|
||||||
|
guard 'rspec', :focus_on_failed => true, :version => 2, :cli => "--drb" do
|
||||||
|
watch(%r{^spec/.+_spec\.rb$})
|
||||||
|
#watch(%r{^lib/jobs/(.+)\.rb$}) { |m| "spec/components/jobs/#{m[1]}_spec.rb" }
|
||||||
|
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/components/#{m[1]}_spec.rb" }
|
||||||
|
watch('spec/spec_helper.rb') { "spec" }
|
||||||
|
|
||||||
|
# Rails example
|
||||||
|
watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
|
||||||
|
watch(%r{^app/(.*)(\.erb|\.haml)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
|
||||||
|
watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb" }
|
||||||
|
watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
|
||||||
|
watch('app/controllers/application_controller.rb') { "spec/controllers" }
|
||||||
|
|
||||||
|
# Capybara request specs
|
||||||
|
watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) { |m| "spec/requests/#{m[1]}_spec.rb" }
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
module ::Guard
|
||||||
|
class AutoReload < ::Guard::Guard
|
||||||
|
|
||||||
|
require File.dirname(__FILE__) + '/config/environment'
|
||||||
|
def run_on_change(paths)
|
||||||
|
paths.map! do |p|
|
||||||
|
hash = nil
|
||||||
|
fullpath = Rails.root.to_s + "/" + p
|
||||||
|
hash = Digest::MD5.hexdigest(File.read(fullpath)) if File.exists? fullpath
|
||||||
|
p = p.sub /\.sass\.erb/, ""
|
||||||
|
p = p.sub /\.sass/, ""
|
||||||
|
p = p.sub /\.scss/, ""
|
||||||
|
p = p.sub /^app\/assets\/stylesheets/, "assets"
|
||||||
|
{name: p, hash: hash}
|
||||||
|
end
|
||||||
|
# target dev
|
||||||
|
MessageBus::Instance.new.publish "/file-change", paths
|
||||||
|
end
|
||||||
|
|
||||||
|
def run_all
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
Thread.new do
|
||||||
|
Listen.to('tmp/') do |modified,added,removed|
|
||||||
|
modified.each do |m|
|
||||||
|
MessageBus::Instance.new.publish "/file-change", ["refresh"] if m =~ /refresh_browser/
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
guard :autoreload do
|
||||||
|
watch(/tmp\/refresh_browser/)
|
||||||
|
watch(/\.css$/)
|
||||||
|
watch(/\.sass$/)
|
||||||
|
watch(/\.scss$/)
|
||||||
|
watch(/\.sass\.erb$/)
|
||||||
|
watch(/\.handlebars$/)
|
||||||
|
end
|
27
INSTALL.md
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
# Discourse "Quick-and-Dirty" Install Guide
|
||||||
|
|
||||||
|
We have deliberately left this section lacking. From our FAQ:
|
||||||
|
|
||||||
|
> Discourse is brand new. Discourse is early beta software, and likely to remain so for many months.
|
||||||
|
> Please experiment with it, play with it, give us feedback, submit pull requests – but any consideration
|
||||||
|
> of fully adopting Discourse is for people and organizations who are eager to live on the bleeding and broken edge.
|
||||||
|
|
||||||
|
When Discourse is ready for primetime we're going to provide several robust and easy ways to install it.
|
||||||
|
Until then, if you are feeling adventurous you can try to set up following components.
|
||||||
|
|
||||||
|
- Postgres 9.1
|
||||||
|
- Enable support for HSTORE
|
||||||
|
- Create a discourse database and seed it with a basic image
|
||||||
|
- Redis 2.6
|
||||||
|
- Ruby 1.9.3
|
||||||
|
- Install all rubygems via bundler
|
||||||
|
- Edit database.yml and redis.yml and point them at your databases.
|
||||||
|
- Prepackage all assets using rake
|
||||||
|
- Run the Rails database migrations
|
||||||
|
- Run a sidekiq process for background jobs
|
||||||
|
- Run a clockwork process for enqueing scheduled jobs
|
||||||
|
- Run several Rails processes, preferably behind a proxy like Nginx.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
339
LICENSE.txt
Normal file
|
@ -0,0 +1,339 @@
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
Version 2, June 1991
|
||||||
|
|
||||||
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The licenses for most software are designed to take away your
|
||||||
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
|
License is intended to guarantee your freedom to share and change free
|
||||||
|
software--to make sure the software is free for all its users. This
|
||||||
|
General Public License applies to most of the Free Software
|
||||||
|
Foundation's software and to any other program whose authors commit to
|
||||||
|
using it. (Some other Free Software Foundation software is covered by
|
||||||
|
the GNU Lesser General Public License instead.) You can apply it to
|
||||||
|
your programs, too.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not
|
||||||
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
|
have the freedom to distribute copies of free software (and charge for
|
||||||
|
this service if you wish), that you receive source code or can get it
|
||||||
|
if you want it, that you can change the software or use pieces of it
|
||||||
|
in new free programs; and that you know you can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to make restrictions that forbid
|
||||||
|
anyone to deny you these rights or to ask you to surrender the rights.
|
||||||
|
These restrictions translate to certain responsibilities for you if you
|
||||||
|
distribute copies of the software, or if you modify it.
|
||||||
|
|
||||||
|
For example, if you distribute copies of such a program, whether
|
||||||
|
gratis or for a fee, you must give the recipients all the rights that
|
||||||
|
you have. You must make sure that they, too, receive or can get the
|
||||||
|
source code. And you must show them these terms so they know their
|
||||||
|
rights.
|
||||||
|
|
||||||
|
We protect your rights with two steps: (1) copyright the software, and
|
||||||
|
(2) offer you this license which gives you legal permission to copy,
|
||||||
|
distribute and/or modify the software.
|
||||||
|
|
||||||
|
Also, for each author's protection and ours, we want to make certain
|
||||||
|
that everyone understands that there is no warranty for this free
|
||||||
|
software. If the software is modified by someone else and passed on, we
|
||||||
|
want its recipients to know that what they have is not the original, so
|
||||||
|
that any problems introduced by others will not reflect on the original
|
||||||
|
authors' reputations.
|
||||||
|
|
||||||
|
Finally, any free program is threatened constantly by software
|
||||||
|
patents. We wish to avoid the danger that redistributors of a free
|
||||||
|
program will individually obtain patent licenses, in effect making the
|
||||||
|
program proprietary. To prevent this, we have made it clear that any
|
||||||
|
patent must be licensed for everyone's free use or not licensed at all.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow.
|
||||||
|
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. This License applies to any program or other work which contains
|
||||||
|
a notice placed by the copyright holder saying it may be distributed
|
||||||
|
under the terms of this General Public License. The "Program", below,
|
||||||
|
refers to any such program or work, and a "work based on the Program"
|
||||||
|
means either the Program or any derivative work under copyright law:
|
||||||
|
that is to say, a work containing the Program or a portion of it,
|
||||||
|
either verbatim or with modifications and/or translated into another
|
||||||
|
language. (Hereinafter, translation is included without limitation in
|
||||||
|
the term "modification".) Each licensee is addressed as "you".
|
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not
|
||||||
|
covered by this License; they are outside its scope. The act of
|
||||||
|
running the Program is not restricted, and the output from the Program
|
||||||
|
is covered only if its contents constitute a work based on the
|
||||||
|
Program (independent of having been made by running the Program).
|
||||||
|
Whether that is true depends on what the Program does.
|
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Program's
|
||||||
|
source code as you receive it, in any medium, provided that you
|
||||||
|
conspicuously and appropriately publish on each copy an appropriate
|
||||||
|
copyright notice and disclaimer of warranty; keep intact all the
|
||||||
|
notices that refer to this License and to the absence of any warranty;
|
||||||
|
and give any other recipients of the Program a copy of this License
|
||||||
|
along with the Program.
|
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy, and
|
||||||
|
you may at your option offer warranty protection in exchange for a fee.
|
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Program or any portion
|
||||||
|
of it, thus forming a work based on the Program, and copy and
|
||||||
|
distribute such modifications or work under the terms of Section 1
|
||||||
|
above, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) You must cause the modified files to carry prominent notices
|
||||||
|
stating that you changed the files and the date of any change.
|
||||||
|
|
||||||
|
b) You must cause any work that you distribute or publish, that in
|
||||||
|
whole or in part contains or is derived from the Program or any
|
||||||
|
part thereof, to be licensed as a whole at no charge to all third
|
||||||
|
parties under the terms of this License.
|
||||||
|
|
||||||
|
c) If the modified program normally reads commands interactively
|
||||||
|
when run, you must cause it, when started running for such
|
||||||
|
interactive use in the most ordinary way, to print or display an
|
||||||
|
announcement including an appropriate copyright notice and a
|
||||||
|
notice that there is no warranty (or else, saying that you provide
|
||||||
|
a warranty) and that users may redistribute the program under
|
||||||
|
these conditions, and telling the user how to view a copy of this
|
||||||
|
License. (Exception: if the Program itself is interactive but
|
||||||
|
does not normally print such an announcement, your work based on
|
||||||
|
the Program is not required to print an announcement.)
|
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If
|
||||||
|
identifiable sections of that work are not derived from the Program,
|
||||||
|
and can be reasonably considered independent and separate works in
|
||||||
|
themselves, then this License, and its terms, do not apply to those
|
||||||
|
sections when you distribute them as separate works. But when you
|
||||||
|
distribute the same sections as part of a whole which is a work based
|
||||||
|
on the Program, the distribution of the whole must be on the terms of
|
||||||
|
this License, whose permissions for other licensees extend to the
|
||||||
|
entire whole, and thus to each and every part regardless of who wrote it.
|
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest
|
||||||
|
your rights to work written entirely by you; rather, the intent is to
|
||||||
|
exercise the right to control the distribution of derivative or
|
||||||
|
collective works based on the Program.
|
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Program
|
||||||
|
with the Program (or with a work based on the Program) on a volume of
|
||||||
|
a storage or distribution medium does not bring the other work under
|
||||||
|
the scope of this License.
|
||||||
|
|
||||||
|
3. You may copy and distribute the Program (or a work based on it,
|
||||||
|
under Section 2) in object code or executable form under the terms of
|
||||||
|
Sections 1 and 2 above provided that you also do one of the following:
|
||||||
|
|
||||||
|
a) Accompany it with the complete corresponding machine-readable
|
||||||
|
source code, which must be distributed under the terms of Sections
|
||||||
|
1 and 2 above on a medium customarily used for software interchange; or,
|
||||||
|
|
||||||
|
b) Accompany it with a written offer, valid for at least three
|
||||||
|
years, to give any third party, for a charge no more than your
|
||||||
|
cost of physically performing source distribution, a complete
|
||||||
|
machine-readable copy of the corresponding source code, to be
|
||||||
|
distributed under the terms of Sections 1 and 2 above on a medium
|
||||||
|
customarily used for software interchange; or,
|
||||||
|
|
||||||
|
c) Accompany it with the information you received as to the offer
|
||||||
|
to distribute corresponding source code. (This alternative is
|
||||||
|
allowed only for noncommercial distribution and only if you
|
||||||
|
received the program in object code or executable form with such
|
||||||
|
an offer, in accord with Subsection b above.)
|
||||||
|
|
||||||
|
The source code for a work means the preferred form of the work for
|
||||||
|
making modifications to it. For an executable work, complete source
|
||||||
|
code means all the source code for all modules it contains, plus any
|
||||||
|
associated interface definition files, plus the scripts used to
|
||||||
|
control compilation and installation of the executable. However, as a
|
||||||
|
special exception, the source code distributed need not include
|
||||||
|
anything that is normally distributed (in either source or binary
|
||||||
|
form) with the major components (compiler, kernel, and so on) of the
|
||||||
|
operating system on which the executable runs, unless that component
|
||||||
|
itself accompanies the executable.
|
||||||
|
|
||||||
|
If distribution of executable or object code is made by offering
|
||||||
|
access to copy from a designated place, then offering equivalent
|
||||||
|
access to copy the source code from the same place counts as
|
||||||
|
distribution of the source code, even though third parties are not
|
||||||
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
|
except as expressly provided under this License. Any attempt
|
||||||
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
|
void, and will automatically terminate your rights under this License.
|
||||||
|
However, parties who have received copies, or rights, from you under
|
||||||
|
this License will not have their licenses terminated so long as such
|
||||||
|
parties remain in full compliance.
|
||||||
|
|
||||||
|
5. You are not required to accept this License, since you have not
|
||||||
|
signed it. However, nothing else grants you permission to modify or
|
||||||
|
distribute the Program or its derivative works. These actions are
|
||||||
|
prohibited by law if you do not accept this License. Therefore, by
|
||||||
|
modifying or distributing the Program (or any work based on the
|
||||||
|
Program), you indicate your acceptance of this License to do so, and
|
||||||
|
all its terms and conditions for copying, distributing or modifying
|
||||||
|
the Program or works based on it.
|
||||||
|
|
||||||
|
6. Each time you redistribute the Program (or any work based on the
|
||||||
|
Program), the recipient automatically receives a license from the
|
||||||
|
original licensor to copy, distribute or modify the Program subject to
|
||||||
|
these terms and conditions. You may not impose any further
|
||||||
|
restrictions on the recipients' exercise of the rights granted herein.
|
||||||
|
You are not responsible for enforcing compliance by third parties to
|
||||||
|
this License.
|
||||||
|
|
||||||
|
7. If, as a consequence of a court judgment or allegation of patent
|
||||||
|
infringement or for any other reason (not limited to patent issues),
|
||||||
|
conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot
|
||||||
|
distribute so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you
|
||||||
|
may not distribute the Program at all. For example, if a patent
|
||||||
|
license would not permit royalty-free redistribution of the Program by
|
||||||
|
all those who receive copies directly or indirectly through you, then
|
||||||
|
the only way you could satisfy both it and this License would be to
|
||||||
|
refrain entirely from distribution of the Program.
|
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under
|
||||||
|
any particular circumstance, the balance of the section is intended to
|
||||||
|
apply and the section as a whole is intended to apply in other
|
||||||
|
circumstances.
|
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any
|
||||||
|
patents or other property right claims or to contest validity of any
|
||||||
|
such claims; this section has the sole purpose of protecting the
|
||||||
|
integrity of the free software distribution system, which is
|
||||||
|
implemented by public license practices. Many people have made
|
||||||
|
generous contributions to the wide range of software distributed
|
||||||
|
through that system in reliance on consistent application of that
|
||||||
|
system; it is up to the author/donor to decide if he or she is willing
|
||||||
|
to distribute software through any other system and a licensee cannot
|
||||||
|
impose that choice.
|
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to
|
||||||
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
|
original copyright holder who places the Program under this License
|
||||||
|
may add an explicit geographical distribution limitation excluding
|
||||||
|
those countries, so that distribution is permitted only in or among
|
||||||
|
countries not thus excluded. In such case, this License incorporates
|
||||||
|
the limitation as if written in the body of this License.
|
||||||
|
|
||||||
|
9. The Free Software Foundation may publish revised and/or new versions
|
||||||
|
of the General Public License from time to time. Such new versions will
|
||||||
|
be similar in spirit to the present version, but may differ in detail to
|
||||||
|
address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Program
|
||||||
|
specifies a version number of this License which applies to it and "any
|
||||||
|
later version", you have the option of following the terms and conditions
|
||||||
|
either of that version or of any later version published by the Free
|
||||||
|
Software Foundation. If the Program does not specify a version number of
|
||||||
|
this License, you may choose any version ever published by the Free Software
|
||||||
|
Foundation.
|
||||||
|
|
||||||
|
10. If you wish to incorporate parts of the Program into other free
|
||||||
|
programs whose distribution conditions are different, write to the author
|
||||||
|
to ask for permission. For software which is copyrighted by the Free
|
||||||
|
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||||
|
make exceptions for this. Our decision will be guided by the two goals
|
||||||
|
of preserving the free status of all derivatives of our free software and
|
||||||
|
of promoting the sharing and reuse of software generally.
|
||||||
|
|
||||||
|
NO WARRANTY
|
||||||
|
|
||||||
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||||
|
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||||
|
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||||
|
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||||
|
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||||
|
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||||
|
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||||
|
REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||||
|
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||||
|
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||||
|
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||||
|
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||||
|
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
|
If you develop a new program, and you want it to be of the greatest
|
||||||
|
possible use to the public, the best way to achieve this is to make it
|
||||||
|
free software which everyone can redistribute and change under these terms.
|
||||||
|
|
||||||
|
To do so, attach the following notices to the program. It is safest
|
||||||
|
to attach them to the start of each source file to most effectively
|
||||||
|
convey the exclusion of warranty; and each file should have at least
|
||||||
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
|
<one line to give the program's name and a brief idea of what it does.>
|
||||||
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License along
|
||||||
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
If the program is interactive, make it output a short notice like this
|
||||||
|
when it starts in an interactive mode:
|
||||||
|
|
||||||
|
Gnomovision version 69, Copyright (C) year name of author
|
||||||
|
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
|
This is free software, and you are welcome to redistribute it
|
||||||
|
under certain conditions; type `show c' for details.
|
||||||
|
|
||||||
|
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||||
|
parts of the General Public License. Of course, the commands you use may
|
||||||
|
be called something other than `show w' and `show c'; they could even be
|
||||||
|
mouse-clicks or menu items--whatever suits your program.
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or your
|
||||||
|
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||||
|
necessary. Here is a sample; alter the names:
|
||||||
|
|
||||||
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||||
|
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||||
|
|
||||||
|
<signature of Ty Coon>, 1 April 1989
|
||||||
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
|
This General Public License does not permit incorporating your program into
|
||||||
|
proprietary programs. If your program is a subroutine library, you may
|
||||||
|
consider it more useful to permit linking proprietary applications with the
|
||||||
|
library. If this is what you want to do, use the GNU Lesser General
|
||||||
|
Public License instead of this License.
|
6
PLUGINS.md
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
# Discourse Plugin Architecture
|
||||||
|
|
||||||
|
**Note: This is a work in progress!**
|
||||||
|
|
||||||
|
|
||||||
|
|
116
README.md
Normal file
|
@ -0,0 +1,116 @@
|
||||||
|
<a href="http://www.discourse.org/">![Logo](https://raw.github.com/discourse/core/master/images/discourse.png)</a>
|
||||||
|
|
||||||
|
Discourse is the 100% open source, next-generation discussion platform built for the next 10 years of the Internet.
|
||||||
|
|
||||||
|
Whenever you need ...
|
||||||
|
|
||||||
|
* a mailing list
|
||||||
|
* a forum to discuss something
|
||||||
|
* a chat room where you can type paragraphs
|
||||||
|
|
||||||
|
... consider Discourse.
|
||||||
|
|
||||||
|
|
||||||
|
## Getting Started
|
||||||
|
|
||||||
|
If you're interested in helping us develop Discourse, please start with our **[Discourse Developer Install Guide](https://github.com/discourse/core/blob/master/DEVELOPMENT.md)**, which includes instructions to get up and running in a development environment.
|
||||||
|
|
||||||
|
We also have a **[Discourse "Quick-and-Dirty" Install Guide](https://github.com/discourse/core/blob/master/INSTALL.md)**.
|
||||||
|
|
||||||
|
## Vision
|
||||||
|
|
||||||
|
This is the **Civilized Discourse Construction Kit**, a fully open-source package of forum software that is free to use and contribute to. Discourse embraces the changes that are necessary to evolve forum software, namely:
|
||||||
|
|
||||||
|
* A **flattened discussion**, which avoids the pains of threaded forums, and delivers a more robust, intuitive interface to join a conversation at any point.
|
||||||
|
* A **self-learning system**, capable of examining the behavior of the community, and adapting to budding moderators and forum trolls alike.
|
||||||
|
* A **seamless web-only** interface that delivers usability on both the desktop and the tablet, without the need for a native app.
|
||||||
|
* A **contemporary, robust technology stack**, so that both users and administrators alike have another choice BESIDES php.
|
||||||
|
|
||||||
|
The Discourse team wishes to **foster an active community of contributors**, all of whom commit to delivering this continued vision, and ensure that online discussions can grow and thrive in an Internet age dominated by micro-blogging and diminishing attention spans.
|
||||||
|
|
||||||
|
This vision translates to the following functional commitments:
|
||||||
|
|
||||||
|
1. Support all contemporary browsers on the desktop:
|
||||||
|
* Internet Explorer 9.0, 10.0+
|
||||||
|
* Firefox 16+
|
||||||
|
* Google Chrome *infinite*
|
||||||
|
|
||||||
|
2. Supporting the latest generation of tablets:
|
||||||
|
* iPad 2+
|
||||||
|
* Android 4.1+ on 7" and 10"
|
||||||
|
* Windows 8
|
||||||
|
|
||||||
|
3. Deliver support for mobile/smartphones *as soon as possible*:
|
||||||
|
* Windows Phone 8
|
||||||
|
* iPhone 4+
|
||||||
|
* Android 4.0+
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
Discourse is **100% free** and **open-source**. We encourage and support an active, healthy community that
|
||||||
|
accepts contributions from the public, and we'd like you to be a part of that community.
|
||||||
|
|
||||||
|
In order to be prepared for contributing to Discourse, please:
|
||||||
|
|
||||||
|
1. Review the **VISION** section above, which will help you understand the needs of the team, and the focus of the project,
|
||||||
|
2. Read & sign the **[Discourse Forums Contribution License Agreement](https://github.com/discourse/core-cla)**, to confirm you've read and acknowledged the legal aspects of your contributions, and
|
||||||
|
3. Dig into **[CONTRIBUTING.MD](https://github.com/discourse/core/blob/master/CONTRIBUTING.md)**, which houses all of the necessary info to:
|
||||||
|
* submit bugs,
|
||||||
|
* request new features, and
|
||||||
|
* step you through the entire process of preparing your code for a Pull Request.
|
||||||
|
|
||||||
|
**We look forward to seeing your cool stuff!**
|
||||||
|
|
||||||
|
## Expertise
|
||||||
|
|
||||||
|
Discourse implements a variety of open source tech. You may wish to familiarize yourself with the various components that Discourse is built on, in order to be an effective contributor:
|
||||||
|
|
||||||
|
### Languages/Frameworks
|
||||||
|
|
||||||
|
1. [Ruby on Rails](https://github.com/rails/rails) - Our back end API is a Rails app. It responds to requests RESTfully and responds in JSON.
|
||||||
|
2. [Ember.js](https://github.com/emberjs/ember.js) - Our front end interface is an Ember.js app that communicates the Rails API.
|
||||||
|
|
||||||
|
### Databases
|
||||||
|
|
||||||
|
1. [PostgreSQL](http://www.postgresql.org/) - Our main data store is Postgres.
|
||||||
|
2. [Redis](http://redis.io/) - We use Redis for our job queue, rate limiting, as a cache and for transient data.
|
||||||
|
|
||||||
|
### Ruby Gems
|
||||||
|
|
||||||
|
The complete list of Ruby Gems used by Discourse can be found in [SOFTWARE.md](https://github.com/discourse/core/blob/master/SOFTWARE.md).
|
||||||
|
|
||||||
|
## Versioning
|
||||||
|
|
||||||
|
Discourse implements the Semantic Versioning guidelines.
|
||||||
|
|
||||||
|
Releases will be numbered with the following format:
|
||||||
|
|
||||||
|
`<major>.<minor>.<patch>`
|
||||||
|
|
||||||
|
And constructed with the following guidelines:
|
||||||
|
|
||||||
|
* Breaking backward compatibility bumps the major (and resets the minor and patch)
|
||||||
|
* New additions without breaking backward compatibility bumps the minor (and resets the patch)
|
||||||
|
* Bug fixes and misc changes bumps the patch
|
||||||
|
|
||||||
|
For more information on SemVer, please visit http://semver.org/.
|
||||||
|
|
||||||
|
## The Discourse Team
|
||||||
|
|
||||||
|
The Discourse code contributors can be found in [AUTHORS.MD](https://github.com/discourse/core/blob/master/AUTHORS.md). For a complete list of the many individuals that contributed to the design and implementation of Discourse, please refer to the official website.
|
||||||
|
|
||||||
|
## Copyright / License
|
||||||
|
|
||||||
|
Copyright 2013 Civilized Discourse Construction Kit, Inc.
|
||||||
|
|
||||||
|
Licensed under the GNU General Public License Version 2.0 (or later);
|
||||||
|
you may not use this work except in compliance with the License.
|
||||||
|
You may obtain a copy of the License in the LICENSE file, or at:
|
||||||
|
|
||||||
|
http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
7
Rakefile
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
#!/usr/bin/env rake
|
||||||
|
# Add your own tasks in files placed in lib/tasks ending in .rake,
|
||||||
|
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
|
||||||
|
|
||||||
|
require File.expand_path('../config/application', __FILE__)
|
||||||
|
|
||||||
|
Discourse::Application.load_tasks
|
47
SOFTWARE.md
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
# Discourse Ruby Gems
|
||||||
|
|
||||||
|
The following Ruby Gems are used in Discourse:
|
||||||
|
|
||||||
|
* [pg](https://rubygems.org/gems/pg)
|
||||||
|
* [redis](https://rubygems.org/gems/redis)
|
||||||
|
* [em-redis](https://rubygems.org/gems/em-redis)
|
||||||
|
* [Event Machine](https://rubygems.org/gems/event_machine)
|
||||||
|
* [Active Model Serializers](https://rubygems.org/gems/active_model_serializers)
|
||||||
|
* [Sidekiq](https://rubygems.org/gems/sidekiq)
|
||||||
|
* [Therubyracer](https://rubygems.org/gems/therubyracer)
|
||||||
|
* [Guard](https://rubygems.org/gems/guard)
|
||||||
|
* [OJ](https://rubygems.org/gems/oj)
|
||||||
|
* [rack-mini-profiler](https://rubygems.org/gems/rack-mini-profiler)
|
||||||
|
* [sass](https://rubygems.org/gems/sass)
|
||||||
|
* [rest-client](https://rubygems.org/gems/rest-client)
|
||||||
|
* [rails3_acts_as_paranoid](https://rubygems.org/gems/rails3_acts_as_paranoid)
|
||||||
|
* [activerecord-postgres-hstore](https://rubygems.org/gems/activerecord-postgres-hstore)
|
||||||
|
* [fastimage](https://rubygems.org/gems/fastimage)
|
||||||
|
* [seed-fu](https://rubygems.org/gems/seed-fu)
|
||||||
|
* [sanitize](https://rubygems.org/gems/sanitize)
|
||||||
|
* [clockwork](https://rubygems.org/gems/clockwork)
|
||||||
|
* [i18n-js](https://rubygems.org/gems/i18n-js)
|
||||||
|
* [pbkdf2](https://rubygems.org/gems/pbkdf2)
|
||||||
|
* [fast_xs](https://rubygems.org/gems/fast_xs)
|
||||||
|
* [koala](https://rubygems.org/gems/koala)
|
||||||
|
* [has_ip_address](https://rubygems.org/gems/has_ip_address)
|
||||||
|
* [vestal_versions](https://rubygems.org/gems/vestal_versions)
|
||||||
|
* [coffee-rails](https://rubygems.org/gems/coffee-rails)
|
||||||
|
* [uglifier](https://rubygems.org/gems/uglifier)
|
||||||
|
* [hpricot](https://rubygems.org/gems/hpricot)
|
||||||
|
* [uuidtools](https://rubygems.org/gems/uuidtools)
|
||||||
|
* [rinku](https://rubygems.org/gems/rinku)
|
||||||
|
* [ruby-openid](https://rubygems.org/gems/ruby-openid)
|
||||||
|
* [rspec](https://rubygems.org/gems/rspec)
|
||||||
|
* [shoulda](https://rubygems.org/gems/shoulda)
|
||||||
|
* [turn](https://rubygems.org/gems/turn)
|
||||||
|
* [jasminerice](https://rubygems.org/gems/jasminerice)
|
||||||
|
* [fabrication](https://rubygems.org/gems/fabrication)
|
||||||
|
* [mocha](https://rubygems.org/gems/mocha)
|
||||||
|
* [simplecov](https://rubygems.org/gems/simplecov)
|
||||||
|
* [image_optim](https://rubygems.org/gems/image_optim)
|
||||||
|
* [certified](https://rubygems.org/gems/certified)
|
||||||
|
* [rb-fsevent](https://rubygems.org/gems/rb-fsevent)
|
||||||
|
* [rb-inotify](https://rubygems.org/gems/rb-inotify)
|
||||||
|
* [terminal-notifier-guard](https://rubygems.org/gems/terminal-notifier-guard)
|
||||||
|
* [pry-rails](https://rubygems.org/gems/pry-rails)
|
14
Vagrantfile
vendored
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
# See https://github.com/discourse/core/blob/master/DEVELOPMENT.md
|
||||||
|
#
|
||||||
|
Vagrant::Config.run do |config|
|
||||||
|
config.vm.box = 'discourse-pre'
|
||||||
|
config.vm.box_url = 'http://www.discourse.org/vms/discourse-pre.box'
|
||||||
|
config.vm.network :hostonly, '192.168.10.200'
|
||||||
|
|
||||||
|
config.vm.forward_port 3000, 4000
|
||||||
|
config.vm.forward_port 1080, 4080 # Mailcatcher
|
||||||
|
|
||||||
|
if RUBY_PLATFORM =~ /darwin/
|
||||||
|
config.vm.share_folder("v-root", "/vagrant", ".", :nfs => true)
|
||||||
|
end
|
||||||
|
end
|
BIN
app/assets/fonts/FontAwesome.otf
Executable file
BIN
app/assets/fonts/fontawesome-webfont.eot
Executable file
BIN
app/assets/fonts/fontawesome-webfont.ttf
Executable file
BIN
app/assets/fonts/fontawesome-webfont.woff
Executable file
BIN
app/assets/fonts/zocial-regular-webfont.eot
Normal file
333
app/assets/fonts/zocial-regular-webfont.svg
Normal file
|
@ -0,0 +1,333 @@
|
||||||
|
<?xml version="1.0" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" > <svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%">
|
||||||
|
<defs >
|
||||||
|
<font id="zocial-regular" horiz-adv-x="910" ><font-face
|
||||||
|
font-family="Zocial"
|
||||||
|
units-per-em="1000"
|
||||||
|
panose-1="0 0 0 0 0 0 0 0 0 0"
|
||||||
|
ascent="804"
|
||||||
|
descent="-196"
|
||||||
|
alphabetic="0" />
|
||||||
|
<missing-glyph horiz-adv-x="500" d="M125 742V63H375V742H125ZM438 0H63V804H438V0Z" />
|
||||||
|
<glyph unicode=" " glyph-name="space" horiz-adv-x="250" />
|
||||||
|
<glyph unicode="!" glyph-name="exclam" horiz-adv-x="1000" d="M587 387Q587 379 594 379Q602 379 602 387Q602 394 594 394Q587 394 587 387ZM552 377Q552 389 561 397T581 406Q593 406 601 398T610 377Q610 366 602 357T581 348Q570 348 561 357T552 377ZM529
|
||||||
|
455Q536 468 566 468Q580 468 599 458Q589 480 564 480Q533 480 529 455ZM361 368Q361 360 370 360T379 368Q379 377 370 377T361 368ZM347 319T331 333T322 366T346 390T378 380Q394 367 388 349T364 325ZM288 432Q288 426 291 420Q290 435 308 447T345 460Q352
|
||||||
|
460 365 455Q355 468 336 468T303 458T288 432ZM5 308Q5 523 145 663Q286 804 501 804T856 663Q997 524 997 308Q997 125 894 -5Q790 -136 614 -176Q602 -153 580 -124Q559 -93 546 -68Q612 -94 632 -94Q648 -94 648 -44Q648 49 631 49Q605 49 534 -6Q534 8 519
|
||||||
|
6H514Q488 76 488 129Q488 144 491 159Q582 114 639 114Q670 114 732 132Q795 150 795 171Q795 184 778 184Q749 184 703 177T628 170Q602 170 568 184Q536 198 536 222Q536 233 545 233T565 231Q571 231 591 229T616 226Q647 226 743 262Q839 300 839 319Q839
|
||||||
|
330 822 335T786 341Q774 341 744 333Q718 326 683 315L639 302Q643 319 643 334Q643 383 618 443Q592 507 560 536Q533 560 488 569Q460 604 400 634Q338 664 295 664Q290 664 279 663T257 659T244 656L222 625L228 624Q232 624 249 626T271 628Q304 628 349 614Q316
|
||||||
|
598 300 595Q298 594 283 592T258 586T248 572Q304 578 332 578Q371 578 392 571Q232 552 232 397Q232 367 236 347Q252 246 309 -11Q322 -68 333 -122T346 -181L347 -185Q188 -136 96 0Q5 136 5 308Z" />
|
||||||
|
<glyph unicode=""" glyph-name="quotedbl" horiz-adv-x="1294" d="M710 501V113Q710 68 757 68T804 113V294L896 109Q910 80 937 80Q969 80 983 109L1074 294V113Q1074 68 1121 68Q1169 68 1169 113V501Q1169 546 1122 546Q1089 546 1075 517L937 215L804
|
||||||
|
517Q792 546 756 546Q710 546 710 501ZM525 501V113Q525 68 572 68T619 113V501Q619 546 572 546T525 501ZM218 236Q218 246 272 365L277 368Q282 368 309 304Q336 237 336 235Q336 231 331 231H223Q218 231 218 236ZM0 402Q0 504 51 588T189 721Q360 820 564 820Q598
|
||||||
|
820 607 819Q720 813 833 778Q1005 723 1145 594Q1214 529 1254 446T1294 272Q1294 257 1293 253Q1282 101 1172 -3T904 -150Q798 -180 675 -180H667Q467 -180 352 -127Q347 -126 345 -121Q345 -119 348 -119L351 -120Q354 -120 355 -120Q404 -132 444 -132Q466
|
||||||
|
-132 491 -127Q516 -123 535 -107T555 -68Q555 -56 549 -44Q540 -28 490 -10Q440 6 376 23Q306 41 301 43Q231 61 162 109Q162 115 171 133T187 151H366Q373 153 381 131T404 86T439 64Q458 65 470 76T483 105Q483 116 399 304Q312 499 293 535Q287 550 277 550Q268
|
||||||
|
550 264 541L261 535Q259 531 209 421L102 183L95 168Q0 278 0 402Z" />
|
||||||
|
<glyph unicode="#" glyph-name="numbersign" horiz-adv-x="1009" d="M1009 319H509V820H1009V319ZM501 -180H0V321H501V-180Z" />
|
||||||
|
<glyph unicode="$" glyph-name="dollar" horiz-adv-x="974" d="M512 528L482 395Q529 396 571 432Q614 467 624 516Q624 518 625 522T626 528H512ZM412 638L357 394H440L482 577H607Q609 577 624 574Q616 603 593 620T537 638H412ZM111 -132L100 -181H357L420
|
||||||
|
114H604Q738 114 837 192T966 406Q994 540 923 625Q956 551 935 455Q907 319 806 241Q707 163 573 163H390L327 -132H111ZM257 -72H0L194 819H632Q682 819 728 801T813 746T865 651T865 516Q837 380 736 302Q637 224 503 224H320L257 -72Z" />
|
||||||
|
<glyph unicode="%" glyph-name="percent" horiz-adv-x="957" d="M327 -184H67L119 -131L219 -30L328 79Q458 209 465 209Q480 209 480 193V37H528Q643 37 689 72Q735 108 735 222V484L959 707V193Q959 11 873 -86T615 -184H327ZM223 156L0 -67V447Q0 629 86 726T344
|
||||||
|
824H632H892L839 771L739 670L630 560L535 467Q498 431 494 431Q479 431 479 447V603H431Q369 603 335 597T273 570Q223 535 223 418V156Z" />
|
||||||
|
<glyph unicode="&" glyph-name="ampersand" horiz-adv-x="921" d="M794 221V489Q794 515 812 534T857 553T901 534T920 489V221Q920 195 902 177T857 158T813 176T794 221ZM598 810L583 819L597 847Q608 871 620 891Q628 903 634 907T643 910T646 901V899L598
|
||||||
|
810ZM626 715Q625 698 614 687T586 675Q571 675 560 687T547 715Q547 739 567 748T607 749T626 715ZM502 -107V95Q502 122 521 140T568 158Q594 158 612 140T631 95V-107Q631 -134 612 -152T565 -170Q539 -170 521 -152T502 -107ZM373 715Q373 698 362 687T333
|
||||||
|
675Q307 675 297 699T306 742Q326 760 349 751T373 715ZM289 -107V95Q289 122 308 140T355 158Q380 158 399 139T418 95V-107Q418 -134 399 -152T352 -170Q326 -170 308 -152T289 -107ZM274 902Q274 910 281 910Q282 910 288 908L337 819L322 811Q274 899 274 902ZM173
|
||||||
|
586H747Q747 702 662 775Q576 849 460 849T258 775Q173 702 173 586ZM173 121V539H747V121Q747 95 729 77T684 58H236Q210 58 192 76T173 121ZM0 221V490Q0 516 19 534T63 553Q89 553 107 535T126 490V221Q126 195 108 177T63 158T19 176T0 221Z" />
|
||||||
|
<glyph unicode="'" glyph-name="quotesingle" horiz-adv-x="824" d="M222 400H614Q606 525 554 588Q503 650 418 650Q336 650 285 587Q232 524 222 400ZM0 322Q0 428 29 524Q58 617 112 683Q168 750 247 785Q328 821 425 821Q550 821 642 760Q732 699 778
|
||||||
|
603Q824 510 824 407Q824 314 777 287Q730 260 645 260H222Q222 178 252 112Q282 47 328 16Q378 -17 434 -17Q476 -17 505 -7Q535 3 567 26T623 73L689 142Q704 158 736 158Q770 158 790 137Q811 116 811 79Q811 49 788 1Q767 -42 718 -84Q670 -126 602 -152Q532
|
||||||
|
-179 441 -179Q232 -179 116 -44Q0 93 0 322Z" />
|
||||||
|
<glyph unicode="(" glyph-name="parenleft" horiz-adv-x="571" d="M255 -40Q242 -53 242 -72T255 -104Q269 -117 288 -117T320 -104T333 -72T320 -40T288 -27T255 -40ZM199 731Q199 721 205 715T222 708H349Q359 708 365 714T372 731Q372 740 366 746T349 753H222Q212
|
||||||
|
753 206 747T199 731ZM33 642V34H536V642H33ZM0 -73V713Q0 757 31 788Q63 820 107 820H464Q507 820 539 788T571 713V-73Q571 -116 539 -148T464 -180H107Q63 -180 31 -148Q0 -117 0 -73Z" />
|
||||||
|
<glyph unicode=")" glyph-name="parenright" horiz-adv-x="1106" d="M37 666V150H1068V666H37ZM0 158V636Q0 682 14 696T74 710H1032Q1078 710 1091 696T1105 636V158Q1105 112 1091 98Q1078 85 1032 85H626V48H737V-10H368V48H479V85H74Q28 85 14 98T0 158Z" />
|
||||||
|
<glyph unicode="*" glyph-name="asterisk" horiz-adv-x="1000" d="M419 536Q419 574 454 594Q488 615 530 615Q578 615 640 597Q700 581 728 551L789 721Q699 769 603 784Q604 784 648 796Q734 820 762 820Q787 820 807 804T834 763L998 76Q1000 60 1000 58Q1000
|
||||||
|
33 984 13T943 -14L798 -48Q845 23 845 104Q845 215 774 286Q705 357 590 396Q419 453 419 536ZM0 582Q0 607 16 627T57 654L254 701Q191 629 191 533Q191 349 444 250Q503 228 552 192Q616 148 616 90Q616 49 582 24T501 -1Q442 -1 380 21Q319 43 275 82L196 -97Q249
|
||||||
|
-127 340 -158Q336 -159 308 -166Q264 -180 238 -180Q213 -180 193 -164T166 -123L2 564Q0 580 0 582Z" />
|
||||||
|
<glyph unicode="+" glyph-name="plus" horiz-adv-x="1184" d="M933 567H733V617H933V817H983V617H1184V567H983V366H933V567ZM178 591Q188 512 238 455Q287 399 348 397Q408 395 442 449Q477 504 467 582T407 716T298 773Q238 775 203 722Q168 668 178 591ZM112
|
||||||
|
32Q112 -37 170 -85Q228 -134 316 -134Q431 -134 486 -92T542 27Q542 47 538 59Q530 89 505 114Q493 127 465 146L440 163Q434 167 425 173T414 181Q375 193 337 193Q247 194 179 146Q112 98 112 32ZM0 -1Q0 86 89 154T304 222H358Q316 262 316 308Q316 338 332
|
||||||
|
366Q325 365 303 365Q200 365 133 430Q67 494 67 590Q67 682 149 749Q232 817 336 817H646L577 767H479Q525 749 552 700T579 588Q579 495 491 426Q455 397 444 380T432 338Q432 318 459 290Q489 258 513 241Q575 197 597 153Q621 108 621 40Q621 -50 539 -116Q457
|
||||||
|
-183 317 -183Q184 -183 92 -133T0 -1Z" />
|
||||||
|
<glyph unicode="," glyph-name="comma" horiz-adv-x="1106" d="M0 673V694L2 696H251L253 694V674Q253 666 243 666L217 665Q184 664 184 645Q184 634 191 617Q256 461 413 133L419 132L530 353L508 402L432 552L412 592Q388 640 378 652Q371 661 345 666Q331
|
||||||
|
668 331 673V694L334 696H531L536 695V674Q536 666 526 666L511 664Q486 661 486 647Q487 637 505 599L578 449L659 611Q676 642 664 654Q658 662 627 665L618 666Q614 666 611 669Q608 670 608 675V694L611 696Q668 698 797 696L799 694V674Q799 666 790 666Q768
|
||||||
|
665 760 662T743 646Q720 612 713 598L608 402L605 395L733 133L741 130L943 611Q955 639 940 652Q927 663 901 665L882 666Q879 666 876 669Q872 670 872 675V695L875 697H1104L1106 695V675Q1106 668 1097 666Q1052 665 1031 647Q1012 631 997 598L747 31Q731
|
||||||
|
-4 713 -3T678 32Q638 112 556 295Q445 66 425 31Q385 -42 354 30Q329 89 224 314T94 601Q78 643 66 653Q56 663 14 666Q0 668 0 673Z" />
|
||||||
|
<glyph unicode="-" glyph-name="hyphen" horiz-adv-x="939" d="M138 801Q192 823 235 817T289 782Q308 732 391 462Q451 266 507 101Q781 191 833 206Q848 214 870 210T903 187Q923 148 935 88Q944 35 936 14Q915 -2 876 -18Q827 -38 801 -47Q788 -52 755 -62T711
|
||||||
|
-76L638 -99L600 -112Q549 -130 489 -149Q328 -198 304 -173Q285 -154 272 -121Q257 -82 243 -34L224 32L111 370L7 683Q-8 716 20 744Q34 758 70 772Q79 776 106 787T138 801Z" />
|
||||||
|
<glyph unicode="." glyph-name="period" horiz-adv-x="778" d="M574 474V362H714V474H574ZM574 341V211H714V341H574ZM574 189V70H714V189H574ZM714 48H574V-64H714V48ZM569 695V565Q569 532 607 532Q644 532 644 565V695Q644 728 607 728Q569 728 569 695ZM401
|
||||||
|
474V362H553V474H401ZM401 341V211H553V341H401ZM401 189V70H553V189H401ZM553 48H401V-64H553V48ZM354 695V565Q354 532 391 532Q429 532 429 565V695Q429 728 391 728Q354 728 354 695ZM228 474V362H380V474H228ZM228 341V211H380V341H228ZM228 189V70H380V189H228ZM380
|
||||||
|
48H228V-64H380V48ZM139 695V565Q139 532 176 532T213 565V695Q213 728 176 728T139 695ZM68 474V362H207V474H68ZM68 341V211H207V341H68ZM68 189V70H207V189H68ZM207 48H68V-64H207V48ZM779 -129H3V646H95V685L99 716Q103 744 119 755T176 771Q220 771 240 747Q247
|
||||||
|
740 252 716Q256 696 256 685V646H311V685Q311 696 315 716Q320 741 326 747Q350 771 391 771Q444 771 458 741Q469 719 470 698L472 674V646H526V674Q526 710 531 723Q547 755 554 758Q576 771 607 771Q651 771 671 747Q678 740 683 716Q687 696 687 685V646H779V-129Z"
|
||||||
|
/>
|
||||||
|
<glyph unicode="/" glyph-name="slash" horiz-adv-x="1309" d="M724 107V290L813 248L947 288V104Q947 75 967 55T1016 34T1065 54T1085 104V291H1309V110Q1309 -11 1223 -97T1017 -183Q895 -183 810 -98Q724 -12 724 107ZM0 110V291H224V112Q224 84 244 64T293
|
||||||
|
43T342 63T363 112V535Q363 651 449 734Q537 817 655 817Q774 817 860 734Q947 652 947 533V441L813 401L724 443V523Q724 552 704 572T655 592T606 572T585 523V106Q585 -14 499 -98Q414 -183 293 -183T86 -97T0 110Z" />
|
||||||
|
<glyph unicode="0" glyph-name="zero" horiz-adv-x="1258" d="M931 259L899 226Q933 190 944 180Q1001 132 1055 132Q1097 132 1122 159T1147 230T1122 300T1054 328Q1011 328 968 295Q960 288 931 259ZM510 226Q510 184 535 158T603 132Q678 132 758 227L710
|
||||||
|
275Q696 288 662 308Q628 328 599 328Q561 328 536 298T510 226ZM-5 196H114Q119 156 144 132T208 108Q255 108 284 140T313 222Q313 271 285 301T210 332Q171 332 145 307Q118 283 94 283Q50 283 14 285L42 445L71 610H401V512H158Q145 445 134 378H137Q154 398
|
||||||
|
186 409T253 421Q367 421 413 318Q437 378 485 412T596 446Q671 446 723 407Q756 382 768 369Q782 356 816 319L829 305Q858 339 879 360Q892 374 925 401Q980 445 1057 445Q1147 445 1202 384Q1257 325 1257 233Q1257 139 1202 77Q1146 14 1055 14Q939 14 829
|
||||||
|
145L790 106Q761 77 747 67Q719 47 710 41Q667 13 601 13Q538 13 490 45T416 138Q354 10 213 10Q118 10 56 57Q-5 105 -5 196Z" />
|
||||||
|
<glyph unicode="1" glyph-name="one" horiz-adv-x="774" d="M0 458Q0 588 102 698Q153 753 234 785T411 817Q569 817 672 719Q774 622 774 488Q774 318 687 205Q602 94 464 94Q420 94 380 115T324 166L284 8Q264 -67 186 -172L180 -180Q177 -184 172 -183T166
|
||||||
|
-177Q166 -176 164 -151T159 -98T158 -30T168 42L242 355Q226 385 224 430L223 445Q219 503 255 551Q288 594 334 594Q370 594 391 570T412 508Q412 486 403 451Q398 428 381 374Q365 324 361 304Q351 259 378 226Q406 193 452 193Q531 193 582 282Q634 371 634
|
||||||
|
499Q634 596 571 657Q507 719 395 719Q269 719 190 638Q112 557 112 444Q112 378 150 331Q163 317 158 299Q156 295 152 276T146 253Q141 230 118 239Q60 262 30 320T0 458Z" />
|
||||||
|
<glyph unicode="2" glyph-name="two" horiz-adv-x="1000" d="M470 366L497 476Q507 473 522 471T555 461T587 446T609 422T612 389Q605 358 560 351Q551 350 530 353L509 356Q472 366 470 366ZM426 190L456 311Q459 311 475 307Q495 303 531 291Q555 283 581 261Q603
|
||||||
|
244 595 212Q583 169 529 171Q510 171 482 177Q429 189 426 190ZM270 230L243 167L315 149Q320 148 335 144T354 139L331 48L386 34L408 124Q413 122 431 118T452 113L430 23L485 10L507 101Q555 94 592 94T658 113T701 175Q732 265 650 308Q710 321 720 388Q733
|
||||||
|
473 610 514L633 605L578 618L556 530Q553 531 535 535T512 541L534 629L479 643L457 553Q456 553 422 561L346 580L332 521L371 512Q399 506 397 480L371 377L377 375Q376 376 374 376T371 377L335 233Q331 215 310 220L270 230ZM19 178Q-18 305 15 438Q48 570
|
||||||
|
140 665T361 798Q488 835 621 802Q752 769 848 676T981 456T985 196Q952 65 859 -31T639 -164T379 -168Q247 -135 151 -42Q57 49 19 178Z" />
|
||||||
|
<glyph unicode="3" glyph-name="three" horiz-adv-x="1129" d="M846 356L845 375Q841 452 878 521Q911 584 958 589Q993 594 1028 563Q1045 549 1065 513L1109 600L1121 524L1077 439Q1057 477 1040 489L1032 495Q1001 517 968 510Q944 505 921 480T886 421Q869
|
||||||
|
372 867 315Q867 271 872 252Q848 295 846 356ZM818 180L836 130Q844 108 869 72Q911 14 963 5Q1008 -4 1051 23Q1066 32 1086 54Q1109 81 1114 90L1125 110L1114 169Q1103 147 1086 124L1082 120Q1043 81 1021 71Q990 57 953 60Q923 63 893 84Q857 115 850 127Q842
|
||||||
|
138 818 180ZM177 0L0 597H77L184 234L256 478L221 597H298L405 234L512 597H589H802V561L693 373Q749 354 779 306Q809 256 809 192Q809 110 766 55T654 0Q603 0 564 33Q524 68 508 122L568 147Q582 111 603 93Q622 72 654 74T706 108Q728 142 728 192Q728 243
|
||||||
|
705 275Q678 309 622 309H592V345L695 523H571L564 511L412 0H405L295 370L184 0H177Z" />
|
||||||
|
<glyph unicode="4" glyph-name="four" horiz-adv-x="1169" d="M423 445T423 375T373 255Q324 206 254 206Q183 206 134 255T85 375Q85 445 134 494Q184 544 254 544T373 495Q423 445 423 375ZM37 377Q37 287 102 224Q166 161 259 161Q292 161 324 170L544 -25L1129
|
||||||
|
435L1130 737L552 141L462 287Q482 332 482 377Q482 464 416 529Q350 593 259 593Q166 593 102 529Q37 466 37 377ZM0 377Q0 483 76 556Q152 631 261 631Q346 631 413 583Q481 534 508 459L574 523L732 371L1169 817V412L902 206L936 170L573 -183L257 124Q151
|
||||||
|
125 75 200Q0 274 0 377Z" />
|
||||||
|
<glyph unicode="5" glyph-name="five" horiz-adv-x="710" d="M649 679H543V812H587V724H649V679ZM415 679H371V812H418L445 766L473 812H520V679H477V747L445 697V698L415 745V679ZM269 767H230V812H352V767H313V679H269V767ZM585 474H146L170 208L171 210H471L461
|
||||||
|
97L365 70L268 98L262 166H174L186 30L365 -21L544 30L569 297H250L242 386H577L585 474ZM126 679H81V812H126V768H166V812H210V679H166V723H126V679ZM81 -91L16 619H715L649 -91L365 -172L81 -91Z" />
|
||||||
|
<glyph unicode="6" glyph-name="six" horiz-adv-x="943" d="M358 397H623Q624 433 612 459T579 499T542 519T508 526L494 527Q486 528 446 518Q359 496 358 397ZM86 -98L90 -107Q105 -119 134 -128Q158 -136 191 -136Q274 -134 381 -70Q347 -61 309 -46Q267 -29
|
||||||
|
240 -15Q206 3 172 34T120 97Q92 54 83 10T76 -57T86 -98ZM7 27Q46 166 99 266Q213 482 412 618V632Q291 581 191 485Q109 408 65 348L48 325Q44 441 109 534Q164 612 210 644L229 657L239 662Q268 678 310 694Q450 746 573 714Q642 764 701 787Q767 813 799 816L832
|
||||||
|
819Q880 823 908 803T940 747Q947 672 928 620L919 596L914 601Q931 644 933 678T928 732T903 765T873 783T844 790L828 792Q812 792 784 786Q752 780 735 774Q662 749 606 708Q790 678 869 510Q910 423 917 288L916 266H359Q356 225 369 194T403 147T444 124T480
|
||||||
|
116L495 115Q512 115 533 121Q604 140 620 210H912Q870 52 719 -25Q665 -52 610 -66T524 -80H505Q426 -80 398 -74Q339 -120 271 -147Q200 -174 168 -177L132 -180Q86 -180 55 -157T13 -101T0 -33T7 27Z" />
|
||||||
|
<glyph unicode="7" glyph-name="seven" horiz-adv-x="900" d="M42 581Q44 600 57 613L177 733Q189 745 198 729L295 547Q304 530 290 516L246 472Q232 458 232 441Q231 412 263 364Q303 305 324 284L355 252L391 217Q409 199 463 163Q512 130 543 130Q562 130
|
||||||
|
575 143L627 195Q641 209 657 199L832 96Q839 92 840 86T836 74L716 -46Q703 -59 684 -61Q637 -67 576 -48T459 7Q349 79 290 136L264 161L237 188Q226 199 180 257Q134 316 109 358Q80 405 57 469Q35 532 42 581Z" />
|
||||||
|
<glyph unicode="8" glyph-name="eight" horiz-adv-x="1000" d="M129 318Q131 252 165 241Q174 238 182 237Q222 236 267 277Q307 312 325 367Q350 446 335 567Q333 583 333 584Q330 590 333 593Q334 595 346 592Q399 575 424 563Q472 541 526 493Q569 455 613
|
||||||
|
404Q647 364 693 300Q734 243 781 223Q833 202 854 232T877 318Q877 371 865 414L857 442Q846 480 816 526Q764 605 681 650T503 695Q439 695 378 673Q298 644 238 584T149 442Q147 425 140 414Q129 369 129 318ZM134 -48T67 67T0 318T67 569T249 751T500 818T751
|
||||||
|
751T933 569T1000 318T933 67T751 -115T500 -182T249 -115Z" />
|
||||||
|
<glyph unicode="9" glyph-name="nine" horiz-adv-x="1220" d="M1015 -111L1058 -117L1122 275L1191 692L1078 701L1051 334L1020 -101Q1020 -106 1016 -110Q1015 -110 1015 -111ZM658 413Q658 458 681 486T739 515H740Q782 515 804 480T826 389Q826 375 821 363Q796
|
||||||
|
321 740 321Q702 321 680 346T658 413ZM564 407Q564 339 607 296T715 253Q785 253 825 296H826Q812 225 762 185Q721 153 660 147Q617 144 608 145V70Q635 70 665 72Q771 79 836 140Q923 219 923 373Q923 467 876 526Q830 586 745 586Q668 586 615 533Q564 480
|
||||||
|
564 407ZM372 -64L468 -74L841 -114Q983 -145 1050 -162L1053 -144L888 -119Q665 -85 372 -64ZM283 413Q283 458 305 486T364 515H365Q407 515 429 480T451 389Q451 375 446 363Q420 321 365 321Q327 321 305 346T283 413ZM189 407Q189 340 231 296Q274 253 340
|
||||||
|
253Q409 253 449 296H451Q437 225 386 185Q347 153 285 147Q242 144 233 145V70Q260 70 290 72Q396 79 461 140Q548 222 548 373Q548 468 500 527T369 586Q291 586 240 533Q189 480 189 407ZM97 570Q100 355 118 146Q123 74 129 37L138 -23Q218 -27 330 -36Q438
|
||||||
|
-45 512 -49Q858 -68 995 -84Q999 -25 1027 371Q1050 666 1057 782Q584 777 97 675V570ZM30 661Q49 589 73 460Q70 530 70 669Q57 668 30 661ZM0 669Q-2 682 11 684Q53 692 70 697Q70 725 71 746Q72 768 72 795Q74 807 85 807Q99 807 99 793Q97 713 97 702L132
|
||||||
|
709Q152 713 167 717Q180 720 222 727Q236 729 254 732T278 737Q671 806 1072 809Q1086 809 1084 794Q1084 786 1082 761T1080 728L1208 717Q1222 715 1220 703L1152 291L1084 -122L1160 -134Q1172 -136 1172 -148T1160 -161H1157L1079 -148Q1076 -168 1074 -179Q1072
|
||||||
|
-188 1064 -190Q1063 -191 1060 -191H1056Q759 -116 456 -74Q322 -72 307 -72Q288 -72 142 -74V-75Q143 -76 143 -77Q144 -83 139 -87T128 -92Q118 -92 116 -81L112 -49H99Q86 -49 87 -36T101 -22H102H109L103 32Q102 45 94 109T78 226Q58 380 42 478Q26 573 0
|
||||||
|
669Z" />
|
||||||
|
<glyph unicode=":" glyph-name="colon" horiz-adv-x="834" d="M373 -180H0L417 820L834 -180H465V-45L635 40L622 95L465 16V83L563 135L549 192L465 147V234H373V77L287 136L271 72L373 2V-180Z" />
|
||||||
|
<glyph unicode=";" glyph-name="semicolon" horiz-adv-x="1123" d="M930 341V135H997Q1010 135 1010 149V355H943Q930 355 930 341ZM821 -80V-11Q821 3 834 3H1010V52H821V424Q821 437 834 437H1121V-67Q1121 -80 1109 -80H821ZM592 341V135H659Q671 135 671 149V355H604Q592
|
||||||
|
355 592 341ZM671 52H482V424Q482 437 495 437H783V-67Q783 -80 770 -80H482L483 -11Q483 3 495 3H671V52ZM432 497H333V566Q333 580 345 580H444V511Q444 497 432 497ZM432 52H333V424Q333 437 346 437H444V66Q444 52 432 52ZM108 341V135H175Q188 135 188 149V355H121Q108
|
||||||
|
355 108 341ZM287 52H-1V424Q-1 437 12 437H188V566Q188 580 201 580H299V66Q299 52 287 52Z" />
|
||||||
|
<glyph unicode="<" glyph-name="less" horiz-adv-x="1000" d="M176 506Q240 506 290 463L648 642Q648 644 648 648T647 653Q647 726 699 777Q751 829 824 829Q896 829 948 777T1000 653Q1000 580 948 528Q897 476 824 476Q760 476 710 518L352 339V335Q353
|
||||||
|
331 353 329Q353 328 353 324T352 319L710 140Q760 182 824 182Q896 182 948 130T1000 6Q1000 -67 948 -119Q897 -171 824 -171Q750 -171 698 -119Q647 -68 647 6L648 10Q648 14 648 16L290 195Q240 153 176 153Q102 153 51 204T0 329Q0 402 51 454Q103 506 176
|
||||||
|
506Z" />
|
||||||
|
<glyph unicode="=" glyph-name="equal" horiz-adv-x="1000" d="M319 -147Q356 -98 410 -71T527 -43Q640 -43 720 -129Q617 -181 500 -181Q405 -181 319 -147ZM258 170Q268 145 289 154Q397 205 513 205Q626 205 732 157Q756 143 767 169Q771 182 767 192T753 207Q648
|
||||||
|
260 513 260Q380 260 269 205Q250 196 258 170ZM210 314L216 298Q223 285 239 285Q240 285 248 287Q374 342 513 342Q651 342 780 286Q786 284 787 284Q803 284 810 297L815 314Q815 328 805 335Q666 397 513 397Q361 397 220 335Q210 325 210 314ZM164 463Q164
|
||||||
|
446 176 434T206 421Q213 421 215 422Q359 480 513 480T811 422H814Q818 421 820 421Q837 421 849 433T862 463Q862 488 839 500Q680 563 513 563Q342 563 184 499Q164 485 164 463ZM0 319Q-2 451 66 567T251 751T500 819T749 751T933 567T1000 319Q997 109 855
|
||||||
|
-33Q795 40 709 81T527 122Q421 122 329 73T177 -62Q94 9 48 108T0 319Z" />
|
||||||
|
<glyph unicode=">" glyph-name="greater" horiz-adv-x="1205" d="M963 425Q1018 389 1058 333T1114 213Q1173 257 1173 309Q1173 367 1137 409Q1102 451 1045 451Q1001 451 963 425ZM949 706Q949 671 974 646T1034 621Q1070 621 1093 645T1116 706Q1116 740
|
||||||
|
1092 764T1034 788T975 764T949 706ZM694 238Q694 276 717 298T778 320Q812 320 836 296T860 238T836 179T778 154Q741 154 718 177T694 238ZM358 74H402Q429 27 481 5Q534 -18 593 -18T703 6T787 74H828Q802 12 735 -22Q668 -56 593 -56Q523 -56 451 -21Q382 14
|
||||||
|
358 74ZM322 238Q322 275 344 297T404 320T466 297T491 238T466 178T404 154T345 178T322 238ZM136 165Q136 113 166 63T246 -24Q345 -97 454 -118Q532 -132 600 -132Q727 -132 836 -92T1018 30H1015Q1046 70 1058 100T1071 171Q1071 274 983 351T783 457Q696 480
|
||||||
|
602 480Q446 480 300 408Q226 371 181 307T136 165ZM34 311Q34 246 91 199Q96 258 139 315Q185 375 240 416Q202 442 158 442Q109 442 71 401Q34 361 34 311ZM0 323Q0 386 49 429Q99 473 162 473Q224 473 267 437H272Q405 519 607 519L612 523L682 790L924 754Q924
|
||||||
|
753 926 753Q927 753 926 754Q927 754 937 769T952 788Q987 820 1034 820Q1083 820 1116 788T1150 706T1116 622T1034 587Q979 587 948 624T917 722Q916 721 819 735Q728 748 710 752H707Q705 750 690 698L660 589L643 526V523L648 519Q721 519 796 498T926 441L929
|
||||||
|
439L933 441L968 466Q995 485 1041 485Q1109 485 1157 437T1205 320Q1205 274 1179 235T1109 174Q1109 -19 849 -129Q839 -133 826 -138T805 -147T793 -152Q765 -161 702 -171Q644 -180 609 -180Q491 -180 378 -145L370 -141Q363 -137 344 -127T306 -107Q96 4 96
|
||||||
|
165H91Q58 182 32 215L23 227Q8 253 4 271T0 323Z" />
|
||||||
|
<glyph unicode="?" glyph-name="question" horiz-adv-x="767" d="M2 27Q2 49 14 91Q36 178 100 249Q166 321 248 352Q169 415 169 513Q169 599 231 659Q294 719 380 719T528 659Q591 599 591 513Q591 416 514 353Q619 316 691 226Q762 137 762 28Q762 -65 689
|
||||||
|
-78Q686 -88 676 -104Q663 -139 604 -153L554 -165Q536 -169 498 -174Q484 -176 472 -178L459 -179Q458 -179 453 -180T445 -181H325Q276 -181 196 -164Q117 -147 107 -120Q89 -102 82 -78Q56 -74 40 -57Q2 -42 2 27Z" />
|
||||||
|
<glyph unicode="@" glyph-name="at" horiz-adv-x="772" d="M150 438Q150 398 159 357T188 278T240 216T317 192Q329 192 356 207Q384 222 406 222Q418 222 457 211Q494 201 494 192Q494 171 468 171Q338 171 338 95Q338 39 379 9T483 -22Q592 -22 648 44Q690 93
|
||||||
|
690 208Q690 239 689 263Q688 288 688 318Q688 363 693 398H500Q499 393 499 375Q499 368 500 341T501 306Q501 272 493 250Q490 249 476 249Q428 249 396 281Q340 338 340 445Q340 487 351 536Q363 583 394 620Q426 658 472 658Q482 658 493 655Q489 635 489 621Q489
|
||||||
|
585 508 563T561 540Q595 540 618 563T641 621Q641 663 610 691Q556 742 461 742Q326 742 238 657T150 438ZM4 308V411Q4 498 90 611Q177 725 261 771Q340 815 448 815Q492 815 536 805T622 774T688 716T714 631Q714 604 705 582Q693 554 682 540Q656 508 650 502Q636
|
||||||
|
488 634 485L628 480Q621 474 615 468L598 452H651H766Q768 356 768 344Q768 91 726 18Q691 -42 632 -89T504 -160Q461 -175 448 -175H364Q357 -175 316 -158Q196 -108 196 16Q196 19 196 27T197 37Q64 106 17 252Q4 292 4 308Z" />
|
||||||
|
<glyph unicode="A" glyph-name="A" horiz-adv-x="860" d="M420 619H416Q413 634 413 649Q413 713 466 778Q493 811 535 834T618 860Q620 840 620 830Q620 762 570 698Q542 662 500 640Q462 619 420 619ZM1 361Q0 349 0 325Q0 259 20 181Q45 86 103 -3Q191 -138
|
||||||
|
275 -140Q305 -140 353 -119T448 -98H452Q500 -98 543 -118Q592 -140 619 -140Q665 -139 706 -103T795 5Q824 49 860 126Q810 144 776 182T727 268Q718 302 718 338V362Q718 409 749 452T830 524Q792 572 741 599T638 626Q589 626 532 604Q475 583 447 583Q413
|
||||||
|
583 356 604Q293 626 255 626Q197 626 141 593T45 500Q9 446 1 361Z" />
|
||||||
|
<glyph unicode="B" glyph-name="B" horiz-adv-x="996" d="M320 441H495Q520 441 537 459T555 502T538 544T495 562H320Q295 562 277 545T259 502T277 459T320 441ZM320 80H676Q701 80 718 97T736 140T719 182T676 200H320Q295 200 277 183T259 140T277 98T320
|
||||||
|
80ZM0 135V504Q0 634 93 727T316 820H537Q602 812 675 763Q749 713 780 648Q788 633 793 619Q803 594 809 540Q818 471 835 455Q848 442 906 440T971 433L985 422L993 405L996 391L994 135Q992 4 901 -87Q810 -180 679 -180H316Q186 -180 93 -87Q0 4 0 135Z" />
|
||||||
|
<glyph unicode="C" glyph-name="C" horiz-adv-x="1000" d="M504 320Q504 390 545 432T651 475Q744 475 783 403L717 368Q706 391 691 399Q674 408 661 408Q594 408 594 320Q594 279 611 256Q628 232 661 232Q704 232 722 274L785 243Q762 205 729 186Q694 165
|
||||||
|
654 165Q586 165 545 206T504 320ZM215 320Q215 391 257 433Q298 475 362 475Q454 475 495 403L428 368Q418 391 401 399Q386 408 372 408Q305 408 305 320Q305 280 322 256Q338 232 372 232Q416 232 434 274L496 243Q475 207 441 186T364 165Q296 165 256 206T215
|
||||||
|
320ZM90 320Q90 243 122 165Q153 90 213 32Q272 -27 346 -57Q420 -88 501 -88Q583 -88 657 -57Q732 -25 793 33Q910 147 910 320Q910 403 879 477Q848 552 791 609Q668 730 501 730Q330 730 213 610Q153 550 122 476Q90 398 90 320ZM0 320Q0 417 38 511Q76 602
|
||||||
|
148 674Q292 820 499 820Q707 820 856 674Q925 605 963 512Q1000 421 1000 320Q1000 216 964 128Q928 40 857 -31Q782 -105 691 -142Q599 -180 499 -180Q400 -180 309 -142Q221 -106 147 -32Q0 115 0 320Z" />
|
||||||
|
<glyph unicode="D" glyph-name="D" horiz-adv-x="1000" d="M656 274Q707 125 725 -30Q804 21 854 101T914 274Q832 279 781 279Q734 279 656 274ZM597 425Q609 400 631 344Q700 351 792 351Q854 351 915 348Q908 483 817 590Q753 493 597 425ZM398 723Q487 631
|
||||||
|
561 496Q697 553 766 641Q650 737 500 737Q451 737 398 723ZM245 -9Q357 -97 500 -97Q575 -97 647 -69Q628 101 569 262Q478 243 383 161Q290 80 245 -9ZM96 423Q126 421 161 421Q328 421 478 466Q400 603 311 691Q233 651 176 581T96 423ZM83 320Q83 163 188 45Q235
|
||||||
|
137 340 224Q442 308 543 331Q534 353 514 394Q343 339 142 339Q97 339 84 340Q84 338 84 330T83 320ZM134 -46T67 69T0 320T67 571T249 753T500 820T751 753T933 571T1000 320T933 69T751 -113T500 -180T249 -113Z" />
|
||||||
|
<glyph unicode="E" glyph-name="E" horiz-adv-x="837" d="M574 340Q595 343 620 343Q665 342 701 325Q701 412 640 412H637Q607 412 593 392T574 340ZM6 630V632L189 812Q189 813 190 813L187 807Q176 787 176 759Q176 710 177 656Q177 646 167 646H74Q42 646
|
||||||
|
15 635Q9 631 6 630ZM0 511Q0 551 15 569Q24 582 41 590Q59 599 88 599H182Q197 599 208 610T219 636Q219 643 219 657T218 680V739Q218 764 230 783Q244 803 280 814Q290 820 333 820H352Q410 820 450 803Q487 788 495 741Q512 742 543 742Q592 742 632 737Q722
|
||||||
|
726 761 713Q804 698 814 646Q824 590 832 436Q837 338 837 289Q837 245 834 218Q817 45 791 -36Q764 -115 735 -147Q723 -162 699 -170Q665 -180 598 -180Q490 -180 452 -154Q418 -131 415 -48Q410 66 504 74Q514 75 544 75H572Q577 75 578 72T577 65T573 53T571
|
||||||
|
37T573 19T574 7T567 4Q556 5 544 4T523 1T507 -9T500 -31Q500 -49 511 -68Q517 -74 529 -75Q549 -77 551 -77H584Q640 -77 657 -63Q673 -50 673 0Q673 75 654 102Q634 130 598 134Q513 143 479 154Q426 174 426 273Q426 275 424 275T421 273Q421 206 403 153L395
|
||||||
|
129Q386 103 358 103H352Q330 103 298 111Q157 133 100 158Q77 168 63 198Q44 237 27 326Q9 411 4 460Q0 489 0 511Z" />
|
||||||
|
<glyph unicode="F" glyph-name="F" horiz-adv-x="1053" d="M698 10T625 83T552 260T625 437T802 510T979 437T1052 260T979 83T802 10ZM146 10T73 83T0 260T73 437T250 510T427 437T500 260T427 83T250 10Z" />
|
||||||
|
<glyph unicode="G" glyph-name="G" horiz-adv-x="646" d="M178 591Q188 512 238 455Q288 397 348 397H352Q408 397 442 449Q469 491 469 548Q469 558 467 582Q457 660 407 716Q356 773 298 773H294Q237 773 203 722Q176 682 176 624Q176 613 178 591ZM112 32Q112
|
||||||
|
-37 170 -85Q228 -134 316 -134Q431 -134 486 -92T542 27Q542 47 538 59Q530 89 505 114Q493 127 465 146L440 163Q434 167 425 173T414 181Q375 193 337 193H333Q247 193 180 146Q112 98 112 32ZM0 -1Q0 86 89 154T304 222H358Q316 262 316 308Q316 338 332 366Q325
|
||||||
|
365 303 365Q200 365 133 430Q67 494 67 590Q67 682 149 749Q232 817 336 817H646L577 767H479Q525 749 552 700T579 588Q579 495 491 426Q455 397 444 380T432 338Q432 318 459 290Q489 258 513 241Q575 197 597 153Q621 108 621 40Q621 -50 539 -116Q457 -183
|
||||||
|
317 -183Q184 -183 92 -133T0 -1Z" />
|
||||||
|
<glyph unicode="H" glyph-name="H" horiz-adv-x="878" d="M555 578Q559 615 578 642L596 667Q615 693 683 712L704 718Q744 730 770 753Q800 778 814 804L827 827Q867 771 876 698Q879 666 879 641Q877 600 873 582L862 537Q851 507 830 480T792 440L777 429Q742
|
||||||
|
409 710 409L601 462Q716 526 765 584Q808 635 813 660L815 670Q792 618 746 577T665 520T597 494L579 489Q554 532 554 568Q554 575 555 578ZM296 -52L280 -59L336 -63Q410 -16 460 46Q543 147 564 296Q570 337 570 376Q570 390 568 416Q556 538 540 583L531 608Q477
|
||||||
|
760 456 794L445 811Q484 792 508 763Q532 733 536 710Q540 693 540 671V664Q540 647 534 629L529 616Q532 578 534 504Q534 457 529 402Q514 238 449 113Q433 83 415 58T381 16T348 -15T319 -37T296 -52ZM0 194Q0 47 101 -63T361 -173Q519 -173 620 -63Q721 46
|
||||||
|
721 194Q721 272 694 340Q654 315 609 306Q631 256 631 192Q631 116 595 50Q557 -17 496 -51Q434 -87 361 -87Q286 -87 225 -51Q163 -14 127 50Q90 116 90 192Q90 310 170 394Q250 477 361 477Q414 477 459 458Q464 498 486 544Q429 565 361 565Q201 565 95 447Q0
|
||||||
|
340 0 194Z" />
|
||||||
|
<glyph unicode="I" glyph-name="I" horiz-adv-x="487" d="M-2 -176V-148Q99 -142 128 -121Q158 -100 158 -14V652Q158 734 128 758T-2 786V814H487V786Q384 781 356 758Q326 734 326 652V-14Q326 -100 356 -121T487 -148V-176H-2Z" />
|
||||||
|
<glyph unicode="J" glyph-name="J" horiz-adv-x="1234" d="M843 597Q842 600 842 607Q842 618 848 628Q857 641 874 646Q891 650 911 650Q978 650 1026 597Q1055 563 1064 522Q1067 506 1067 489Q1067 467 1059 441Q1055 426 1039 418Q1029 413 1021 413Q1016
|
||||||
|
413 1008 415Q992 419 984 435Q980 443 980 453Q980 458 982 466Q986 478 986 492Q986 520 965 542Q942 568 911 568Q905 568 891 566Q888 565 882 565Q871 565 861 572Q847 581 843 597ZM803 754Q802 757 802 764Q802 776 810 789Q821 806 839 810Q871 817 907
|
||||||
|
817Q958 817 1007 802Q1090 775 1150 709T1228 556Q1235 524 1235 488Q1235 435 1219 390V389Q1213 371 1196 362Q1184 357 1174 357Q1169 357 1159 359Q1140 365 1132 382Q1127 394 1127 403Q1127 408 1129 418V419Q1140 455 1140 489Q1140 514 1136 537Q1123
|
||||||
|
599 1081 646T978 712Q945 722 908 722Q887 722 859 717Q856 716 849 716Q836 716 823 724Q808 734 803 754ZM482 139V133Q485 124 495 120T514 120Q531 126 533 142T520 164Q511 168 501 164T485 151Q482 145 482 139ZM341 54Q347 30 371 19Q384 13 398 13Q411
|
||||||
|
13 422 17Q450 26 465 50Q475 66 475 82Q475 90 472 97Q466 120 442 131Q427 136 416 136Q403 136 391 132Q364 123 350 100Q339 83 339 67Q339 62 341 54ZM285 35Q272 62 272 94Q272 130 290 164Q322 229 394 260Q440 280 485 280Q514 280 539 273Q614 254 648
|
||||||
|
191Q665 159 665 125Q665 93 650 60Q618 -11 541 -44Q499 -63 453 -63Q421 -63 386 -52Q314 -30 285 35ZM125 97Q135 -3 250 -64Q343 -113 459 -113Q488 -113 519 -110Q673 -95 774 -13Q866 62 866 152Q866 164 865 170Q854 271 740 330Q648 379 530 379Q501 379
|
||||||
|
471 376Q371 366 289 326T162 224Q124 171 124 115Q124 103 125 97ZM0 145Q0 308 184 492Q298 606 420 654Q477 677 517 677Q562 677 589 650Q615 624 615 578Q615 546 603 506Q600 493 606 489T622 488L632 492Q731 531 802 531T908 490Q923 471 923 438Q923 406
|
||||||
|
907 367Q901 352 906 347T927 336Q989 318 1033 274T1077 167Q1077 108 1037 47T924 -66Q852 -119 744 -151T518 -183Q387 -183 270 -144Q154 -106 77 -29T0 145Z" />
|
||||||
|
<glyph unicode="K" glyph-name="K" horiz-adv-x="1086" d="M257 -182H0V818H257V447H486L743 818H1029L701 341Q701 328 797 198L990 -58L1086 -182H743L600 17L457 218H257V-182Z" />
|
||||||
|
<glyph unicode="L" glyph-name="L" horiz-adv-x="1040" d="M353 -176H575V197Q575 230 583 251Q617 332 697 332Q809 332 809 181V-176H1031V207Q1031 352 962 430T776 508Q647 508 575 397V395H574L575 397V492H353Q357 428 353 -176ZM230 -176H8V492H230V-176ZM121
|
||||||
|
814Q175 814 210 782Q245 749 245 696Q245 647 211 616Q177 583 119 583H118Q64 583 30 615T-5 699T30 782T121 814Z" />
|
||||||
|
<glyph unicode="M" glyph-name="M" horiz-adv-x="1348" d="M1183 161Q1223 172 1248 209Q1275 246 1275 288Q1275 318 1260 344Q1236 322 1220 288Q1206 259 1197 228Q1189 192 1183 161ZM1093 136Q1100 141 1117 146Q1130 269 1155 320Q1188 387 1248 387Q1282
|
||||||
|
387 1324 363Q1341 324 1341 288Q1341 222 1294 169T1182 101Q1180 59 1180 53Q1180 -20 1198 -64Q1188 -62 1161 -62Q1149 -62 1139 -60Q1129 -37 1122 36Q1114 112 1093 136ZM893 244Q893 252 895 302Q910 300 954 277L953 250Q952 199 962 134Q1000 148 1009
|
||||||
|
198Q1017 241 1017 285V296Q1019 295 1026 295Q1045 294 1075 270Q1075 268 1075 261T1076 251Q1076 221 1064 199Q1063 196 1050 174L1036 151Q1022 140 1002 109Q982 102 964 102Q893 102 893 244ZM678 236Q676 262 701 262Q705 262 719 261T736 260Q739 275
|
||||||
|
739 291Q739 316 731 377Q724 432 724 464Q724 509 734 536Q741 531 760 530Q783 527 801 506Q795 481 795 439Q795 413 799 358Q801 312 801 297Q801 272 800 263H806Q814 263 816 275T821 288Q829 291 851 270T877 242Q868 235 836 233Q812 232 798 229Q797 221
|
||||||
|
797 193Q797 180 798 141T800 89L755 85V95V105Q755 126 752 162Q748 201 748 223Q742 224 716 226Q692 227 678 236ZM579 217Q584 211 593 211H602Q611 230 611 260Q611 274 605 299Q604 295 596 276T584 242T579 217ZM523 174Q523 298 601 356Q632 353 661 333Q661
|
||||||
|
329 653 266Q648 234 648 201V187Q622 185 619 185Q614 185 576 190Q571 177 571 167Q571 146 588 130T627 114Q653 114 668 137Q686 131 689 120Q666 99 626 99Q590 99 556 119Q523 139 523 174ZM413 228L421 229Q423 229 429 227T436 225L443 228Q445 246 445
|
||||||
|
250Q445 265 440 290Q417 264 413 228ZM355 200Q355 225 363 257Q372 291 392 316T438 341Q446 341 467 336T489 330Q498 290 498 249Q498 221 492 194Q481 198 454 198Q425 200 417 202Q412 180 412 165Q412 143 422 128T452 112Q458 112 478 117T504 122Q521
|
||||||
|
122 527 108Q486 92 445 92Q401 92 378 121T355 200ZM0 276Q0 287 2 381Q28 389 50 389H68Q86 364 108 319Q128 279 139 258L147 294Q154 326 157 337Q183 424 203 445Q235 440 249 440Q257 440 260 441Q284 387 305 278Q327 171 344 123Q342 123 340 124L337 125Q330
|
||||||
|
125 310 119T289 113Q251 207 227 316Q212 290 212 227Q212 166 201 139L196 141Q190 141 174 139T153 137H135Q107 187 78 226Q75 220 75 211Q75 206 78 186T80 160L79 148Q49 133 27 133Q19 133 17 134Q0 191 0 276Z" />
|
||||||
|
<glyph unicode="N" glyph-name="N" horiz-adv-x="1213" d="M-9 598Q2 606 16 610Q28 614 41 614H50Q65 614 74 613Q89 612 106 612Q108 612 121 613T144 614H196Q215 613 228 606T252 574Q256 567 264 549T274 527Q313 444 368 364Q373 355 381 344T398 324T416
|
||||||
|
308T437 304Q463 308 468 421Q468 428 468 439T469 456Q469 530 454 558Q450 568 440 575T413 588T391 598Q405 625 439 634T537 644H562Q593 644 616 643Q633 643 665 635Q686 630 697 612Q707 593 708 570Q708 561 709 556Q709 536 706 504Q702 467 702 452Q699
|
||||||
|
407 699 406Q699 394 701 368Q706 323 731 307Q750 309 763 322L774 333L797 364Q856 442 891 527L911 576Q928 605 939 609Q954 616 977 616H986Q998 616 1032 614Q1074 612 1079 612Q1101 612 1139 614Q1198 616 1208 595Q1211 589 1211 582Q1211 554 1176 495Q1160
|
||||||
|
467 1141 442Q1118 411 1096 384L1059 338L1045 320L1027 296Q1009 274 1011 247Q1011 234 1023 217Q1029 211 1033 205L1059 181Q1133 113 1171 64Q1211 12 1211 -11Q1211 -44 1160 -52Q1137 -56 1107 -56Q1086 -56 1064 -53Q1038 -51 1027 -51Q1004 -51 982 -56H976Q912
|
||||||
|
-46 837 38Q835 40 820 58T798 84Q771 111 748 107Q724 102 717 78Q710 52 708 18T699 -30Q686 -54 620 -54Q587 -54 554 -50Q479 -43 412 -10Q352 20 312 57Q274 93 231 150Q125 286 34 472Q16 508 11 520Q-9 567 -9 598Z" />
|
||||||
|
<glyph unicode="O" glyph-name="O" horiz-adv-x="852" d="M224 189Q230 98 239 78Q257 -53 316 -101Q369 -142 406 -142H422Q530 -142 573 -53Q616 34 624 186Q626 222 626 329Q626 388 625 413Q623 481 616 536L611 573Q603 630 573 690Q551 734 517 756T425
|
||||||
|
781Q418 782 406 782Q374 782 350 768Q307 743 281 693T246 598L241 574Q237 555 231 464Q226 392 226 359V318Q226 303 225 276T223 238Q223 204 224 189ZM2 287L0 327Q-1 353 4 400Q10 466 28 523Q37 549 56 585Q71 614 93 647Q148 726 220 771Q261 797 314 810Q358
|
||||||
|
821 398 820Q418 820 428 819Q533 819 617 776T752 659Q852 514 852 335Q852 55 692 -90Q639 -139 574 -159T414 -179H403Q370 -179 320 -167Q235 -146 154 -78T37 101L29 126Q23 149 15 190Q4 248 2 287Z" />
|
||||||
|
<glyph unicode="P" glyph-name="P" horiz-adv-x="1049" d="M770 527Q783 527 783 539Q783 552 770 552Q758 552 758 540T770 527ZM717 484Q702 499 702 521T717 558Q733 574 754 574T792 558T808 521T792 484Q777 469 755 469T717 484ZM676 479L675 478V481L676
|
||||||
|
479ZM620 413L570 462Q600 457 620 457Q639 457 669 462L620 413ZM568 484L620 536L671 484Q650 477 621 477Q590 477 568 484ZM564 478L563 479L565 481L564 478ZM469 539Q469 527 481 527T493 539T481 552T469 539ZM465 574Q487 574 502 559T518 521T503 484T465
|
||||||
|
469Q444 469 429 484T413 521T428 558T465 574ZM232 114Q232 98 239 87Q264 -7 328 -51Q374 -81 434 -97Q497 -115 551 -115Q618 -115 696 -87Q776 -58 816 -15Q884 59 884 242Q884 467 792 621Q780 640 774 648Q759 672 723 672Q673 672 616 611Q539 658 476 658Q419
|
||||||
|
658 374 617T300 510Q274 448 258 369Q232 239 232 114ZM0 207Q10 345 168 380Q180 468 210 572Q242 678 282 718Q328 766 400 793T548 820Q634 820 712 781T829 671Q847 639 870 540Q895 436 901 386Q916 380 935 380Q965 380 965 409Q965 416 960 442T954 478V482H955Q982
|
||||||
|
482 1016 431Q1050 379 1050 350Q1050 318 1022 290Q1012 281 988 273Q962 263 956 262L920 254L912 252V226Q912 53 835 -27L860 -52L885 -63Q932 -83 939 -100Q874 -151 807 -151Q774 -151 732 -134Q645 -171 552 -171Q433 -171 318 -110Q286 -117 263 -129Q261
|
||||||
|
-130 239 -146T198 -172T172 -180Q169 -162 169 -143Q169 -64 222 -17Q161 83 160 240L153 241H150Q118 241 74 224Q28 207 10 205Q8 205 0 207Z" />
|
||||||
|
<glyph unicode="Q" glyph-name="Q" horiz-adv-x="869" d="M223 637V-1Q240 -5 300 -5H304Q458 -5 544 80Q633 166 633 336Q633 488 553 567T323 646Q258 646 223 637ZM3 -163V794Q124 815 300 815Q441 815 536 791T701 714Q866 590 866 344Q866 84 705 -51Q556
|
||||||
|
-177 254 -177Q115 -177 3 -163Z" />
|
||||||
|
<glyph unicode="R" glyph-name="R" horiz-adv-x="1000" d="M0 628V820Q202 820 388 740T707 527T920 208T1000 -180H808Q808 -15 744 134Q679 286 571 392Q464 499 313 564Q166 628 0 628ZM0 289V480Q179 480 331 391Q482 302 571 151Q660 -1 660 -180H468Q468
|
||||||
|
14 331 151Q193 289 0 289ZM266 -46Q266 -102 227 -140Q188 -179 133 -179T39 -140T0 -46T39 48T133 87T227 48T266 -46Z" />
|
||||||
|
<glyph unicode="S" glyph-name="S" horiz-adv-x="986" d="M221 181Q221 140 251 96Q322 -8 497 -8Q547 -8 593 3T681 37T747 101T772 195Q772 252 742 293Q724 318 694 336T642 362T573 383Q551 389 516 397T460 411T418 426T385 447T375 477Q375 509 411 526Q447
|
||||||
|
542 486 542Q526 542 552 530T590 500T611 465T636 435T675 422Q719 422 737 462T728 541Q699 595 633 621Q570 646 495 646Q398 646 323 608Q234 563 234 465Q234 402 272 361T371 301Q395 294 438 284T508 267T565 248T609 220T623 181Q622 140 581 119T493 98Q448
|
||||||
|
99 420 114T379 150T358 192T332 228T290 243Q262 243 242 226T221 181ZM0 547Q0 660 80 740T273 820Q350 820 418 778Q452 785 498 785Q693 785 831 647T969 315Q969 269 958 214Q986 157 986 93Q986 -20 906 -100T713 -180Q646 -180 584 -148Q536 -156 498 -156Q304
|
||||||
|
-156 166 -18T28 315Q28 362 37 409Q0 473 0 547Z" />
|
||||||
|
<glyph unicode="T" glyph-name="T" horiz-adv-x="1230" d="M0 -83Q30 -86 60 -86Q236 -86 374 22Q290 24 227 72Q161 122 138 197Q155 193 185 193Q220 193 252 202Q163 219 106 288T49 449V452Q101 423 164 421Q112 455 82 510T51 631Q51 699 86 758Q182 639
|
||||||
|
315 571Q449 502 606 494Q599 525 599 552Q599 656 673 730T852 804Q961 804 1036 724Q1121 742 1196 786Q1168 695 1086 646Q1161 655 1230 686Q1182 611 1105 555V522Q1105 309 985 125Q924 32 841 -39Q755 -113 637 -154T387 -196Q179 -196 0 -83Z" />
|
||||||
|
<glyph unicode="U" glyph-name="U" horiz-adv-x="859" d="M723 96H677V126Q677 157 700 157T723 126V96ZM623 124V-3Q623 -43 642 -66T699 -90Q777 -90 777 -3V18H723V-12Q721 -19 720 -25T714 -36T700 -41Q677 -41 677 -1V52H777V124Q777 206 702 206Q666 206
|
||||||
|
645 183T623 124ZM509 510V747H561V532Q561 513 575 513Q588 513 606 534V747H658V466H606V497Q577 462 545 462Q509 462 509 510ZM486 -29V147Q497 158 508 158Q530 158 530 130V-18Q530 -42 511 -42Q496 -42 486 -29ZM433 299V-82H486V-61Q505 -86 536 -86Q583
|
||||||
|
-86 583 -24V132Q583 203 532 203Q507 203 486 176V299H433ZM366 686V530Q366 507 388 507Q411 507 411 532V685Q411 698 400 703T377 703T366 686ZM312 537V683Q312 716 333 735T390 754Q423 754 443 734T464 681V536Q464 500 444 480T388 459Q353 459 333 480T312
|
||||||
|
537ZM233 199V-38Q233 -86 269 -86Q301 -86 330 -51V-82H382V199H330V-15Q309 -36 299 -36Q285 -36 285 -17V199H233ZM164 694L117 847H177L215 695H219L255 847H315L269 699L246 624V466H187V617Q185 631 175 661T164 694ZM52 299V244H113V-82H172V244H233V299H52ZM-9
|
||||||
|
265Q-6 318 28 351T116 388Q228 393 417 393T718 388Q771 385 805 352T843 265Q848 190 848 103T843 -59Q840 -112 806 -145T718 -182Q606 -187 417 -187T116 -182Q63 -179 29 -146T-9 -59Q-15 27 -15 103T-9 265Z" />
|
||||||
|
<glyph unicode="V" glyph-name="V" horiz-adv-x="1146" d="M47 487L0 548Q108 677 205 741Q282 791 326 806L343 810Q359 812 367 812Q389 812 402 806Q438 791 458 751T495 644Q501 621 510 567Q529 453 538 417Q570 289 589 239Q608 187 631 187Q655 187 697
|
||||||
|
242T791 394Q817 443 817 485Q817 494 815 508Q806 559 764 573Q755 577 740 577Q706 577 657 551Q679 681 791 760Q876 820 965 820Q981 820 989 819Q1090 812 1128 729Q1146 691 1146 641Q1146 612 1140 580Q1122 477 1070 372Q1021 270 957 184Q894 101 825
|
||||||
|
29Q701 -98 611 -156Q569 -180 533 -180T463 -159T407 -111T369 -54Q350 -15 271 244Q191 506 175 525Q173 527 171 529T157 533T133 534T97 520T47 487Z" />
|
||||||
|
<glyph unicode="W" glyph-name="W" horiz-adv-x="1233" d="M677 366L781 736Q815 710 858 692T930 670L955 666Q972 663 1020 663Q1045 663 1062 664Q1081 665 1146 677Q1203 689 1233 710L1129 340Q1093 320 1043 308Q992 297 958 296L925 294Q886 292 822 305Q720
|
||||||
|
325 677 366ZM557 -109L661 262Q695 236 738 218T810 196L835 192Q852 189 900 189Q925 189 942 190Q961 191 1026 203Q1084 215 1113 236L1009 -135Q972 -156 923 -166Q872 -176 839 -178L806 -180Q764 -182 702 -170Q602 -151 557 -109ZM126 404L231 775Q268
|
||||||
|
796 317 806Q365 817 401 819L434 820Q481 821 538 810Q637 791 682 749L578 378Q545 404 502 422T430 444L404 448Q387 451 340 451Q333 451 297 449Q268 447 213 436Q157 426 126 404ZM0 -73L105 298Q142 319 190 329Q247 341 274 342L308 343Q353 344 412 333Q511
|
||||||
|
314 556 272L452 -98Q419 -72 376 -54T304 -32L278 -28Q261 -25 213 -25Q188 -25 170 -26Q147 -27 87 -40Q30 -52 0 -73Z" />
|
||||||
|
<glyph unicode="X" glyph-name="X" horiz-adv-x="899" d="M535 -182L312 210L658 818H890L545 210L767 -182H535ZM123 406L-50 120H169L342 406L212 635H-7L123 406Z" />
|
||||||
|
<glyph unicode="Y" glyph-name="Y" horiz-adv-x="1379" d="M1313 36L1203 40L1207 150L1317 146L1313 36ZM1231 232L1190 803L1375 796L1292 229L1231 232ZM0 702V694L6 675Q14 662 19 660L21 658L40 648H151L438 304Q449 291 449 279V87Q449 72 441 70H438Q326
|
||||||
|
70 296 67Q286 67 286 58V3H802V60Q802 67 795 67H793H649Q640 67 640 82V284Q639 290 647 298L650 301L914 550H1047Q1057 550 1065 557L1082 576Q1088 584 1088 594V608Q1086 614 1082 614H1080H644L637 608Q635 595 644 586L646 582L669 559L687 552H802L595
|
||||||
|
357L367 648H408Q419 647 430 652L498 673Q500 673 504 676T508 688V702Q508 709 502 709H499H10Q1 707 0 702Z" />
|
||||||
|
<glyph unicode="Z" glyph-name="Z" horiz-adv-x="870" d="M0 19Q0 42 43 70Q82 153 82 154Q82 162 96 226T129 348Q143 391 160 423Q186 471 206 489Q217 497 209 500Q180 519 158 582Q147 615 147 652Q147 661 149 681Q151 700 156 684Q159 677 162 659Q167 623
|
||||||
|
188 584Q211 543 249 528Q251 528 268 535Q340 561 507 573Q509 614 514 649Q500 660 498 677L497 683Q489 669 477 670Q469 672 469 703Q469 712 471 746Q472 765 488 777T522 791Q530 799 558 799Q571 813 603 818Q622 821 638 821Q652 821 658 820L681 817Q688
|
||||||
|
818 703 818L743 814Q771 807 790 797L805 788H809Q836 788 850 761Q859 746 866 720L869 700Q869 688 864 671H860Q854 677 850 688Q843 665 832 654L828 650V644Q828 600 801 542Q798 535 803 521Q809 508 826 435Q841 375 841 340V337Q841 309 826 271Q812 236
|
||||||
|
799 223Q801 218 799 213Q799 182 778 141Q771 131 760 97Q754 77 746 44Q741 16 741 2Q741 -13 745 -18Q748 -20 762 -40T774 -66Q773 -75 758 -84T732 -94Q719 -94 705 -87T685 -68Q679 -49 679 -30Q679 -16 682 -2L693 47Q699 76 705 134Q707 160 707 172Q707
|
||||||
|
205 700 223L685 217Q649 203 578 203Q564 133 554 108L549 96Q544 88 544 -17Q544 -56 558 -120Q575 -131 575 -147V-152Q573 -164 560 -172T530 -180Q513 -180 499 -169T484 -141V-126Q485 -111 486 -92V-44V-21Q486 38 479 70Q453 168 452 213Q446 213 439 218L386
|
||||||
|
162Q387 157 392 138T397 117Q397 109 411 103Q426 97 438 87T449 68Q447 54 426 54H420Q400 54 380 63Q375 65 359 116T341 169Q336 192 340 198Q355 238 355 258V262Q353 277 332 294Q311 312 293 312Q278 312 260 296Q256 293 242 281T225 267Q222 265 209 254T187
|
||||||
|
235L163 213Q157 209 126 152Q93 90 85 71Q67 -2 22 0Q0 1 0 19Z" />
|
||||||
|
<glyph unicode="[" glyph-name="bracketleft" horiz-adv-x="999" d="M312 316Q312 238 366 184T497 130Q573 130 627 184Q682 239 682 316Q682 392 628 446Q574 501 497 501T366 446Q312 392 312 316ZM0 297Q0 372 23 452T85 597Q147 702 267 760Q388 820 516
|
||||||
|
820Q645 820 765 738Q883 657 948 537Q998 446 998 323Q998 173 927 57Q856 -58 736 -119T465 -180L526 -70Q611 84 664 168L665 170Q666 171 676 187T689 208Q709 241 714 267Q720 291 720 315Q720 396 672 457L947 538Q614 538 519 537Q514 538 497 538Q399 538
|
||||||
|
331 464Q265 391 276 291Q274 303 274 319Q274 363 289 396L85 597L283 256Q303 182 362 138Q422 93 497 93Q514 93 530 96L464 -180Q350 -180 241 -109Q134 -39 66 67Q0 169 0 297Z" />
|
||||||
|
<glyph unicode="\" glyph-name="backslash" horiz-adv-x="831" d="M0 -155Q0 -128 31 -128Q58 -128 80 -120Q146 -104 146 -11V603Q146 730 54 738Q39 739 33 744T26 754T25 770Q24 795 48 795L68 794Q87 794 110 793L247 790Q300 789 382 789Q510 789 578 794Q641
|
||||||
|
798 694 804T752 810Q783 810 783 779Q783 778 780 767T774 739T771 712Q771 696 774 665Q778 637 778 621Q778 604 767 594T742 584Q722 584 721 612Q724 623 722 636T717 661T696 684T649 704T565 717T433 721Q350 720 316 714T275 696T267 651V516Q267 485 267
|
||||||
|
458T268 417T268 401Q268 382 274 375T297 367H530Q570 367 596 389T626 455Q627 471 631 479T639 488T654 490Q669 490 677 478T683 445Q683 442 678 399Q674 364 674 334T678 267Q683 220 683 210Q683 185 660 180Q637 177 631 204Q623 234 613 252Q587 300 508
|
||||||
|
300H301Q283 300 275 289T267 251V-14Q267 -60 291 -84T374 -109H424H487Q505 -109 547 -106Q584 -105 612 -99Q680 -84 712 -59Q735 -41 745 -15T766 68Q769 86 792 86Q820 85 829 54Q832 42 831 30Q830 21 814 -33Q799 -81 799 -108Q799 -112 799 -129T800 -152Q800
|
||||||
|
-190 775 -190L766 -188Q756 -186 742 -183T699 -178T638 -176Q487 -176 316 -177Q218 -178 128 -178T31 -179Q13 -179 7 -174T0 -155Z" />
|
||||||
|
<glyph unicode="]" glyph-name="bracketright" horiz-adv-x="1040" d="M1036 49L698 374L1036 664Q1039 655 1039 645V69Q1039 59 1036 49ZM48 10L389 337L521 230L653 337L994 10Q986 7 977 7H64Q56 7 48 10ZM387 413L47 704Q54 707 64 707H977Q986 707 995 704L655
|
||||||
|
413L610 377L521 304L432 377L387 413ZM2 69V645Q2 646 5 664L344 374L6 49Q2 61 2 69Z" />
|
||||||
|
<glyph unicode="^" glyph-name="asciicircum" horiz-adv-x="1106" d="M952 -43L976 -34Q1038 -22 1048 -104Q1051 -139 1047 -180Q1042 -167 1003 -150Q964 -134 948 -112Q935 -95 935 -78Q935 -68 937 -62T942 -53T952 -43ZM872 82L909 101Q919 106 930 103T946
|
||||||
|
89L977 29Q990 3 967 -10L940 -26Q930 -32 919 -29T902 -16L862 46Q856 56 859 66T872 82ZM916 251L846 383H1081Q1091 383 1098 376T1106 358V207Q1106 197 1099 190T1081 182H948Q943 200 940 205L916 251ZM524 819Q534 823 559 788Q583 754 631 672Q687 576
|
||||||
|
693 567Q710 541 768 436L859 267L903 184Q913 167 902 150T870 124L846 115Q842 114 816 122Q789 136 626 515Q597 572 550 690T524 819ZM716 182H440L555 383H622L716 182ZM134 26L438 554Q443 563 453 565T472 563L537 526Q547 521 549 511T547 491L244 -37Q239
|
||||||
|
-46 229 -48T209 -46L144 -8Q135 -4 132 6T134 26ZM188 -75L122 -37L188 -75ZM0 207V358Q0 368 7 375T25 383H290L175 182H25Q0 182 0 207Z" />
|
||||||
|
<glyph unicode="_" glyph-name="underscore" horiz-adv-x="1084" d="M1085 2H-1V91V145V352H139V145H944V352H1085V145V91V2Z" />
|
||||||
|
<glyph unicode="`" glyph-name="grave" horiz-adv-x="1000" d="M426 308Q396 340 396 384T426 460Q457 492 500 492T573 460Q604 428 604 384T573 308Q543 276 500 276T426 308ZM349 104Q349 202 382 235Q406 257 434 262Q458 267 500 267Q526 267 535 266Q570
|
||||||
|
266 594 253Q651 220 651 104Q651 -11 606 -98Q561 -183 500 -183Q438 -183 393 -98Q349 -13 349 104ZM183 299Q183 435 276 531Q369 628 500 628T724 531Q817 435 817 299Q817 297 817 289T816 279Q808 408 717 498Q625 588 500 588Q374 588 283 498Q192 408 184
|
||||||
|
279Q184 281 184 289T183 299ZM0 298Q0 440 67 558Q135 679 249 747Q364 817 500 817T751 747Q865 679 933 558Q1000 440 1000 298Q1000 296 1000 288T999 278Q992 485 846 631Q702 776 500 776T153 631Q8 485 1 278Q1 280 1 288T0 298Z" />
|
||||||
|
<glyph unicode="a" glyph-name="a" horiz-adv-x="1099" d="M894 27Q895 30 900 35Q927 52 948 58Q981 67 1022 69Q1029 70 1041 68Q1086 64 1095 53Q1099 48 1099 35V28Q1099 -9 1080 -54Q1060 -104 1027 -131Q1023 -135 1018 -135Q1015 -135 1014 -134Q1008 -131
|
||||||
|
1011 -123Q1048 -37 1048 -2Q1048 10 1044 14Q1034 26 988 26Q963 26 948 24L902 18Q896 18 894 19T893 24Q893 26 894 27ZM474 349Q474 310 493 287T546 263Q548 263 554 264T562 265Q605 276 627 319Q637 338 643 360Q650 391 650 443V468Q589 468 562 460Q474
|
||||||
|
436 474 349ZM302 329Q302 397 335 446T429 521Q483 544 562 554Q603 559 650 562V579Q650 644 636 665Q616 695 570 695H562Q528 692 505 674T474 624Q469 604 454 601L339 615Q322 620 322 633Q322 637 323 640Q339 728 406 772Q480 820 562 820H587Q702 820
|
||||||
|
765 761Q783 743 797 719Q800 714 803 704T808 683T812 669Q814 663 815 641Q816 627 816 616V586V558V374Q816 344 823 326T838 296T861 265Q867 256 867 249Q867 241 859 235L769 157Q758 147 740 155Q734 160 700 194L672 233Q617 172 562 157Q529 147 478 147Q399
|
||||||
|
147 351 195T302 329ZM1 44Q6 53 17 45Q267 -100 561 -100Q759 -100 948 -27L976 -15Q991 -9 999 -21Q1008 -32 994 -43Q974 -58 948 -73Q862 -124 757 -152T549 -180Q237 -180 5 28Q-1 32 -1 38Q-1 40 1 44Z" />
|
||||||
|
<glyph unicode="b" glyph-name="b" horiz-adv-x="1314" d="M1038 441Q1038 401 1065 373T1133 345Q1172 345 1200 373T1228 441Q1228 480 1200 508T1133 536Q1093 536 1066 508T1038 441ZM1132 321Q1182 321 1217 356T1252 440T1217 524T1132 559Q1083 559 1048
|
||||||
|
524T1013 440T1048 356T1132 321ZM792 86L743 105Q771 53 830 53Q870 53 899 81T928 151Q928 191 900 219T830 248Q819 248 809 246L849 230Q878 218 892 188Q899 174 899 158Q899 144 893 129Q881 98 851 86Q836 80 821 80Q807 80 792 86ZM33 438Q33 398 61 370T130
|
||||||
|
341Q135 341 151 343L110 359V360Q82 373 70 402Q64 416 64 430Q64 445 70 460Q82 490 110 502Q125 509 141 508Q153 508 168 503V504L217 484Q189 536 130 536Q90 536 62 508T33 438ZM130 571Q177 571 213 542T260 467L762 265Q793 284 830 284Q831 284 836 284T844
|
||||||
|
283L954 442Q956 516 1007 566Q1059 618 1132 618Q1206 618 1258 566T1310 440T1258 314T1132 262L962 138Q958 87 919 52Q882 18 830 18Q782 18 746 48T700 123L198 324Q167 305 130 305Q75 305 36 344Q-2 384 -2 438T36 532Q75 571 130 571Z" />
|
||||||
|
<glyph unicode="c" glyph-name="c" horiz-adv-x="1107" d="M-2 251Q-2 356 71 429Q145 503 248 503L249 502Q249 504 249 509T248 515Q248 634 330 716Q413 799 530 799Q633 799 711 733T807 567H824Q940 567 1023 484T1106 283T1023 82T824 -1Q815 -1 812 0V-1H257H248H239H234V0Q135
|
||||||
|
4 66 78Q-2 152 -2 251Z" />
|
||||||
|
<glyph unicode="d" glyph-name="d" horiz-adv-x="1013" d="M804 34L499 -164L500 191L502 192L704 37L804 97V34ZM502 631L206 451L500 266L796 462L502 631ZM499 -164L201 35V92L295 37L498 192L499 191V-164ZM299 101L-12 286L202 449L-12 611L299 814L502 640L710
|
||||||
|
814L1012 621L814 456L1012 286L705 101L502 257L299 101Z" />
|
||||||
|
<glyph unicode="e" glyph-name="e" horiz-adv-x="1407" d="M1022 276L915 494Q976 485 999 455T1022 367V276ZM915 494L889 546H1043L1143 314L1252 546H1395L1206 187V-3H1065V187L1022 276V367Q1022 425 999 455T915 494ZM822 223Q822 161 863 161Q897 161 910
|
||||||
|
197Q916 211 916 245V289Q892 289 882 287Q862 287 854 282Q822 271 822 223ZM832 377H725Q725 443 765 471Q804 497 866 497Q870 497 915 494L1022 276V174Q1022 169 1024 135L1026 101H926L921 153H919Q886 95 819 95Q798 95 793 96V148Q793 165 793 186T792
|
||||||
|
211Q790 241 783 267Q774 301 757 320Q795 349 892 349H916V380Q916 411 907 424T872 437Q847 437 840 423T832 377ZM717 218Q717 292 757 320Q774 301 783 267Q791 235 793 211V148V96Q717 114 717 218ZM598 150Q598 71 607 42T642 12Q669 12 678 41T688 150Q688
|
||||||
|
239 676 260Q665 280 642 280Q610 282 603 242Q598 207 598 150ZM572 161H491V322Q543 300 560 260Q573 230 573 184Q573 169 572 161ZM491 -46V33Q493 33 495 35Q567 71 569 122H491V161H572Q573 169 573 184Q573 230 560 260Q543 300 491 322V505H598V302H600Q632
|
||||||
|
346 688 346Q731 346 757 320Q717 292 717 218Q717 114 793 96Q792 37 772 -5Q749 -54 686 -54Q622 -54 595 -4H594V-46H491ZM491 33V122H569Q567 71 495 35Q493 33 491 33ZM198 215H376Q376 243 366 265Q353 294 285 294Q221 294 208 263Q198 241 198 215ZM0 181Q0
|
||||||
|
243 26 281Q75 353 285 353Q375 353 433 340Q471 333 491 322V161H198Q198 126 209 97Q223 61 285 61Q370 61 370 122H433H435H491V33Q466 21 435 14Q368 -1 285 -1Q101 -1 47 50Q20 76 10 105T0 181Z" />
|
||||||
|
<glyph unicode="f" glyph-name="f" horiz-adv-x="817" d="M434 283H280V474H434V570Q434 674 501 747T665 820H818V629H665Q650 629 638 613T626 572V474H818V283H626V-180H434V283Z" />
|
||||||
|
<glyph unicode="g" glyph-name="g" horiz-adv-x="939" d="M655 571V469H710V185V184Q715 146 740 121T788 88T832 78H845H852Q878 78 900 86Q921 93 930 102L937 111L939 210Q899 197 874 197Q868 197 865 198Q842 201 838 214L834 227Q834 230 833 231V469H924V571H833V664H710V571H655ZM608
|
||||||
|
92H474V571H608V92ZM478 681Q455 705 455 739T478 796Q502 820 536 820T594 796Q618 773 618 739T594 681T536 657T478 681ZM124 -27Q124 0 149 18T212 37T275 19T301 -27Q301 -53 275 -72T212 -91T150 -72T124 -27ZM193 485Q223 485 244 462T265 405T244 349T193
|
||||||
|
325Q164 325 143 348T121 405T142 461T193 485ZM0 -27Q0 -90 62 -135Q124 -180 212 -180T362 -135Q425 -90 425 -27Q425 37 362 82Q300 127 212 127L209 126H206Q157 170 206 227Q277 232 326 282T375 403Q375 432 368 453Q394 457 412 467V582Q363 550 303 550H296Q250
|
||||||
|
581 195 581Q119 581 67 529Q14 476 14 403Q14 356 38 316T102 252Q74 217 74 178Q74 143 100 103Q53 82 27 48T0 -27Z" />
|
||||||
|
<glyph unicode="h" glyph-name="h" horiz-adv-x="866" d="M635 167L501 300L635 433L866 300L635 167ZM501 300L0 796V800L433 550L635 433L501 300ZM0 -200V-196L501 300L635 167L433 50L0 -200ZM501 300L0 -196V300V796L501 300Z" />
|
||||||
|
<glyph unicode="i" glyph-name="i" horiz-adv-x="1000" d="M283 144Q283 113 304 92T357 70Q390 70 414 94T438 151V159V420L638 457V249Q621 254 610 254Q577 254 553 230T529 173Q529 142 550 121T602 99T658 122T683 176V180V188V570L393 520V220Q376 225 365
|
||||||
|
225Q331 225 307 201T283 144ZM334 720T217 603T100 320T217 37T500 -80T783 37T900 320T783 603T500 720ZM134 -46T67 69T0 320T67 571T249 753T500 820T751 753T933 571T1000 320T933 69T751 -113T500 -180T249 -113Z" />
|
||||||
|
<glyph unicode="j" glyph-name="j" horiz-adv-x="764" d="M191 626V176H590V626H191ZM193 -183H0V817H764V0L193 3V-183Z" />
|
||||||
|
<glyph unicode="k" glyph-name="k" horiz-adv-x="1000" d="M161 184L81 104Q147 37 273 37Q352 37 410 78Q468 118 468 196Q468 269 435 301T346 345Q300 349 263 358T225 396Q225 443 295 442Q351 442 382 413L460 491Q400 551 290 551Q212 551 158 509Q105 468
|
||||||
|
105 392Q105 294 177 264Q204 252 265 244T336 224Q346 214 346 194Q346 148 274 148Q197 148 161 184ZM133 710Q279 820 489 820H500H505V43H629V251Q633 246 668 187Q698 137 719 108Q747 69 781 56T874 42H910V160Q864 160 847 167Q828 175 805 208Q788 231
|
||||||
|
768 264L742 308L913 546H765L629 357V810Q764 787 867 710Q897 686 917 662Q962 611 976 560Q978 552 983 533T990 507Q996 484 997 446Q1000 403 1000 387V320V253Q1000 238 997 194Q996 157 990 132Q980 93 976 79Q968 47 953 24Q912 -37 867 -70Q721 -180 500
|
||||||
|
-180T133 -70Q104 -48 82 -22Q35 33 23 79L9 132Q5 149 2 194Q0 252 0 253V320V387Q0 388 2 446Q5 492 9 507L23 560Q31 591 47 616Q88 677 133 710Z" />
|
||||||
|
<glyph unicode="l" glyph-name="l" horiz-adv-x="1332" d="M395 716Q519 716 615 653T761 472L890 172Q913 120 927 98Q973 32 1056 32H1063Q1130 32 1174 68Q1219 105 1221 164Q1221 216 1183 241Q1161 255 1143 262Q1117 272 1084 283Q960 323 904 372Q849 421
|
||||||
|
849 508Q849 599 906 653T1063 708Q1190 708 1254 593L1170 550Q1125 612 1058 612Q1012 612 982 584T951 511Q951 460 991 435Q1014 421 1036 413L1062 404L1094 394L1127 384Q1230 353 1281 300Q1328 251 1328 160Q1328 60 1252 -6Q1176 -71 1066 -71H1063Q965
|
||||||
|
-71 902 -26T799 116L785 149L658 437Q624 515 553 561Q482 608 395 608Q276 608 191 523Q107 439 107 320Q107 202 191 116Q276 32 395 32Q476 32 544 74T650 187L701 69Q646 0 566 -38T395 -76Q231 -76 115 40T-1 320T115 600T395 716Z" />
|
||||||
|
<glyph unicode="m" glyph-name="m" horiz-adv-x="1210" d="M1038 553L731 299L1038 69V553ZM961 716H266L614 418L961 716ZM183 556V75L490 304L183 556ZM528 273L183 15V-65H1038V9L693 268L614 203L528 273ZM183 -117H7V780H192L201 772H1026L1035 780H1209V-120H1038V-113H183V-117Z"
|
||||||
|
/>
|
||||||
|
<glyph unicode="n" glyph-name="n" horiz-adv-x="1000" d="M143 504L0 496L316 819V696L617 419L804 465L609 257L1000 -181L556 211L368 19L398 188L143 504Z" />
|
||||||
|
<glyph unicode="o" glyph-name="o" horiz-adv-x="1083" d="M686 526V411H691Q729 411 768 396Q813 380 832 365L853 349L770 315L1083 237V482L976 421Q935 465 863 490Q787 517 738 521L686 526ZM652 -102L510 -180V722L652 820V-102ZM1 156L0 173Q-10 338 183
|
||||||
|
441Q307 506 445 523L471 526V403Q319 391 236 301Q183 243 174 180L172 168Q169 153 169 138Q169 114 176 96Q193 47 252 7T362 -50T452 -74L471 -77V-180Q370 -169 295 -145Q168 -105 86 -21Q43 24 23 73T1 156Z" />
|
||||||
|
<glyph unicode="p" glyph-name="p" horiz-adv-x="1000" d="M457 596V338H566Q580 338 597 344Q657 365 656 434L655 495Q655 509 648 527Q640 554 618 575T557 596H457ZM574 13H239V43H288Q314 43 331 60T350 98L351 117V123V152V529Q351 562 337 582T306 605L291
|
||||||
|
607H241V639H590Q635 639 670 625T723 588T752 546T764 509L766 494V432Q766 388 748 356T701 310T650 290T610 284L601 283H458V115Q458 86 474 68T510 47L527 45H574V13ZM38 659V-19Q38 -70 74 -106T161 -142H839Q890 -142 926 -106T962 -19V659Q962 710 926
|
||||||
|
746T839 782H161Q110 782 74 746T38 659ZM0 -47V687Q0 742 39 781T133 820H867Q922 820 961 781T1000 687V-47Q1000 -102 961 -141T867 -180H133Q78 -180 39 -141T0 -47Z" />
|
||||||
|
<glyph unicode="q" glyph-name="q" horiz-adv-x="889" d="M221 423V307Q221 190 287 108Q354 26 448 26Q473 26 500 34Q500 42 465 76T389 114V193V202Q396 203 409 203Q528 203 612 113Q675 194 675 307V423Q675 539 608 621Q542 704 448 704Q355 704 287 621Q221
|
||||||
|
538 221 423ZM444 817Q630 814 758 685Q889 552 889 366Q889 247 832 145Q775 44 678 -17L684 -27Q690 -37 702 -50T738 -77T792 -100V-176Q758 -183 725 -183Q674 -183 640 -165Q584 -136 549 -71Q509 -82 444 -84Q356 -85 274 -49T132 48T36 193T0 366Q0 486
|
||||||
|
60 590T224 757T444 817Z" />
|
||||||
|
<glyph unicode="r" glyph-name="r" horiz-adv-x="1201" d="M521 820Q608 820 683 795V493Q618 528 551 528Q459 528 389 479Q345 447 308 396Q273 346 273 301Q273 211 330 160Q388 109 479 109Q556 109 630 150Q703 192 739 259Q760 299 760 309Q761 354 761
|
||||||
|
452Q761 476 761 532T760 621V765Q789 749 879 688Q1015 596 1168 596Q1188 596 1194 589T1201 559Q1201 508 1148 458Q1096 409 1038 389Q1042 361 1042 320Q1042 180 970 65T778 -115Q659 -180 521 -180Q384 -180 263 -115Q144 -50 72 65Q0 180 0 320Q0 458 72
|
||||||
|
574Q145 691 263 755Q384 820 521 820Z" />
|
||||||
|
<glyph unicode="s" glyph-name="s" horiz-adv-x="1153" d="M602 508Q600 527 639 536T706 545Q803 545 875 472Q948 399 955 294Q982 307 1010 307Q1067 307 1109 261Q1151 214 1151 151Q1152 87 1110 40Q1068 -5 1010 -5H617Q611 -5 607 1T602 14Q602 29 602
|
||||||
|
80T601 169Q600 310 602 508ZM521 140Q521 143 527 491Q529 509 543 509T559 491Q565 143 565 140Q565 114 559 13Q558 2 551 -2T536 -3T527 13Q521 114 521 140ZM426 141Q426 196 427 226L429 326L432 411Q434 426 446 426T460 411Q461 400 461 370T462 326Q466
|
||||||
|
229 466 141Q466 139 460 10V11Q459 1 453 -2T440 -3T432 10Q426 139 426 141ZM331 141Q331 196 334 300Q337 420 338 429Q340 441 350 441T362 429L366 296Q370 162 370 141Q370 131 366 69L362 8Q360 -4 350 -4T338 8Q338 24 334 67Q331 115 331 141ZM237 141Q237
|
||||||
|
193 238 221L242 316L246 398Q246 408 255 408Q265 408 265 398Q265 393 266 380T268 340T270 286Q275 181 275 141Q275 121 270 64T265 6Q265 -4 255 -4Q246 -4 246 6Q237 138 237 141ZM145 141Q145 159 150 214L155 269Q155 278 162 278Q170 278 170 269Q181
|
||||||
|
151 181 141Q181 132 170 5Q170 -3 162 -3Q155 -3 155 5Q155 6 150 63Q145 121 145 141ZM64 122T64 141T69 215L75 276Q75 282 81 282Q86 282 87 276Q99 147 99 141Q99 132 93 70L87 11Q86 4 81 4Q75 4 75 11L69 69Q64 122 64 141ZM0 141Q0 156 3 185Q7 213 13
|
||||||
|
216Q18 213 23 183Q28 151 28 141Q28 130 23 98Q19 70 13 67Q0 74 0 141Z" />
|
||||||
|
<glyph unicode="t" glyph-name="t" horiz-adv-x="616" d="M111 410H0V552Q59 571 101 607Q143 641 168 693Q194 745 203 820H346V567H583V410H346V154Q346 68 355 42Q364 18 389 3Q424 -17 465 -17Q543 -17 616 32V-125Q555 -155 500 -168Q447 -180 388 -180Q317
|
||||||
|
-180 266 -163Q213 -146 177 -113Q141 -82 125 -45Q111 -9 111 60V410Z" />
|
||||||
|
<glyph unicode="u" glyph-name="u" horiz-adv-x="916" d="M686 367Q686 517 794 517Q838 517 867 492T906 440T916 393V379V368V359Q916 347 915 336Q914 323 903 287Q894 261 870 244T810 227H804Q768 227 741 238Q713 250 703 274Q686 311 686 367ZM508 657Q512
|
||||||
|
703 557 754Q595 795 629 795Q637 795 642 794Q685 784 716 736Q741 698 741 659Q741 647 740 641Q731 587 692 540Q658 501 612 500Q603 500 598 501Q541 509 522 552Q508 582 506 627Q506 635 508 657ZM455 147V-15Q455 -32 469 -45T500 -65L515 -70H661V147H598V-16H538Q525
|
||||||
|
-16 516 -1L515 3V148L455 147ZM272 12L268 23Q266 33 266 39Q266 54 272 70Q283 96 311 105H366V-20H315Q300 -20 288 -10T272 12ZM263 557Q232 601 232 666T263 775Q294 820 340 820Q384 820 416 775Q448 729 448 666T416 557Q384 512 340 512Q294 512 263 557ZM216
|
||||||
|
92L208 72Q206 54 206 45Q206 9 218 -16Q239 -59 297 -71H424V236L367 237V154H299Q271 154 248 135T216 92ZM77 -66L66 -32Q62 -20 62 4Q62 33 72 59Q82 87 97 109T124 142T159 172L185 193L196 202Q207 211 221 224T253 255T286 293T314 333Q331 362 364 386Q396
|
||||||
|
408 436 414Q442 415 453 415Q484 415 519 397Q564 374 598 320Q605 309 621 288Q641 265 688 216Q737 166 794 121Q828 95 840 53T848 -21T834 -77L828 -92Q821 -110 793 -136Q771 -155 743 -167Q719 -180 664 -179T552 -159Q513 -146 473 -146H459Q434 -146 404
|
||||||
|
-150L379 -154L352 -159Q327 -163 286 -167Q232 -172 206 -167H203Q158 -167 123 -134Q87 -98 77 -66ZM2 455Q9 521 38 553T94 588L103 590H111Q154 590 188 554Q226 513 229 476Q232 460 232 443V437Q232 417 226 384Q221 350 198 326T139 294Q125 291 113 291Q89
|
||||||
|
291 70 301Q40 316 25 344Q10 373 4 402Q0 417 0 434Q0 441 2 455Z" />
|
||||||
|
<glyph unicode="v" glyph-name="v" horiz-adv-x="1011" d="M700 501Q684 514 691 533T715 558T748 549Q764 535 757 516T733 492T700 501ZM0 -21V657Q0 724 43 771Q86 820 151 820H848Q920 820 965 782T1011 676V617L900 637Q859 644 846 644Q830 648 816 654Q777
|
||||||
|
668 750 668Q689 668 618 621L522 614Q376 603 315 591H314H313L312 590H311H310H309H308L307 589H306Q235 576 219 563Q199 546 199 492V453V327L196 309L722 296L802 323Q750 227 732 191L626 144L220 137Q218 135 210 134T199 129L206 90Q215 39 318 31Q516
|
||||||
|
18 653 18Q688 18 773 38T900 58Q964 58 1011 29V-25Q1011 -180 857 -180H134Q74 -180 36 -132Q0 -84 0 -21Z" />
|
||||||
|
<glyph unicode="w" glyph-name="w" horiz-adv-x="1000" d="M873 328L732 -80Q839 -18 899 87Q961 194 961 319Q961 439 905 540Q908 519 908 493Q908 431 873 328ZM508 279L370 -124Q432 -142 500 -142Q578 -142 653 -116L650 -110L508 279ZM114 572H144Q192 572
|
||||||
|
267 578Q279 579 284 570T286 551T270 540L217 535L385 36L486 338L414 535Q382 539 366 540Q354 541 350 550T351 569T369 578L490 572Q518 570 613 578Q625 579 630 570T632 551T616 540L564 535L730 39L776 193Q812 315 812 342Q812 406 773 470L760 491L747
|
||||||
|
514Q724 556 728 578Q728 611 750 635T806 660H809L812 659Q682 780 500 780Q382 780 279 724Q178 669 114 572ZM39 319Q39 185 110 72Q182 -40 299 -96L79 507Q39 420 39 319ZM134 -47T67 68T0 319T67 570T249 752T500 819T751 752T933 570T1000 319T933 68T751
|
||||||
|
-114T500 -181T249 -114Z" />
|
||||||
|
<glyph unicode="x" glyph-name="x" horiz-adv-x="1002" d="M666 495L632 531Q779 621 867 661Q1002 516 1002 320Q1002 145 892 8Q901 34 901 64Q903 94 892 132Q866 225 799 325T666 495ZM176 700Q315 820 501 820Q686 820 825 700Q755 740 657 705Q570 675 522
|
||||||
|
642L501 628H500Q471 649 422 674Q332 720 258 720Q257 720 256 721Q210 721 176 700ZM139 -25Q162 43 207 114Q257 190 301 238Q395 341 470 400L499 423Q505 419 533 397Q554 381 610 329Q664 280 713 227Q760 175 803 106Q848 35 863 -25Q793 -98 699 -139T501
|
||||||
|
-180Q397 -180 304 -140T139 -25ZM0 320Q0 144 109 8Q100 34 100 64Q100 98 110 132Q136 224 202 323T336 495L369 531Q225 621 135 661Q0 516 0 320Z" />
|
||||||
|
<glyph unicode="y" glyph-name="y" horiz-adv-x="749" d="M466 155Q457 143 457 131Q457 115 470 99L584 -91Q592 -100 608 -100H611Q629 -100 644 -85Q670 -62 699 -22Q728 16 741 47Q745 56 745 68Q745 75 742 81Q737 95 723 100L518 170Q504 174 499 174Q478
|
||||||
|
174 466 155ZM454 280Q448 292 448 303Q448 320 463 336L593 515Q601 523 613 523Q617 523 620 522Q637 520 649 504Q671 482 702 433Q729 392 739 360Q742 352 742 345Q742 336 738 329Q732 318 715 313L506 260Q496 258 490 258Q467 258 454 280ZM160 -57L299
|
||||||
|
109Q316 130 337 130Q346 130 353 127Q378 117 378 82Q378 75 377 72V-149Q375 -163 360 -171Q350 -176 342 -176T326 -173Q293 -168 241 -147Q191 -127 168 -110Q150 -96 150 -80Q150 -68 160 -57ZM91 708Q86 716 86 724Q86 733 92 742Q104 758 130 769Q209 800
|
||||||
|
301 815H306Q352 815 355 777Q380 487 380 384Q380 352 353 344Q345 342 341 342Q320 342 304 367Q148 611 91 708ZM4 231V218Q4 169 10 149Q14 132 28 124T58 121L262 184Q284 191 293 210Q304 230 293 249Q286 265 261 275L57 357Q42 360 30 350T13 319Q4 265
|
||||||
|
4 231Z" />
|
||||||
|
<glyph unicode="z" glyph-name="z" horiz-adv-x="722" d="M0 46V59V141Q0 153 7 162L9 164L204 394L399 625Q338 614 296 611Q267 609 255 610Q233 610 224 611Q156 619 137 647Q136 647 136 648L134 651Q130 659 130 675Q130 685 131 690Q135 737 180 800L192
|
||||||
|
814Q197 819 204 819T219 815Q236 805 239 805Q292 784 387 779Q402 778 431 778Q538 778 653 802Q671 806 671 792V787L667 744L662 702Q662 695 644 680L636 673L475 485L285 266L225 196Q214 183 212 178T210 154H217Q285 154 361 105Q460 42 506 25L525 18Q570
|
||||||
|
6 608 6Q672 6 718 41Q723 16 723 -4Q723 -33 716 -60Q704 -112 666 -150Q635 -181 589 -181Q578 -181 572 -180Q510 -173 406 -113Q379 -97 333 -62Q281 -23 255 -9Q209 14 160 22Q117 29 43 29H12Q5 29 0 46Z" />
|
||||||
|
<glyph unicode="{" glyph-name="braceleft" horiz-adv-x="1233" d="M448 -88L429 -94Q440 -56 440 -23Q440 -12 437 -3Q440 -4 471 -8Q534 -14 556 -54Q560 -61 560 -63Q575 -94 567 -117Q539 -95 502 -88T448 -88ZM167 161V105H267V161Q267 217 217 217T167 161ZM64
|
||||||
|
-16V146Q64 211 83 245Q124 316 217 316Q285 316 327 273T369 163V28H167V-39Q167 -87 217 -87Q263 -87 267 -38H369Q369 -101 328 -143Q288 -186 217 -186Q124 -186 83 -115Q64 -81 64 -16ZM-45 548H-63Q110 581 145 619Q172 649 190 710Q207 688 212 663T214
|
||||||
|
622L209 609Q197 577 181 563L171 555Q169 553 154 543T135 530Q101 502 101 467T132 413Q158 397 182 418T235 497Q247 522 253 563Q261 609 275 639T320 695Q355 722 415 715Q462 710 504 726T594 803Q615 827 646 847Q673 865 705 875Q738 884 782 874T865 830Q819
|
||||||
|
850 775 851T707 836Q654 804 638 770L631 755Q603 694 588 669T554 632Q536 623 530 621T497 613T460 603Q418 591 410 549Q404 512 432 496Q464 478 514 510Q582 554 604 603T683 680Q725 700 765 708Q807 716 848 716Q898 718 915 720Q1112 752 1161 834Q1208
|
||||||
|
913 1210 964Q1227 919 1224 879T1210 808T1179 753T1143 714T1110 689L1092 678Q1040 646 963 622Q913 607 880 601Q848 596 818 580Q715 525 766 425Q787 384 827 381T905 410Q911 415 919 424Q929 436 941 463Q955 492 957 524Q993 424 952 364L937 342Q900
|
||||||
|
304 876 288Q818 252 724 285Q637 306 604 305Q572 305 543 288Q514 272 500 245T498 197Q513 171 532 170T596 191Q636 214 662 220Q689 227 730 229Q818 231 869 191Q903 169 943 134Q891 165 841 166T763 155T718 124L708 114Q644 50 632 42Q603 22 580 21T521
|
||||||
|
36L481 53Q447 67 440 69V179Q440 300 348 365Q290 405 214 405T80 366Q60 394 29 399V474Q29 505 8 526T-45 548Z" />
|
||||||
|
<glyph unicode="|" glyph-name="bar" horiz-adv-x="851" d="M14 10Q24 52 86 360Q153 694 157 710Q169 762 181 782Q193 803 220 812T307 821H548Q632 821 683 820T799 819Q840 819 849 774Q859 726 826 682Q796 642 745 642H344L294 409L646 406Q690 406 700
|
||||||
|
361T679 277Q652 244 609 244H249L201 -4H633Q697 -4 709 -47Q723 -91 692 -135Q663 -179 625 -179H72Q42 -179 25 -162T3 -116T2 -56T14 10Z" />
|
||||||
|
<glyph unicode="}" glyph-name="braceright" horiz-adv-x="868" d="M613 33Q613 -19 649 -55Q685 -92 737 -92T825 -55Q861 -19 861 33Q861 84 825 120Q789 157 737 157T649 120Q613 84 613 33ZM0 108Q0 153 31 184Q63 216 108 216Q152 216 184 184T216 108Q216
|
||||||
|
61 182 30Q247 -44 345 -44Q414 -44 461 -3Q508 39 508 103Q508 141 483 180Q457 221 423 244Q382 271 308 301Q226 335 186 360Q144 387 113 424Q81 462 67 498T53 577Q53 678 134 749Q217 820 331 820Q408 820 486 787Q554 758 599 707Q636 676 636 627Q636 582
|
||||||
|
604 550Q573 519 528 519T452 550T420 627Q420 650 430 671Q399 687 342 687Q273 687 230 656T187 576Q187 533 225 500Q268 465 353 429Q447 388 494 356Q546 321 576 282Q608 242 624 197Q624 196 625 194T626 191Q551 129 551 33Q551 -21 579 -71Q568 -84 555
|
||||||
|
-98Q469 -180 349 -180Q102 -180 2 78L5 79Q0 96 0 108Z" />
|
||||||
|
<glyph unicode="~" glyph-name="asciitilde" horiz-adv-x="664" d="M119 515V392Q119 361 125 337Q144 267 199 224T325 181Q426 181 487 257T548 462Q548 582 487 656Q426 731 330 731Q257 731 202 685Q146 639 128 568Q119 535 119 515ZM0 805H100L108 684H118L123
|
||||||
|
687Q202 820 369 820Q498 820 581 721Q664 623 664 468Q664 281 564 184Q472 94 347 94Q279 94 224 123T135 202L133 205H122L119 198V-180H6V581Q6 668 0 805Z" />
|
||||||
|
<glyph unicode="" glyph-name="DEL" horiz-adv-x="1000" />
|
||||||
|
<glyph unicode="€" glyph-name="uni0080" horiz-adv-x="973" />
|
||||||
|
</font>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 66 KiB |
BIN
app/assets/fonts/zocial-regular-webfont.ttf
Normal file
BIN
app/assets/fonts/zocial-regular-webfont.woff
Normal file
BIN
app/assets/images/auth/facebook.gif
Normal file
After Width: | Height: | Size: 2.0 KiB |
BIN
app/assets/images/auth/google.gif
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
app/assets/images/auth/twitter.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
app/assets/images/auth/yahoo.gif
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
app/assets/images/avatars/0.jpg
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
app/assets/images/avatars/1.jpg
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
app/assets/images/avatars/10.jpg
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
app/assets/images/avatars/100.jpg
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
app/assets/images/avatars/101.jpg
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
app/assets/images/avatars/102.jpg
Normal file
After Width: | Height: | Size: 3.0 KiB |
BIN
app/assets/images/avatars/103.jpg
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
app/assets/images/avatars/104.jpg
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
app/assets/images/avatars/105.jpg
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
app/assets/images/avatars/106.jpg
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
app/assets/images/avatars/107.jpg
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
app/assets/images/avatars/108.jpg
Normal file
After Width: | Height: | Size: 2.0 KiB |
BIN
app/assets/images/avatars/109.jpg
Normal file
After Width: | Height: | Size: 7.4 KiB |
BIN
app/assets/images/avatars/11.jpg
Normal file
After Width: | Height: | Size: 2.2 KiB |
BIN
app/assets/images/avatars/110.jpg
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
app/assets/images/avatars/111.jpg
Normal file
After Width: | Height: | Size: 5.1 KiB |
BIN
app/assets/images/avatars/112.jpg
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
app/assets/images/avatars/113.jpg
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
app/assets/images/avatars/114.jpg
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
app/assets/images/avatars/115.jpg
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
app/assets/images/avatars/116.jpg
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
app/assets/images/avatars/117.jpg
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
app/assets/images/avatars/118.jpg
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
app/assets/images/avatars/119.jpg
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
app/assets/images/avatars/12.jpg
Normal file
After Width: | Height: | Size: 4.4 KiB |
BIN
app/assets/images/avatars/120.jpg
Normal file
After Width: | Height: | Size: 7.5 KiB |
BIN
app/assets/images/avatars/121.jpg
Normal file
After Width: | Height: | Size: 7.1 KiB |
BIN
app/assets/images/avatars/122.jpg
Normal file
After Width: | Height: | Size: 3.6 KiB |
BIN
app/assets/images/avatars/123.jpg
Normal file
After Width: | Height: | Size: 8.2 KiB |
BIN
app/assets/images/avatars/124.jpg
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
app/assets/images/avatars/125.jpg
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
app/assets/images/avatars/126.jpg
Normal file
After Width: | Height: | Size: 3.0 KiB |
BIN
app/assets/images/avatars/127.jpg
Normal file
After Width: | Height: | Size: 37 KiB |
BIN
app/assets/images/avatars/128.jpg
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
app/assets/images/avatars/129.jpg
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
app/assets/images/avatars/13.jpg
Normal file
After Width: | Height: | Size: 3.2 KiB |
BIN
app/assets/images/avatars/130.jpg
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
app/assets/images/avatars/131.jpg
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
app/assets/images/avatars/132.jpg
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
app/assets/images/avatars/133.jpg
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
app/assets/images/avatars/134.jpg
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
app/assets/images/avatars/135.jpg
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
app/assets/images/avatars/136.jpg
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
app/assets/images/avatars/137.jpg
Normal file
After Width: | Height: | Size: 7.3 KiB |
BIN
app/assets/images/avatars/138.jpg
Normal file
After Width: | Height: | Size: 6.4 KiB |
BIN
app/assets/images/avatars/14.jpg
Normal file
After Width: | Height: | Size: 2.2 KiB |
BIN
app/assets/images/avatars/15.jpg
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
app/assets/images/avatars/16.jpg
Normal file
After Width: | Height: | Size: 37 KiB |
BIN
app/assets/images/avatars/17.jpg
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
app/assets/images/avatars/18.jpg
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
app/assets/images/avatars/19.jpg
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
app/assets/images/avatars/2.jpg
Normal file
After Width: | Height: | Size: 5.5 KiB |
BIN
app/assets/images/avatars/20.jpg
Normal file
After Width: | Height: | Size: 2.2 KiB |
BIN
app/assets/images/avatars/21.jpg
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
app/assets/images/avatars/22.jpg
Normal file
After Width: | Height: | Size: 8.6 KiB |
BIN
app/assets/images/avatars/23.jpg
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
app/assets/images/avatars/24.jpg
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
app/assets/images/avatars/25.jpg
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
app/assets/images/avatars/26.jpg
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
app/assets/images/avatars/27.jpg
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
app/assets/images/avatars/28.jpg
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
app/assets/images/avatars/29.jpg
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
app/assets/images/avatars/3.jpg
Normal file
After Width: | Height: | Size: 4.4 KiB |
BIN
app/assets/images/avatars/30.jpg
Normal file
After Width: | Height: | Size: 9.0 KiB |
BIN
app/assets/images/avatars/31.jpg
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
app/assets/images/avatars/32.jpg
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
app/assets/images/avatars/33.jpg
Normal file
After Width: | Height: | Size: 2.0 KiB |
BIN
app/assets/images/avatars/34.jpg
Normal file
After Width: | Height: | Size: 5.6 KiB |
BIN
app/assets/images/avatars/35.jpg
Normal file
After Width: | Height: | Size: 3.6 KiB |