diff --git a/Gemfile.lock b/Gemfile.lock
index 3a77ca37..adecbb25 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -223,7 +223,7 @@ GEM
       hike (~> 1.2)
       rack (~> 1.0)
       tilt (~> 1.1, != 1.3.0)
-    thin (1.4.1)
+    thin (1.5.0)
       daemons (>= 1.0.9)
       eventmachine (>= 0.12.6)
       rack (>= 1.0.0)
diff --git a/assets/javascripts/app/pusher.coffee b/assets/javascripts/app/pusher.coffee
index 31e567af..b0b60c9a 100644
--- a/assets/javascripts/app/pusher.coffee
+++ b/assets/javascripts/app/pusher.coffee
@@ -1,14 +1,13 @@
 Travis.Pusher = ->
   @active_channels = []
-  if Travis.Pusher.KEY
-    @pusher = new Pusher(Travis.Pusher.KEY)
+  if Travis.config.pusher?.key?
+    @pusher = new Pusher(Travis.config.pusher.key)
     @subscribe(channel) for channel in Travis.Pusher.CHANNELS
   this
 
 $.extend Travis.Pusher,
   CHANNELS: ['common']
   CHANNEL_PREFIX: ''
-  KEY: ''
 
 $.extend Travis.Pusher.prototype,
   subscribe: (channel) ->
diff --git a/assets/javascripts/lib/travis/ajax.coffee b/assets/javascripts/lib/travis/ajax.coffee
index b44086e7..1b05ce5b 100644
--- a/assets/javascripts/lib/travis/ajax.coffee
+++ b/assets/javascripts/lib/travis/ajax.coffee
@@ -12,7 +12,7 @@ jQuery.support.cors = true
     endpoint = Travis.config.api_endpoint || ''
     options = options || {}
 
-    if access_token = Travis.app.get('accessToken')
+    if access_token = Travis.app?.get('accessToken')
       options.headers ||= {}
       options.headers['Authorization'] ||= "token #{access_token}"
 
@@ -22,7 +22,19 @@ jQuery.support.cors = true
     options.contentType = 'application/json; charset=utf-8'
     options.context = this
 
-    if options.data && method != 'GET'
+    if options.data && method != 'GET' && method != 'get'
       options.data = JSON.stringify(options.data)
 
     $.ajax($.extend(options, @DEFAULT_OPTIONS))
+
+@Travis.Ajax.instance = Em.Object.create(@Travis.Ajax)
+
+$.extend @Travis,
+  get: (url, callback) ->
+    @ajax(url, 'get', success: callback)
+
+  post: (url, data, callback) ->
+    @Ajax.instance.post(url, data, callback)
+
+  ajax: (url, method, options) ->
+    @Ajax.instance.ajax(url, method, options)
diff --git a/assets/javascripts/travis.coffee b/assets/javascripts/travis.coffee
index 0307bcd2..f0b8e119 100644
--- a/assets/javascripts/travis.coffee
+++ b/assets/javascripts/travis.coffee
@@ -33,6 +33,11 @@ require 'ext/ember/namespace'
 
   INTERVALS: { sponsors: -1, times: -1, updateTimes: 1000 }
 
+  loadConfig: (callback) ->
+    Travis.get '/config', (data) ->
+      $.extend Travis.config, data.config
+      callback()
+
   run: (attrs) ->
     console.log "Connecting to #{Travis.config.api_endpoint}"
     @app = Travis.App.create(attrs || {})
diff --git a/public/index.html b/public/index.html
index fd488109..8797d668 100644
--- a/public/index.html
+++ b/public/index.html
@@ -10,13 +10,10 @@
     <script>
       // minispade.require('mocks')
       minispade.require('app')
-
-      if(location.hostname != 'localhost') {
-        Travis.Pusher.KEY = '23ed642e81512118260e'
-      }
-
       $(function() {
-        Travis.run()
+        Travis.loadConfig(function() {
+          Travis.run()
+        });
       });
     </script>
   </head>
diff --git a/public/javascripts/application.js b/public/javascripts/application.js
index a85f4a70..7aabefec 100644
--- a/public/javascripts/application.js
+++ b/public/javascripts/application.js
@@ -1 +1 @@
-minispade.register('templates', "(function() {Ember.TEMPLATES['builds/list']=Ember.Handlebars.compile(\"{{#if builds.isLoaded}}\\n  <table id=\\\"builds\\\" class=\\\"list\\\">\\n    <thead>\\n      <tr>\\n        <th>{{t builds.name}}</th>\\n        <th>{{t builds.commit}}</th>\\n        <th>{{t builds.message}}</th>\\n        <th>{{t builds.duration}}</th>\\n        <th>{{t builds.finished_at}}</th>\\n      </tr>\\n    </thead>\\n\\n    <tbody>\\n      {{#each build in builds}}\\n        {{#view Travis.BuildsItemView contextBinding=\\\"build\\\"}}\\n          <tr {{bindAttr class=\\\"view.color\\\"}}>\\n            <td class=\\\"number\\\">\\n              <span class=\\\"status\\\"></span>\\n              <a {{bindAttr href=\\\"view.urlBuild\\\"}} {{action route}}>\\n                {{number}}\\n              </a>\\n            </td>\\n            <td class=\\\"commit\\\">\\n              <a {{bindAttr href=\\\"view.urlGithubCommit\\\"}}>\\n                {{formatCommit commit}}\\n              </a>\\n            </td>\\n            <td class=\\\"message\\\">\\n              {{{formatMessage commit.message short=\\\"true\\\"}}}\\n            </td>\\n            <td class=\\\"duration\\\" {{bindAttr title=\\\"duration\\\"}}>\\n              {{formatDuration duration}}\\n            </td>\\n            <td class=\\\"finished_at timeago\\\" {{bindAttr title=\\\"finishedAt\\\"}}>\\n              {{formatTime finishedAt}}\\n            </td>\\n          </tr>\\n        {{/view}}\\n      {{/each}}\\n    </tbody>\\n  </table>\\n\\n  <p>\\n    <button {{action showMore on=\\\"click\\\" target=\\\"this\\\" isVisibleBinding=\\\"hasMore\\\"}}>\\n      {{t builds.show_more}}\\n    </button>\\n  </p>\\n{{else}}\\n  <div class=\\\"loading\\\"><span>Loading</span></div>\\n{{/if}}\\n\");Ember.TEMPLATES['builds/show']=Ember.Handlebars.compile(\"{{#with view}}\\n  {{#if build.isLoaded}}\\n    <div id=\\\"build\\\" {{bindAttr class=\\\"color\\\"}}>\\n      <dl id=\\\"summary\\\">\\n        <div class=\\\"left\\\">\\n          <dt>{{t builds.name}}</dt>\\n          <dd class=\\\"number\\\">\\n            <span class=\\\"status\\\"></span>\\n            <a {{bindAttr href=\\\"urlBuild\\\"}} {{action route}}>\\n              {{build.number}}\\n            </a>\\n          </dd>\\n          <dt class=\\\"finished_at_label\\\">{{t builds.finished_at}}</dt>\\n          <dd class=\\\"finished_at timeago\\\" {{bindAttr title=\\\"finishedAt\\\"}}>{{formatTime build.finishedAt}}</dd>\\n          <dt>{{t builds.duration}}</dt>\\n          <dd class=\\\"duration\\\" {{bindAttr title=\\\"startedAt\\\"}}>{{formatDuration build.duration}}</dd>\\n        </div>\\n\\n        <div class=\\\"right\\\">\\n          <dt>{{t builds.commit}}</dt>\\n          <dd class=\\\"commit\\\"><a {{bindAttr href=\\\"urlGithubCommit\\\"}}>{{formatCommit build.commit}}</a></dd>\\n          {{#if commit.compareUrl}}\\n            <dt>{{t builds.compare}}</dt>\\n            <dd class=\\\"compare\\\"><a {{bindAttr href=\\\"commit.compareUrl\\\"}}>{{pathFrom build.commit.compareUrl}}</a></dd>\\n          {{/if}}\\n          {{#if commit.authorName}}\\n            <dt>{{t builds.author}}</dt>\\n            <dd class=\\\"author\\\"><a {{bindAttr href=\\\"urlAuthor\\\"}}>{{build.commit.authorName}}</a></dd>\\n          {{/if}}\\n          {{#if commit.committerName}}\\n            <dt>{{t builds.committer}}</dt>\\n            <dd class=\\\"committer\\\"><a {{bindAttr href=\\\"urlCommitter\\\"}}>{{build.commit.committerName}}</a></dd>\\n          {{/if}}\\n        </div>\\n\\n        <dt>{{t builds.message}}</dt>\\n        <dd class=\\\"message\\\">{{{formatMessage build.commit.message}}}</dd>\\n\\n        {{#unless isMatrix}}\\n          <dt>{{t builds.config}}</dt>\\n          <dd class=\\\"config\\\">{{formatConfig build.config}}</dd>\\n        {{/unless}}\\n      </dl>\\n    </div>\\n\\n    {{#if build.isMatrix}}\\n      {{view Travis.JobsView jobsBinding=\\\"build.requiredJobs\\\" required=\\\"true\\\"}}\\n      {{view Travis.JobsView jobsBinding=\\\"build.allowedFailureJobs\\\"}}\\n    {{else}}\\n      {{view Travis.LogView contextBinding=\\\"build.jobs.firstObject\\\"}}\\n    {{/if}}\\n  {{else}}\\n    <div id=\\\"build\\\" class=\\\"loading\\\">\\n      <span>Loading</span>\\n    </div>\\n  {{/if}}\\n{{/with}}\\n\");Ember.TEMPLATES['jobs/list']=Ember.Handlebars.compile(\"{{#if view.jobs.length}}\\n  {{#if view.required}}\\n    <table id=\\\"jobs\\\" class=\\\"list\\\">\\n      <caption>\\n        {{t jobs.build_matrix}}\\n      </caption>\\n  {{else}}\\n    <table id=\\\"allowed_failure_jobs\\\" class=\\\"list\\\">\\n      <caption>\\n        {{t jobs.allowed_failures}}\\n        <a title=\\\"What's this?\\\" class=\\\"help\\\" name=\\\"help-allowed_failures\\\" {{action popup}}></a>\\n      </caption>\\n  {{/if}}\\n    <thead>\\n      <tr>\\n        {{#each key in view.build.configKeys}}\\n          <th>{{key}}</th>\\n        {{/each}}\\n      </tr>\\n    </thead>\\n    <tbody>\\n      {{#each job in view.jobs}}\\n        {{#view Travis.JobsItemView contextBinding=\\\"job\\\"}}\\n          <td class=\\\"number\\\">\\n            <span class=\\\"status\\\"></span>\\n            <a {{bindAttr href=\\\"view.urlJob\\\"}} {{action route}}>\\n              {{number}}\\n            </a>\\n          </td>\\n          <td class=\\\"duration\\\" {{bindAttr title=\\\"startedAt\\\"}}>\\n            {{formatDuration duration}}\\n          </td>\\n          <td class=\\\"finished_at timeago\\\" {{bindAttr title=\\\"finishedAt\\\"}}>\\n            {{formatTime finishedAt}}\\n          </td>\\n          {{#each value in configValues}}\\n            <td>{{value}}</td>\\n          {{/each}}\\n        {{/view}}\\n      {{/each}}\\n    </tbody>\\n  </table>\\n\\n  {{#unless view.required}}\\n    <div id=\\\"help-allowed_failures\\\" class=\\\"popup\\\">\\n      <h4>{{t \\\"jobs.allowed_failures\\\"}}</h4>\\n      <p>\\n        Allowed Failures are items in your build matrix that are allowed to\\n        fail without causing the entire build to be shown as failed.\\n      </p>\\n      <p>\\n        You can define allowed failures in the build matrix as follows:\\n      </p>\\n      <pre>matrix:\\n  allow_failures:\\n    - rvm: ruby-head</pre>\\n      <p>\\n        This lets you add in experimental and preparatory builds to test against versions or\\n        configurations that you are not ready to officially support.\\n      </p>\\n    </div>\\n  {{/unless}}\\n{{/if}}\\n\");Ember.TEMPLATES['jobs/log']=Ember.Handlebars.compile(\"{{view.logSubscriber}}\\n\\n{{#if log.isLoaded}}\\n  <pre id=\\\"log\\\" class=\\\"ansi\\\"><a href=\\\"#\\\" id=\\\"tail\\\" {{action toggleTailing}}>\\n    <span class=\\\"status\\\"></span>\\n    <label>Follow logs</label>\\n  </a>{{{formatLog log.body}}}</pre>\\n\\n  {{#if sponsor.name}}\\n    <p class=\\\"sponsor\\\">\\n    {{t builds.messages.sponsored_by}}\\n      <a {{bindAttr href=\\\"sponsor.url\\\"}}>{{sponsor.name}}</a>\\n    </p>\\n  {{/if}}\\n\\n  <a href='#' class=\\\"to-top\\\" {{action toTop}}>To top</a>\\n{{else}}\\n  <div id=\\\"log\\\" class=\\\"loading\\\">\\n    <span>Loading</span>\\n  </div>\\n{{/if}}\\n\");Ember.TEMPLATES['jobs/show']=Ember.Handlebars.compile(\"{{#with view}}\\n  {{#if job.isLoaded}}\\n    <div {{bindAttr class=\\\"view.color\\\"}}>\\n      <dl id=\\\"summary\\\">\\n        <div class=\\\"left\\\">\\n          <dt>Job</dt>\\n          <dd class=\\\"number\\\"><a {{bindAttr href=\\\"view.urlJob\\\"}} {{action route}}>{{job.number}}</a></dd>\\n          <dt class=\\\"finished_at_label\\\">{{t jobs.finished_at}}</dt>\\n          <dd class=\\\"finished_at timeago\\\" {{bindAttr title=\\\"finishedAt\\\"}}>{{formatTime job.finishedAt}}</dd>\\n          <dt>{{t jobs.duration}}</dt>\\n          <dd class=\\\"duration\\\" {{bindAttr title=\\\"startedAt\\\"}}>{{formatDuration job.duration}}</dd>\\n        </div>\\n\\n        <div class=\\\"right\\\">\\n          <dt>{{t jobs.commit}}</dt>\\n          <dd class=\\\"commit\\\"><a {{bindAttr href=\\\"urlGithubCommit\\\"}}>{{formatCommit commit}}</a></dd>\\n          {{#if commit.compareUrl}}\\n            <dt>{{t jobs.compare}}</dt>\\n            <dd class=\\\"compare\\\"><a {{bindAttr href=\\\"commit.compareUrl\\\"}}>{{pathFrom commit.compareUrl}}</a></dd>\\n          {{/if}}\\n          {{#if commit.authorName}}\\n            <dt>{{t jobs.author}}</dt>\\n            <dd class=\\\"author\\\"><a {{bindAttr href=\\\"urlAuthor\\\"}}>{{commit.authorName}}</a></dd>\\n          {{/if}}\\n          {{#if commit.committerName}}\\n            <dt>{{t jobs.committer}}</dt>\\n            <dd class=\\\"committer\\\"><a {{bindAttr href=\\\"urlCommitter\\\"}}>{{commit.committerName}}</a></dd>\\n          {{/if}}\\n        </div>\\n\\n        <dt>{{t jobs.message}}</dt>\\n        <dd class=\\\"message\\\">{{formatMessage commit.message}}</dd>\\n        <dt>{{t jobs.config}}</dt>\\n        <dd class=\\\"config\\\">{{formatConfig job.config}}</dd>\\n      </dl>\\n\\n      {{view Travis.LogView contextBinding=\\\"job\\\"}}}\\n    </div>\\n  {{else}}\\n    <div id=\\\"job\\\" class=\\\"loading\\\">\\n      <span>Loading</span>\\n    </div>\\n  {{/if}}\\n{{/with}}\\n\");Ember.TEMPLATES['layouts/home']=Ember.Handlebars.compile(\"<div id=\\\"top\\\">\\n  {{outlet top}}\\n</div>\\n\\n<div id=\\\"left\\\">\\n  {{outlet left}}\\n</div>\\n\\n<div id=\\\"main\\\">\\n  {{outlet main}}\\n</div>\\n\\n<div id=\\\"right\\\">\\n  {{outlet right}}\\n</div>\\n\");Ember.TEMPLATES['layouts/profile']=Ember.Handlebars.compile(\"<div id=\\\"top\\\">\\n  {{outlet top}}\\n</div>\\n\\n<div id=\\\"left\\\">\\n  {{outlet left}}\\n</div>\\n\\n<div id=\\\"main\\\">\\n  {{outlet main}}\\n</div>\\n\\n<div id=\\\"right\\\">\\n  <div id=\\\"slider\\\" {{action toggle target=\\\"Travis.app.slider\\\"}}>\\n    <div class='icon'></div>&nbsp;\\n  </div>\\n\\n  <div class=\\\"box\\\">\\n    <h4>Getting started?</h4>\\n    <p>\\n      Please read our <a href=\\\"http://about.travis-ci.org/docs/user/getting-started\\\">guide</a>.\\n      It will only take a few minutes :)\\n    </p>\\n    <p>\\n      You can find detailled docs on our <a href=\\\"http://about.travis-ci.org/\\\">about</a> site.\\n    </p>\\n    <p>\\n      If you need help please don't hesitate to join\\n      <a href=\\\"irc://irc.freenode.net#travis\\\">#travis</a> on irc.freenode.net\\n      or our <a href=\\\"http://groups.google.com/group/travis-ci\\\">mailinglist</a>.\\n    </p>\\n  </div>\\n</div>\\n\");Ember.TEMPLATES['layouts/sidebar']=Ember.Handlebars.compile(\"<a id=\\\"github\\\" href=\\\"https://github.com/travis-ci\\\" title=\\\"Fork me on GitHub\\\">\\n  {{t layouts.application.fork_me}}\\n</a>\\n\\n<div id=\\\"slider\\\" {{action toggle target=\\\"Travis.app.slider\\\"}}>\\n  <div class='icon'></div>&nbsp;\\n</div>\\n\\n{{outlet decks}}\\n{{outlet workers}}\\n{{outlet queues}}\\n{{outlet links}}\\n\\n<div id=\\\"about\\\" class=\\\"box\\\">\\n  <h4>{{t layouts.about.join}}</h4>\\n  <ul>\\n    <li>{{t layouts.about.repository}}: <a href=\\\"http://github.com/travis-ci\\\">Github</a></li>\\n    <li>{{t layouts.about.twitter}}: <a href=\\\"http://twitter.com/travisci\\\">@travisci</a></li>\\n    <li>{{t layouts.about.mailing_list}}: <a href=\\\"http://groups.google.com/group/travis-ci\\\">travis-ci</a></li>\\n    <li><a href=\\\"irc://irc.freenode.net#travis\\\">irc.freenode.net#travis</a></li>\\n  </ul>\\n</div>\\n\");Ember.TEMPLATES['layouts/simple']=Ember.Handlebars.compile(\"<div id=\\\"top\\\">\\n  {{outlet top}}\\n</div>\\n\\n<div id=\\\"main\\\">\\n  {{outlet main}}\\n</div>\\n\\n\");Ember.TEMPLATES['layouts/top']=Ember.Handlebars.compile(\"<a href=\\\"#\\\" {{action route}}>\\n  <h1>Travis</h1>\\n</a>\\n\\n<ul id=\\\"navigation\\\">\\n  <li {{bindAttr class=\\\"view.classHome\\\"}}>\\n    <a href=\\\"/\\\" {{action route}}>Home</a>\\n  </li>\\n  <li {{bindAttr class=\\\"view.classStats\\\"}}>\\n    <a href=\\\"/stats\\\" {{action route}}>Stats</a>\\n  </li>\\n  <li>\\n    <a href=\\\"http://about.travis-ci.org/blog\\\">Blog</a>\\n  </li>\\n  <li>\\n    <a href=\\\"http://about.travis-ci.org/docs\\\">Docs</a>\\n  </li>\\n  <li {{bindAttr class=\\\"view.classProfile\\\"}}>\\n    <p class=\\\"handle\\\">\\n      <a class=\\\"signed-out\\\" href=\\\"#\\\" {{action signIn target=\\\"Travis.app\\\"}}>{{t layouts.top.github_login}}</a>\\n      <a class=\\\"signed-in\\\"  href=\\\"#\\\" class=\\\"name\\\"><img {{bindAttr src=\\\"view.gravatarUrl\\\"}}>{{user.name}}</a>\\n      <span class=\\\"signing-in\\\">Signing in</span>\\n    </p>\\n    <ul>\\n      <li>\\n        <a href=\\\"/profile\\\" class=\\\"profile\\\" {{action route}}>{{t layouts.top.profile}}</a>\\n      </li>\\n      <li>\\n        <a href=\\\"/\\\" class=\\\"signout\\\" {{action signOut target=\\\"Travis.app\\\"}}>{{t layouts.top.sign_out}}</a>\\n      </li>\\n    </ul>\\n  </li>\\n</ul>\\n\");Ember.TEMPLATES['profile/accounts']=Ember.Handlebars.compile(\"<div id=\\\"search_box\\\">\\n</div>\\n\\n<ul class=\\\"tabs\\\">\\n  <li id=\\\"tab_accounts\\\" {{bindAttr class=\\\"view.classAccounts\\\"}}>\\n    <h5><a name=\\\"accounts\\\" href=\\\"\\\">Accounts</a></h5>\\n  </li>\\n</ul>\\n\\n<div class=\\\"tab\\\">\\n  {{#collection Travis.AccountsListView contentBinding=\\\"controller\\\"}}\\n    <a {{bindAttr href=\\\"view.urlAccount\\\"}} {{action route}} class=\\\"name\\\">{{view.name}}</a>\\n    <p class=\\\"summary\\\">\\n      <span class=\\\"repos_label\\\">Repositories:</span>\\n      <abbr class=\\\"repos\\\">{{view.content.reposCount}}</abbr>\\n    </p>\\n  {{/collection}}\\n</div>\\n\");Ember.TEMPLATES['profile/show']=Ember.Handlebars.compile(\"<h3>{{account.name}}</h3>\\n\\n{{view Travis.ProfileTabsView}}\\n\\n<div class=\\\"tab\\\">\\n  {{outlet pane}}\\n</div>\\n\\n\\n\");Ember.TEMPLATES['profile/tabs']=Ember.Handlebars.compile(\"<ul class=\\\"tabs\\\">\\n  <li id=\\\"tab_hooks\\\" {{bindAttr class=\\\"view.classHooks\\\"}}>\\n    <h5><a name=\\\"hooks\\\" {{action activate}}>Repositories</a></h5>\\n  </li>\\n  {{#if view.displayUser}}\\n    <li id=\\\"tab_user\\\" {{bindAttr class=\\\"view.classUser\\\"}}>\\n      <h5><a name=\\\"user\\\" {{action activate}}>Profile</a></h5>\\n    </li>\\n  {{/if}}\\n</ul>\\n\");Ember.TEMPLATES['profile/tabs/hooks']=Ember.Handlebars.compile(\"<p class=\\\"tip\\\">\\n  {{{t profiles.show.message.your_repos}}}\\n</p>\\n\\n{{#if hooks.isLoaded}}\\n  {{#if user.isSyncing}}\\n    <p class=\\\"message loading\\\">\\n      <span>Please wait while we sync from GitHub</span>\\n    </p>\\n  {{else}}\\n    <p class=\\\"message\\\">\\n      Last synchronized from GitHub: {{formatTime user.syncedAt}}\\n      <button class=\\\"sync_now\\\" {{action sync target=\\\"user\\\"}}>\\n        Sync now\\n      </button>\\n    </p>\\n\\n    <ul id=\\\"hooks\\\">\\n      {{#each hook in hooks}}\\n        <li {{bindAttr class=\\\"hook.active:active\\\"}}>\\n          <a {{bindAttr href=\\\"hook.urlGithub\\\"}} rel=\\\"nofollow\\\">{{hook.slug}}</a>\\n          <p class=\\\"description\\\">{{hook.description}}</p>\\n\\n          <div class=\\\"controls\\\">\\n            <a {{bindAttr href=\\\"hook.urlGithubAdmin\\\"}} class=\\\"github-admin tool-tip\\\" title=\\\"Github service hooks admin page\\\"></a>\\n            <a {{action toggle target=\\\"hook\\\"}} class=\\\"switch\\\"></a>\\n          </div>\\n        </li>\\n      {{else}}\\n        <li>\\n          You do not seem to have any repositories that we could sync.\\n        </li>\\n      {{/each}}\\n    </ul>\\n  {{/if}}\\n{{else}}\\n  <p class=\\\"message loading\\\">\\n    <span>Loading</span>\\n  </p>\\n{{/if}}\\n\\n\\n\");Ember.TEMPLATES['profile/tabs/user']=Ember.Handlebars.compile(\"<img {{bindAttr src=\\\"view.gravatarUrl\\\"}}>\\n\\n<dl class=\\\"profile\\\">\\n  <dt>\\n    {{t profiles.show.github}}:\\n  </dt>\\n  <dd>\\n    <a {{bindAttr href=\\\"urlGithub\\\"}}>{{user.login}}</a>\\n  </dd>\\n  <dt>\\n    {{t profiles.show.email}}:\\n  </dt>\\n  <dd>\\n    {{user.email}}\\n  </dd>\\n  <dt>\\n    {{t profiles.show.token}}:\\n  </dt>\\n  <dd>\\n    {{user.token}}\\n  </dd>\\n</dl>\\n\\n<form>\\n  {{view Ember.Select\\n     contentBinding=\\\"view.locales\\\"\\n     selectionBinding=\\\"user.locale\\\"\\n     optionLabelPath=\\\"content.name\\\"\\n     optionValuePath=\\\"content.key\\\"}}\\n\\n  <button name=\\\"commit\\\" {{action saveLocale}}>\\n    {{t profiles.show.update_locale}}\\n  </button>\\n</form>\\n\\n\\n\");Ember.TEMPLATES['queues/list']=Ember.Handlebars.compile(\"<ul id=\\\"queues\\\">\\n{{#each queue in controller}}\\n  <li class=\\\"queue\\\">\\n    <h4>{{t queue}}: {{queue.name}}</h4>\\n    <ul {{bindAttr id=\\\"queue.id\\\"}}>\\n      {{#each job in queue}}\\n        {{#view Travis.QueueItemView jobBinding=\\\"job\\\"}}\\n          <li>\\n            <a {{bindAttr href=\\\"view.urlJob\\\"}} {{action route}}>\\n              <span class=\\\"slug\\\">\\n                {{job.repository.slug}}\\n              </span>\\n              #{{job.number}}\\n            </a>\\n          </li>\\n        {{/view}}\\n      {{else}}\\n        {{t no_job}}\\n      {{/each}}\\n    </ul>\\n  </li>\\n{{/each}}\\n</ul>\\n\");Ember.TEMPLATES['repos/list']=Ember.Handlebars.compile(\"<div id=\\\"search_box\\\">\\n  {{view Ember.TextField valueBinding=\\\"controller.search\\\"}}\\n</div>\\n\\n{{view Travis.ReposListTabsView}}\\n\\n<a {{action toggleInfo}} class=\\\"toggle-info\\\"></a>\\n\\n<div class=\\\"tab\\\">\\n  {{#collection Travis.RepositoriesListView contentBinding=\\\"controller\\\"}}\\n    {{#with view.repository}}\\n      <div class=\\\"slug-and-status\\\">\\n        <span class=\\\"status\\\"></span>\\n        <a {{bindAttr href=\\\"view.urlRepository\\\"}} {{action route}} class=\\\"slug\\\">{{slug}}</a>\\n      </div>\\n      <a {{bindAttr href=\\\"view.urlLastBuild\\\"}} {{action route}} class=\\\"last_build\\\">{{lastBuildNumber}}</a>\\n\\n      <p class=\\\"summary\\\">\\n        <span class=\\\"duration_label\\\">{{t repositories.duration}}:</span>\\n        <abbr class=\\\"duration\\\" {{bindAttr title=\\\"lastBuildStartedAt\\\"}}>{{formatDuration lastBuildDuration}}</abbr>,\\n        <span class=\\\"finished_at_label\\\">{{t repositories.finished_at}}:</span>\\n        <abbr class=\\\"finished_at timeago\\\" {{bindAttr title=\\\"lastBuildFinishedAt\\\"}}>{{formatTime lastBuildFinishedAt}}</abbr>\\n      </p>\\n\\n      <span class=\\\"indicator\\\"></span>\\n\\n      {{#if description}}\\n        <div class=\\\"info\\\">\\n          <p class=\\\"description\\\">{{description}}</p>\\n        </div>\\n      {{/if}}\\n    {{/with}}\\n  {{/collection}}\\n</div>\\n\");Ember.TEMPLATES['repos/list/tabs']=Ember.Handlebars.compile(\"<ul class=\\\"tabs\\\">\\n  <li id=\\\"tab_recent\\\" {{bindAttr class=\\\"view.classRecent\\\"}}>\\n    <h5><a name=\\\"recent\\\" {{action activate}}>{{t layouts.application.recent}}</a></h5>\\n  </li>\\n  <li id=\\\"tab_owned\\\" {{bindAttr class=\\\"view.classOwned\\\"}}>\\n    <h5><a name=\\\"owned\\\" {{action activate}}>{{t layouts.application.my_repositories}}</a></h5>\\n  </li>\\n  <li id=\\\"tab_search\\\" {{bindAttr class=\\\"view.classSearch\\\"}}>\\n    <h5><a name=\\\"search\\\" {{action activate}}>{{t layouts.application.search}}</a></h5>\\n  </li>\\n</ul>\\n\\n\");Ember.TEMPLATES['repos/show']=Ember.Handlebars.compile(\"<div id=\\\"repository\\\" {{bindAttr class=\\\"view.class\\\"}}>\\n  {{#if view.repository.isLoaded}}\\n    {{#with view.repository}}\\n      <h3>\\n        <a {{bindAttr href=\\\"view.urlGithub\\\"}}>{{slug}}</a>\\n      </h3>\\n\\n      <p class=\\\"description\\\">{{description}}</p>\\n\\n      <ul class=\\\"github-stats\\\">\\n        <li class=\\\"language\\\">\\n          {{lastBuildLanguage}}\\n        </li>\\n        <li>\\n          <a class=\\\"watchers\\\" title=\\\"Watchers\\\" {{bindAttr href=\\\"view.urlGithubWatchers\\\"}}>\\n            {{stats.watchers}}\\n          </a>\\n        </li>\\n        <li>\\n          <a class=\\\"forks\\\" title=\\\"Forks\\\" {{bindAttr href=\\\"view.urlGithubNetwork\\\"}}>\\n            {{stats.forks}}\\n          </a>\\n        </li>\\n      </ul>\\n\\n      {{view Travis.RepoShowTabsView}}\\n      {{view Travis.RepoShowToolsView}}\\n    {{/with}}\\n\\n  {{else}}\\n    <span>Loading</span>\\n  {{/if}}\\n\\n  <div class=\\\"tab\\\">\\n    {{outlet pane}}\\n  </div>\\n</div>\\n\\n\");Ember.TEMPLATES['repos/show/tabs']=Ember.Handlebars.compile(\"<ul class=\\\"tabs\\\">\\n  <li id=\\\"tab_current\\\" {{bindAttr class=\\\"view.classCurrent\\\"}}>\\n    <h5>\\n      <a {{bindAttr href=\\\"view.urlRepository\\\"}} {{action route}}>\\n        {{t repositories.tabs.current}}\\n      </a>\\n    </h5>\\n  </li>\\n  <li id=\\\"tab_builds\\\" {{bindAttr class=\\\"view.classBuilds\\\"}}>\\n    <h5>\\n      <a {{bindAttr href=\\\"view.urlBuilds\\\"}} {{action route}}>\\n        {{t repositories.tabs.build_history}}\\n      </a>\\n    </h5>\\n  </li>\\n  <li id=\\\"tab_pull_requests\\\" {{bindAttr class=\\\"view.classPullRequests\\\"}}>\\n    <h5>\\n      <a {{bindAttr href=\\\"view.urlPullRequests\\\"}} {{action route}}>\\n        {{t repositories.tabs.pull_requests}}\\n      </a>\\n    </h5>\\n  </li>\\n  <li id=\\\"tab_branches\\\" {{bindAttr class=\\\"view.classBranches\\\"}}>\\n    <h5>\\n      <a {{bindAttr href=\\\"view.urlBranches\\\"}} {{action route}}>\\n        {{t repositories.tabs.branches}}\\n      </a>\\n    </h5>\\n  </li>\\n  <li id=\\\"tab_build\\\" {{bindAttr class=\\\"view.classBuild\\\"}}>\\n    <h5>\\n      <a {{bindAttr href=\\\"view.urlBuild\\\"}} {{action route}}>\\n        {{t repositories.tabs.build}} {{view.build.number}}\\n      </a>\\n    </h5>\\n  </li>\\n  <li id=\\\"tab_job\\\" {{bindAttr class=\\\"view.classJob\\\"}}>\\n    <h5>\\n      <a {{bindAttr href=\\\"view.urlJob\\\"}} {{action route}}>\\n        {{t repositories.tabs.job}} {{view.job.number}}\\n      </a>\\n    </h5>\\n  </li>\\n</ul>\\n\");Ember.TEMPLATES['repos/show/tools']=Ember.Handlebars.compile(\"<div id=\\\"tools\\\">\\n  <a href=\\\"#\\\" {{action toggle}}></a>\\n  <div class=\\\"pane\\\">\\n    <p>\\n      <label>{{t repositories.branch}}:</label>\\n      {{#if view.branches.isLoaded}}\\n        {{view Ember.Select contentBinding=\\\"view.branches\\\" selectionBinding=\\\"view.branch\\\" optionLabelPath=\\\"content.commit.branch\\\" optionValuePath=\\\"content.commit.branch\\\"}}\\n      {{else}}\\n        <span class=\\\"loading\\\"></span>\\n      {{/if}}\\n    </p>\\n    <p>\\n      <label>{{t repositories.image_url}}:</label>\\n      <input type=\\\"text\\\" class=\\\"url\\\" {{bindAttr value=\\\"view.urlStatusImage\\\"}}></input>\\n    </p>\\n    <p>\\n      <label>{{t repositories.markdown}}:</label>\\n      <input type=\\\"text\\\" class=\\\"markdown\\\" {{bindAttr value=\\\"view.markdownStatusImage\\\"}}></input>\\n    </p>\\n    <p>\\n      <label>{{t repositories.textile}}:</label>\\n      <input type=\\\"text\\\" class=\\\"textile\\\" {{bindAttr value=\\\"view.textileStatusImage\\\"}}></input>\\n    </p>\\n    <p>\\n      <label>{{t repositories.rdoc}}:</label>\\n      <input type=\\\"text\\\" class=\\\"rdoc\\\" {{bindAttr value=\\\"view.rdocStatusImage\\\"}}></input>\\n    </p>\\n  </div>\\n</div>\\n\");Ember.TEMPLATES['sponsors/decks']=Ember.Handlebars.compile(\"<h4>{{t layouts.application.sponsers}}</h4>\\n\\n<ul class=\\\"sponsors top\\\">\\n  {{#each deck in controller}}\\n    {{#each deck}}\\n      <li {{bindAttr class=\\\"type\\\"}}>\\n        <a {{bindAttr href=\\\"url\\\"}}>\\n          <img {{bindAttr src=\\\"image\\\"}}>\\n        </a>\\n      </li>\\n    {{/each}}\\n  {{/each}}\\n</ul>\\n\\n<p class=\\\"hint\\\">\\n  <a href=\\\"https://love.travis-ci.org/sponsors\\\">\\n    {{{t layouts.application.sponsors_link}}}\\n  </a>\\n</p>\\n\");Ember.TEMPLATES['sponsors/links']=Ember.Handlebars.compile(\"<div class=\\\"box\\\">\\n  <h4>{{t layouts.application.sponsers}}</h4>\\n\\n  <ul class=\\\"sponsors bottom\\\">\\n    {{#each controller}}\\n      <li>\\n        {{{link}}}\\n      </li>\\n    {{/each}}\\n  </ul>\\n\\n  <p class=\\\"hint\\\">\\n    <a href=\\\"https://love.travis-ci.org/sponsors\\\">\\n      {{{t layouts.application.sponsors_link}}}\\n    </a>\\n  </p>\\n</div>\\n\\n\");Ember.TEMPLATES['stats/show']=Ember.Handlebars.compile(\"<div id=\\\"repos_stats\\\"></div>\\n<div id=\\\"tests_stats\\\"></div>\\n\");Ember.TEMPLATES['workers/list']=Ember.Handlebars.compile(\"{{#view Travis.WorkersView}}\\n  <h4>\\n    {{t workers}}\\n    <a id=\\\"toggle-workers\\\" {{action toggleWorkers target=\\\"parentView.parentView\\\"}}></a>\\n  </h4>\\n  <ul id=\\\"workers\\\">\\n    {{#each group in controller.groups}}\\n      {{#view Travis.WorkersListView}}\\n        <li class=\\\"group\\\">\\n          <h5 {{action toggle}}>\\n            {{group.firstObject.host}}\\n          </h5>\\n          <ul>\\n          {{#each worker in group}}\\n            {{#view Travis.WorkersItemView workerBinding=\\\"worker\\\"}}\\n              <li class=\\\"worker\\\">\\n                <div class=\\\"status\\\"></div>\\n                {{#if worker.isWorking}}\\n                  <a {{bindAttr href=\\\"worker.urlJob\\\"}} {{bindAttr title=\\\"worker.lastSeenAt\\\"}} {{action route}}>\\n                    {{view.display}}\\n                  </a>\\n                {{else}}\\n                  {{view.display}}\\n                {{/if}}\\n              </li>\\n            {{/view}}\\n          {{/each}}\\n          </ul>\\n        </li>\\n      {{/view}}\\n    {{else}}\\n      No workers\\n    {{/each}}\\n  </ul>\\n{{/view}}\\n\");\n})();\n//@ sourceURL=templates");minispade.register('app', "(function() {(function() {\nminispade.require('travis');\nminispade.require('auth');\nminispade.require('controllers');\nminispade.require('helpers');\nminispade.require('models');\nminispade.require('pusher');\nminispade.require('routes');\nminispade.require('slider');\nminispade.require('store');\nminispade.require('tailing');\nminispade.require('templates');\nminispade.require('views');\nminispade.require('config/locales');\nminispade.require('data/sponsors');\n\n  Travis.reopen({\n    App: Em.Application.extend({\n      currentUserBinding: 'auth.user',\n      accessTokenBinding: 'auth.user.accessToken',\n      authStateBinding: 'auth.state',\n      init: function() {\n        this._super();\n        this.connect();\n        this.store = Travis.Store.create();\n        this.store.loadMany(Travis.Sponsor, Travis.SPONSORS);\n        this.set('auth', Travis.Auth.create({\n          store: this.store,\n          endpoint: Travis.config.api_endpoint\n        }));\n        this.slider = new Travis.Slider();\n        this.routes = new Travis.Routes();\n        this.pusher = new Travis.Pusher();\n        return this.tailing = new Travis.Tailing();\n      },\n      signIn: function() {\n        return this.get('auth').signIn();\n      },\n      signOut: function() {\n        this.get('auth').signOut();\n        return this.routes.route('');\n      },\n      render: function(name, action, params) {\n        var layout;\n        layout = this.connectLayout(name);\n        layout.activate(action, params || {});\n        return $('body').attr('id', name);\n      },\n      receive: function() {\n        return this.store.receive.apply(this.store, arguments);\n      },\n      connectLayout: function(name) {\n        var viewClass;\n        if (this.get('layout.name') !== name) {\n          name = $.camelize(name);\n          viewClass = Travis[\"\" + name + \"Layout\"];\n          this.layout = Travis[\"\" + name + \"Controller\"].create({\n            parent: this.controller\n          });\n          this.controller.connectOutlet({\n            outletName: 'layout',\n            controller: this.layout,\n            viewClass: viewClass\n          });\n        }\n        return this.layout;\n      },\n      connect: function() {\n        var view;\n        this.controller = Em.Controller.create();\n        view = Em.View.create({\n          template: Em.Handlebars.compile('{{outlet layout}}'),\n          controller: this.controller\n        });\n        return view.appendTo(this.get('rootElement') || 'body');\n      }\n    })\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=app");minispade.register('auth', "(function() {(function() {\n\n  this.Travis.Auth = Ember.Object.extend({\n    iframe: $('<iframe id=\"auth-frame\" />').hide(),\n    timeout: 5000,\n    state: 'signed-out',\n    receivingEnd: \"\" + location.protocol + \"//\" + location.host,\n    init: function() {\n      var _this = this;\n      this.iframe.appendTo('body');\n      window.addEventListener('message', function(e) {\n        return _this.receiveMessage(e);\n      });\n      return Ember.run.next(this, this.loadUser);\n    },\n    loadUser: function() {\n      var user;\n      if (user = typeof sessionStorage !== \"undefined\" && sessionStorage !== null ? sessionStorage.getItem('travis.user') : void 0) {\n        return this.setUser(user);\n      } else if (typeof localStorage !== \"undefined\" && localStorage !== null ? localStorage.getItem('travis.auto_signin') : void 0) {\n        return this.trySignIn();\n      }\n    },\n    signIn: function() {\n      this.set('state', 'signing-in');\n      this.trySignIn();\n      return Ember.run.later(this, this.checkSignIn.bind(this), this.timeout);\n    },\n    trySignIn: function() {\n      return this.iframe.attr('src', \"\" + this.endpoint + \"/auth/post_message?origin=\" + this.receivingEnd);\n    },\n    checkSignIn: function() {\n      if (this.get('state') === 'signing-in') {\n        return this.forceSignIn();\n      }\n    },\n    forceSignIn: function() {\n      if (typeof localStorage !== \"undefined\" && localStorage !== null) {\n        localStorage.setItem('travis.auto_signin', 'true');\n      }\n      return window.location = \"\" + this.endpoint + \"/auth/handshake?redirect_uri=\" + location;\n    },\n    signOut: function() {\n      if (typeof localStorage !== \"undefined\" && localStorage !== null) {\n        localStorage.clear();\n      }\n      if (typeof sessionStorage !== \"undefined\" && sessionStorage !== null) {\n        sessionStorage.clear();\n      }\n      return this.setUser();\n    },\n    setUser: function(data) {\n      var user;\n      if (typeof data === 'string') {\n        data = JSON.parse(data);\n      }\n      if (data) {\n        user = this.storeUser(data);\n      }\n      this.set('state', user ? 'signed-in' : 'signed-out');\n      return this.set('user', user ? user : void 0);\n    },\n    storeUser: function(data) {\n      if (typeof localStorage !== \"undefined\" && localStorage !== null) {\n        localStorage.setItem('travis.auto_signin', 'true');\n      }\n      if (typeof sessionStorage !== \"undefined\" && sessionStorage !== null) {\n        sessionStorage.setItem('travis.user', JSON.stringify(data));\n      }\n      data.user.access_token = data.token;\n      this.store.load(Travis.User, data.user);\n      this.store.loadMany(Travis.Account, data.accounts);\n      return Travis.User.find(data.user.id);\n    },\n    receiveMessage: function(event) {\n      if (event.origin === this.expectedOrigin()) {\n        this.setUser(event.data);\n        return console.log(\"signed in as \" + event.data.user.login);\n      } else {\n        return console.log(\"unexpected message \" + event.origin + \": \" + event.data);\n      }\n    },\n    expectedOrigin: function() {\n      if (this.endpoint[0] === '/') {\n        return this.receivingEnd;\n      } else {\n        return this.endpoint;\n      }\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=auth");minispade.register('controllers', "(function() {(function() {\nminispade.require('helpers');\nminispade.require('travis/ticker');\n\n  Travis.reopen({\n    Controller: Em.Controller.extend({\n      init: function() {\n        var klass, name, _i, _len, _ref, _results;\n        _ref = Array.prototype.slice.apply(arguments);\n        _results = [];\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          name = _ref[_i];\n          name = \"\" + ($.camelize(name, false)) + \"Controller\";\n          klass = Travis[$.camelize(name)] || Em.Controller;\n          _results.push(this[name] = klass.create({\n            parent: this,\n            namespace: Travis,\n            controllers: this\n          }));\n        }\n        return _results;\n      },\n      connectTop: function() {\n        this.connectOutlet({\n          outletName: 'top',\n          controller: this.topController,\n          viewClass: Travis.TopView\n        });\n        return this.topController.set('tab', this.get('name'));\n      },\n      connectOutlet: function() {\n        var view, _connectedOutletViews;\n        view = this._super.apply(this, arguments);\n        if (view) {\n          _connectedOutletViews = Travis.app.get('_connectedOutletViews');\n          if (!_connectedOutletViews) {\n            _connectedOutletViews = [];\n          }\n          _connectedOutletViews.pushObject(view);\n          Travis.app.set('_connectedOutletViews', _connectedOutletViews);\n        }\n        return view;\n      }\n    }),\n    TopController: Em.Controller.extend({\n      userBinding: 'Travis.app.currentUser'\n    })\n  });\nminispade.require('controllers/accounts');\nminispade.require('controllers/builds');\nminispade.require('controllers/home');\nminispade.require('controllers/profile');\nminispade.require('controllers/repositories');\nminispade.require('controllers/repository');\nminispade.require('controllers/sidebar');\nminispade.require('controllers/stats');\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers");minispade.register('controllers/accounts', "(function() {(function() {\n\n  Travis.AccountsController = Ember.ArrayController.extend({\n    defaultTab: 'accounts',\n    init: function() {\n      return this.activate(this.defaultTab);\n    },\n    activate: function(tab, params) {\n      this.set('tab', tab);\n      return this[\"view\" + ($.camelize(tab))](params);\n    },\n    viewAccounts: function() {\n      return this.set('content', Travis.Account.filter());\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers/accounts");minispade.register('controllers/builds', "(function() {(function() {\n\n  Travis.BuildsController = Em.ArrayController.extend({\n    repositoryBinding: 'parent.repository',\n    contentBinding: 'parent.builds'\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers/builds");minispade.register('controllers/home', "(function() {(function() {\n\n  Travis.HomeController = Travis.Controller.extend({\n    name: 'home',\n    init: function() {\n      this._super('top', 'repositories', 'repository', 'sidebar');\n      this.connectTop();\n      this.connectOutlet({\n        outletName: 'left',\n        controller: this.repositoriesController,\n        viewClass: Travis.RepositoriesView\n      });\n      this.connectOutlet({\n        outletName: 'main',\n        controller: this.repositoryController,\n        viewClass: Travis.RepositoryView\n      });\n      return this.connectOutlet({\n        outletName: 'right',\n        controller: this.sidebarController,\n        viewClass: Travis.SidebarView\n      });\n    },\n    activate: function(action, params) {\n      return this.repositoryController.activate(action, params);\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers/home");minispade.register('controllers/profile', "(function() {(function() {\n\n  Travis.ProfileController = Travis.Controller.extend({\n    name: 'profile',\n    userBinding: 'Travis.app.currentUser',\n    init: function() {\n      this._super('top', 'accounts');\n      this.connectTop();\n      this.connectOutlet({\n        outletName: 'left',\n        controller: this.accountsController,\n        viewClass: Travis.AccountsView\n      });\n      this.connectOutlet({\n        outletName: 'main',\n        controller: this,\n        viewClass: Travis.ProfileView\n      });\n      return this.accounts = this.accountsController.get('content');\n    },\n    account: (function() {\n      var login;\n      login = this.get('params.login') || Travis.app.get('currentUser.login');\n      return this.accounts.toArray().filter(function(account) {\n        if (account.get('login') === login) {\n          return account;\n        }\n      })[0];\n    }).property('accounts.length', 'params.login'),\n    activate: function(action, params) {\n      this.setParams(params || this.get('params'));\n      return this[\"view\" + ($.camelize(action))]();\n    },\n    viewHooks: function() {\n      this.connectTab('hooks');\n      return this.set('hooks', Travis.Hook.find({\n        owner_name: this.get('params.login') || Travis.app.get('currentUser.login')\n      }));\n    },\n    viewUser: function() {\n      return this.connectTab('user');\n    },\n    connectTab: function(tab) {\n      var viewClass;\n      viewClass = Travis[\"\" + ($.camelize(tab)) + \"View\"];\n      this.set('tab', tab);\n      return this.connectOutlet({\n        outletName: 'pane',\n        controller: this,\n        viewClass: viewClass\n      });\n    },\n    setParams: function(params) {\n      var key, value, _results;\n      this.set('params', {});\n      _results = [];\n      for (key in params) {\n        value = params[key];\n        _results.push(this.set(\"params.\" + key, params[key]));\n      }\n      return _results;\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers/profile");minispade.register('controllers/repositories', "(function() {(function() {\n\n  Travis.RepositoriesController = Ember.ArrayController.extend({\n    defaultTab: 'recent',\n    sortProperties: ['sortOrder'],\n    init: function() {\n      this.activate(this.defaultTab);\n      return Ember.run.later(this.updateTimes.bind(this), Travis.INTERVALS.updateTimes);\n    },\n    updateTimes: function() {\n      var content;\n      if (content = this.get('content')) {\n        content.forEach(function(r) {\n          return r.updateTimes();\n        });\n      }\n      return Ember.run.later(this.updateTimes.bind(this), Travis.INTERVALS.updateTimes);\n    },\n    activate: function(tab, params) {\n      this.set('tab', tab);\n      return this[\"view\" + ($.camelize(tab))](params);\n    },\n    viewRecent: function() {\n      return this.set('content', Travis.Repository.find());\n    },\n    viewOwned: function() {\n      return this.set('content', Travis.Repository.ownedBy(Travis.app.get('currentUser.login')));\n    },\n    viewSearch: function(params) {\n      return this.set('content', Travis.Repository.search(params.search));\n    },\n    searchObserver: (function() {\n      var search, tab;\n      search = this.get('search');\n      tab = search ? 'search' : 'recent';\n      return this.activate(tab, {\n        search: search\n      });\n    }).observes('search')\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers/repositories");minispade.register('controllers/repository', "(function() {(function() {\n\n  Travis.RepositoryController = Travis.Controller.extend({\n    bindings: [],\n    params: {},\n    init: function() {\n      this._super('builds', 'build', 'job');\n      return Ember.run.later(this.updateTimes.bind(this), Travis.INTERVALS.updateTimes);\n    },\n    updateTimes: function() {\n      var build, builds;\n      if (builds = this.get('builds')) {\n        builds.forEach(function(b) {\n          return b.updateTimes();\n        });\n      }\n      if (build = this.get('build')) {\n        build.updateTimes();\n        build.get('jobs').forEach(function(j) {\n          return j.updateTimes();\n        });\n      }\n      return Ember.run.later(this.updateTimes.bind(this), Travis.INTERVALS.updateTimes);\n    },\n    activate: function(action, params) {\n      this._unbind();\n      this.setParams(params);\n      return this[\"view\" + ($.camelize(action))]();\n    },\n    viewIndex: function() {\n      this._bind('repository', 'controllers.repositoriesController.firstObject');\n      this._bind('build', 'repository.lastBuild');\n      return this.connectTab('current');\n    },\n    viewCurrent: function() {\n      this.connectTab('current');\n      this._bind('repository', 'repositoriesByParams.firstObject');\n      return this._bind('build', 'repository.lastBuild');\n    },\n    viewBuilds: function() {\n      this.connectTab('builds');\n      this._bind('repository', 'repositoriesByParams.firstObject');\n      return this._bind('builds', 'repository.builds');\n    },\n    viewPullRequests: function() {\n      this.connectTab('pull_requests');\n      this._bind('repository', 'repositoriesByParams.firstObject');\n      return this._bind('builds', 'repository.pullRequests');\n    },\n    viewBranches: function() {\n      this.connectTab('branches');\n      this._bind('repository', 'repositoriesByParams.firstObject');\n      return this._bind('builds', 'repository.branches');\n    },\n    viewBuild: function() {\n      this._bind('repository', 'repositoriesByParams.firstObject');\n      this._bind('build', 'buildById');\n      return this.connectTab('build');\n    },\n    viewJob: function() {\n      this._bind('repository', 'repositoriesByParams.firstObject');\n      this._bind('build', 'job.build');\n      this._bind('job', 'jobById');\n      return this.connectTab('job');\n    },\n    repositoriesByParams: (function() {\n      return Travis.Repository.bySlug(\"\" + (this.get('params.owner')) + \"/\" + (this.get('params.name')));\n    }).property('params.owner', 'params.name'),\n    buildById: (function() {\n      var id;\n      if (id = this.get('params.id')) {\n        return Travis.Build.find(id);\n      }\n    }).property('params.id'),\n    jobById: (function() {\n      var id;\n      if (id = this.get('params.id')) {\n        return Travis.Job.find(id);\n      }\n    }).property('params.id'),\n    repositoryObserver: (function() {\n      var repository;\n      repository = this.get('repository');\n      if (repository) {\n        return repository.select();\n      }\n    }).observes('repository.id'),\n    connectTab: function(tab) {\n      var name, viewClass;\n      name = tab === 'current' ? 'build' : tab;\n      viewClass = name === 'builds' || name === 'branches' || name === 'pull_requests' ? Travis.BuildsView : Travis[\"\" + ($.camelize(name)) + \"View\"];\n      this.set('tab', tab);\n      return this.connectOutlet({\n        outletName: 'pane',\n        controller: this,\n        viewClass: viewClass\n      });\n    },\n    setParams: function(params) {\n      var key, value, _results;\n      _results = [];\n      for (key in params) {\n        value = params[key];\n        _results.push(this.set(\"params.\" + key, params[key]));\n      }\n      return _results;\n    },\n    _bind: function(to, from) {\n      return this.bindings.push(Ember.oneWay(this, to, from));\n    },\n    _unbind: function() {\n      var binding, _i, _len, _ref;\n      _ref = this.bindings;\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        binding = _ref[_i];\n        binding.disconnect(this);\n      }\n      return this.bindings.length = 0;\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers/repository");minispade.register('controllers/sidebar', "(function() {(function() {\n\n  Travis.reopen({\n    SidebarController: Em.ArrayController.extend({\n      init: function() {\n        this.tickables = [];\n        Travis.Ticker.create({\n          target: this,\n          interval: Travis.INTERVALS.sponsors\n        });\n        this.connectWorkers(Travis.Worker.find());\n        this.connectQueues(Travis.QUEUES);\n        this.connectSponsors('decks', Travis.Sponsor.decks(), 1);\n        return this.connectSponsors('links', Travis.Sponsor.links(), 6);\n      },\n      connectSponsors: function(name, sponsors, perPage) {\n        var controller, viewClass;\n        controller = Travis.SponsorsController.create({\n          perPage: perPage,\n          content: sponsors\n        });\n        viewClass = Em.View.extend({\n          templateName: \"sponsors/\" + name\n        });\n        this.connectOutlet({\n          outletName: name,\n          controller: controller,\n          viewClass: viewClass\n        });\n        return this.tickables.push(controller);\n      },\n      connectWorkers: function(workers) {\n        var controller, viewClass;\n        controller = Travis.WorkersController.create({\n          content: workers\n        });\n        viewClass = Em.View.extend({\n          templateName: 'workers/list'\n        });\n        return this.connectOutlet({\n          outletName: 'workers',\n          controller: controller,\n          viewClass: viewClass\n        });\n      },\n      connectQueues: function(queues) {\n        var controller, queue, viewClass;\n        queues = (function() {\n          var _i, _len, _results;\n          _results = [];\n          for (_i = 0, _len = queues.length; _i < _len; _i++) {\n            queue = queues[_i];\n            _results.push(Em.ArrayController.create({\n              content: Travis.Job.queued(queue.name),\n              id: \"queue_\" + queue.name,\n              name: queue.display\n            }));\n          }\n          return _results;\n        })();\n        controller = Travis.QueuesController.create({\n          content: queues\n        });\n        viewClass = Em.View.extend({\n          templateName: 'queues/list'\n        });\n        return this.connectOutlet({\n          outletName: 'queues',\n          controller: controller,\n          viewClass: viewClass\n        });\n      },\n      tick: function() {\n        var tickable, _i, _len, _ref, _results;\n        _ref = this.tickables;\n        _results = [];\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          tickable = _ref[_i];\n          _results.push(tickable.tick());\n        }\n        return _results;\n      }\n    }),\n    QueuesController: Em.ArrayController.extend(),\n    WorkersController: Em.ArrayController.extend({\n      groups: (function() {\n        var groups, host, worker, _i, _len, _ref;\n        groups = {};\n        _ref = this.get('content').toArray();\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          worker = _ref[_i];\n          host = worker.get('host');\n          if (!groups[host]) {\n            groups[host] = Em.ArrayProxy.create({\n              content: []\n            });\n          }\n          groups[host].pushObject(worker);\n        }\n        return $.values(groups);\n      }).property('content.length')\n    }),\n    SponsorsController: Em.ArrayController.extend({\n      page: 0,\n      arrangedContent: (function() {\n        return this.get('shuffled').slice(this.start(), this.end());\n      }).property('shuffled.length', 'page'),\n      shuffled: (function() {\n        var content;\n        if (content = this.get('content')) {\n          return $.shuffle(content);\n        } else {\n          return [];\n        }\n      }).property('content.length'),\n      tick: function() {\n        return this.set('page', this.isLast() ? 0 : this.get('page') + 1);\n      },\n      pages: (function() {\n        var length;\n        length = this.get('content.length');\n        if (length) {\n          return parseInt(length / this.get('perPage') + 1);\n        } else {\n          return 1;\n        }\n      }).property('length'),\n      isLast: function() {\n        return this.get('page') === this.get('pages') - 1;\n      },\n      start: function() {\n        return this.get('page') * this.get('perPage');\n      },\n      end: function() {\n        return this.start() + this.get('perPage');\n      }\n    })\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers/sidebar");minispade.register('controllers/stats', "(function() {(function() {\n\n  Travis.StatsController = Travis.Controller.extend({\n    name: 'stats',\n    init: function() {\n      this._super('top');\n      this.connectTop();\n      return this.connectOutlet({\n        outletName: 'main',\n        controller: this,\n        viewClass: Travis.StatsView\n      });\n    },\n    activate: function(action, params) {}\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers/stats");minispade.register('helpers', "(function() {(function() {\nminispade.require('helpers/handlebars');\nminispade.require('helpers/helpers');\nminispade.require('helpers/urls');\n\n}).call(this);\n\n})();\n//@ sourceURL=helpers");minispade.register('helpers/handlebars', "(function() {(function() {\n  var safe;\nminispade.require('ext/ember/bound_helper');\n\n  safe = function(string) {\n    return new Handlebars.SafeString(string);\n  };\n\n  Handlebars.registerHelper('tipsy', function(text, tip) {\n    return safe('<span class=\"tool-tip\" original-title=\"' + tip + '\">' + text + '</span>');\n  });\n\n  Handlebars.registerHelper('t', function(key) {\n    return safe(I18n.t(key));\n  });\n\n  Ember.registerBoundHelper('formatTime', function(value, options) {\n    return safe(Travis.Helpers.timeAgoInWords(value) || '-');\n  });\n\n  Ember.registerBoundHelper('formatDuration', function(duration, options) {\n    return safe(Travis.Helpers.timeInWords(duration));\n  });\n\n  Ember.registerBoundHelper('formatCommit', function(commit, options) {\n    if (commit) {\n      return safe(Travis.Helpers.formatCommit(commit.get('sha'), commit.get('branch')));\n    }\n  });\n\n  Ember.registerBoundHelper('formatSha', function(sha, options) {\n    return safe(Travis.Helpers.formatSha(sha));\n  });\n\n  Ember.registerBoundHelper('pathFrom', function(url, options) {\n    return safe(Travis.Helpers.pathFrom(url));\n  });\n\n  Ember.registerBoundHelper('formatMessage', function(message, options) {\n    return safe(Travis.Helpers.formatMessage(message, options));\n  });\n\n  Ember.registerBoundHelper('formatConfig', function(config, options) {\n    return safe(Travis.Helpers.formatConfig(config));\n  });\n\n  Ember.registerBoundHelper('formatLog', function(log, options) {\n    return Travis.Helpers.formatLog(log) || '';\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=helpers/handlebars");minispade.register('helpers/helpers', "(function() {(function() {\nminispade.require('travis/log');\nminispade.require('emoij');\n\n  this.Travis.Helpers = {\n    compact: function(object) {\n      var key, result, value, _ref;\n      result = {};\n      _ref = object || {};\n      for (key in _ref) {\n        value = _ref[key];\n        if (!$.isEmpty(value)) {\n          result[key] = value;\n        }\n      }\n      return result;\n    },\n    safe: function(string) {\n      return new Handlebars.SafeString(string);\n    },\n    colorForResult: function(result) {\n      if (result === 0) {\n        return 'green';\n      } else {\n        if (result === 1) {\n          return 'red';\n        } else {\n          return null;\n        }\n      }\n    },\n    formatCommit: function(sha, branch) {\n      return Travis.Helpers.formatSha(sha) + (branch ? \" (\" + branch + \")\" : '');\n    },\n    formatSha: function(sha) {\n      return (sha || '').substr(0, 7);\n    },\n    formatConfig: function(config) {\n      var values;\n      config = $.only(config, 'rvm', 'gemfile', 'env', 'otp_release', 'php', 'node_js', 'scala', 'jdk', 'python', 'perl');\n      values = $.map(config, function(value, key) {\n        value = (value && value.join ? value.join(', ') : value) || '';\n        return '%@: %@'.fmt($.camelize(key), value);\n      });\n      if (values.length === 0) {\n        return '-';\n      } else {\n        return values.join(', ');\n      }\n    },\n    formatMessage: function(message, options) {\n      message = message || '';\n      if (options.short) {\n        message = message.split(/\\n/)[0];\n      }\n      return this._emojize(this._escape(message)).replace(/\\n/g, '<br/>');\n    },\n    formatLog: function(log) {\n      return Travis.Log.filter(log);\n    },\n    pathFrom: function(url) {\n      return (url || '').split('/').pop();\n    },\n    timeAgoInWords: function(date) {\n      return $.timeago.distanceInWords(date);\n    },\n    durationFrom: function(started, finished) {\n      started = started && this._toUtc(new Date(this._normalizeDateString(started)));\n      finished = finished ? this._toUtc(new Date(this._normalizeDateString(finished))) : this._nowUtc();\n      if (started && finished) {\n        return Math.round((finished - started) / 1000);\n      } else {\n        return 0;\n      }\n    },\n    timeInWords: function(duration) {\n      var days, hours, minutes, result, seconds;\n      days = Math.floor(duration / 86400);\n      hours = Math.floor(duration % 86400 / 3600);\n      minutes = Math.floor(duration % 3600 / 60);\n      seconds = duration % 60;\n      if (days > 0) {\n        return 'more than 24 hrs';\n      } else {\n        result = [];\n        if (hours === 1) {\n          result.push(hours + ' hr');\n        }\n        if (hours > 1) {\n          result.push(hours + ' hrs');\n        }\n        if (minutes > 0) {\n          result.push(minutes + ' min');\n        }\n        if (seconds > 0) {\n          result.push(seconds + ' sec');\n        }\n        if (result.length > 0) {\n          return result.join(' ');\n        } else {\n          return '-';\n        }\n      }\n    },\n    _normalizeDateString: function(string) {\n      if (window.JHW) {\n        string = string.replace('T', ' ').replace(/-/g, '/');\n        string = string.replace('Z', '').replace(/\\..*$/, '');\n      }\n      return string;\n    },\n    _nowUtc: function() {\n      return this._toUtc(new Date());\n    },\n    _toUtc: function(date) {\n      return Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\n    },\n    _emojize: function(text) {\n      var emojis;\n      emojis = text.match(/:\\S+?:/g);\n      if (emojis !== null) {\n        $.each(emojis.uniq(), function(ix, emoji) {\n          var image, strippedEmoji;\n          strippedEmoji = emoji.substring(1, emoji.length - 1);\n          if (EmojiDictionary.indexOf(strippedEmoji) !== -1) {\n            image = '<img class=\\'emoji\\' title=\\'' + emoji + '\\' alt=\\'' + emoji + '\\' src=\\'' + '/images/emoji/' + strippedEmoji + '.png\\'/>';\n            return text = text.replace(new RegExp(emoji, 'g'), image);\n          }\n        });\n      }\n      return text;\n    },\n    _escape: function(text) {\n      return text.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\n    }\n  };\n\n}).call(this);\n\n})();\n//@ sourceURL=helpers/helpers");minispade.register('helpers/urls', "(function() {(function() {\n\n  this.Travis.Urls = {\n    repository: function(slug) {\n      return \"/\" + slug;\n    },\n    builds: function(slug) {\n      return \"/\" + slug + \"/builds\";\n    },\n    pullRequests: function(slug) {\n      return \"/\" + slug + \"/pull_requests\";\n    },\n    branches: function(slug) {\n      return \"/\" + slug + \"/branches\";\n    },\n    build: function(slug, id) {\n      return \"/\" + slug + \"/builds/\" + id;\n    },\n    job: function(slug, id) {\n      return \"/\" + slug + \"/jobs/\" + id;\n    },\n    githubCommit: function(slug, sha) {\n      return \"http://github.com/\" + slug + \"/commit/\" + sha;\n    },\n    githubRepository: function(slug) {\n      return \"http://github.com/\" + slug;\n    },\n    githubWatchers: function(slug) {\n      return \"http://github.com/\" + slug + \"/watchers\";\n    },\n    githubNetwork: function(slug) {\n      return \"http://github.com/\" + slug + \"/network\";\n    },\n    githubAdmin: function(slug) {\n      return \"http://github.com/\" + slug + \"/admin/hooks#travis_minibucket\";\n    },\n    statusImage: function(slug, branch) {\n      return (\"https://secure.travis-ci.org/\" + slug + \".png\") + (branch ? \"?branch=\" + branch : '');\n    },\n    email: function(email) {\n      return \"mailto:\" + email;\n    },\n    account: function(login) {\n      return \"/profile/\" + login;\n    }\n  };\n\n}).call(this);\n\n})();\n//@ sourceURL=helpers/urls");minispade.register('models', "(function() {(function() {\nminispade.require('models/extensions');\nminispade.require('models/account');\nminispade.require('models/artifact');\nminispade.require('models/branch');\nminispade.require('models/build');\nminispade.require('models/commit');\nminispade.require('models/hook');\nminispade.require('models/job');\nminispade.require('models/repository');\nminispade.require('models/sponsor');\nminispade.require('models/user');\nminispade.require('models/worker');\n\n}).call(this);\n\n})();\n//@ sourceURL=models");minispade.register('models/account', "(function() {(function() {\nminispade.require('travis/model');\n\n  this.Travis.Account = Travis.Model.extend({\n    primaryKey: 'login',\n    login: DS.attr('string'),\n    name: DS.attr('string'),\n    type: DS.attr('string'),\n    reposCount: DS.attr('number'),\n    urlGithub: (function() {\n      return \"http://github.com/\" + (this.get('login'));\n    }).property()\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/account");minispade.register('models/artifact', "(function() {(function() {\nminispade.require('travis/model');\n\n  this.Travis.Artifact = Travis.Model.extend({\n    body: DS.attr('string'),\n    append: function(body) {\n      return this.set('body', this.get('body') + body);\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/artifact");minispade.register('models/branch', "(function() {(function() {\nminispade.require('travis/model');\n\n  this.Travis.Branch = Travis.Model.extend(Travis.Helpers, {\n    repositoryId: DS.attr('number'),\n    commitId: DS.attr('number'),\n    number: DS.attr('number'),\n    branch: DS.attr('string'),\n    message: DS.attr('string'),\n    result: DS.attr('number'),\n    duration: DS.attr('number'),\n    startedAt: DS.attr('string'),\n    finishedAt: DS.attr('string'),\n    commit: DS.belongsTo('Travis.Commit'),\n    repository: (function() {\n      if (this.get('repositoryId')) {\n        return Travis.Repository.find(this.get('repositoryId'));\n      }\n    }).property('repositoryId'),\n    updateTimes: function() {\n      this.notifyPropertyChange('started_at');\n      return this.notifyPropertyChange('finished_at');\n    }\n  });\n\n  this.Travis.Branch.reopenClass({\n    byRepositoryId: function(id) {\n      return this.find({\n        repository_id: id\n      });\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/branch");minispade.register('models/build', "(function() {(function() {\nminispade.require('travis/model');\n\n  this.Travis.Build = Travis.Model.extend(Travis.DurationCalculations, {\n    eventType: DS.attr('string'),\n    repositoryId: DS.attr('number'),\n    commitId: DS.attr('number'),\n    state: DS.attr('string'),\n    number: DS.attr('number'),\n    branch: DS.attr('string'),\n    message: DS.attr('string'),\n    result: DS.attr('number'),\n    _duration: DS.attr('number', {\n      key: 'duration'\n    }),\n    startedAt: DS.attr('string', {\n      key: 'started_at'\n    }),\n    finishedAt: DS.attr('string', {\n      key: 'finished_at'\n    }),\n    repository: DS.belongsTo('Travis.Repository'),\n    commit: DS.belongsTo('Travis.Commit'),\n    jobs: DS.hasMany('Travis.Job', {\n      key: 'job_ids'\n    }),\n    config: (function() {\n      return Travis.Helpers.compact(this.get('data.config'));\n    }).property('data.config'),\n    isMatrix: (function() {\n      return this.get('data.job_ids.length') > 1;\n    }).property('data.job_ids.length'),\n    requiredJobs: (function() {\n      return this.get('jobs').filter(function(data) {\n        return !data.get('allowFailure');\n      });\n    }).property('jobs.@each.allowFailure'),\n    allowedFailureJobs: (function() {\n      return this.get('jobs').filter(function(data) {\n        return data.get('allowFailure');\n      });\n    }).property('jobs.@each.allowFailure'),\n    configKeys: (function() {\n      var config, headers, key, keys;\n      if (!(config = this.get('config'))) {\n        return [];\n      }\n      keys = $.intersect($.keys(config), Travis.CONFIG_KEYS);\n      headers = (function() {\n        var _i, _len, _ref, _results;\n        _ref = ['build.job', 'build.duration', 'build.finished_at'];\n        _results = [];\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          key = _ref[_i];\n          _results.push(I18n.t(key));\n        }\n        return _results;\n      })();\n      return $.map(headers.concat(keys), function(key) {\n        return $.camelize(key);\n      });\n    }).property('config')\n  });\n\n  this.Travis.Build.reopenClass({\n    byRepositoryId: function(id, parameters) {\n      return this.find($.extend(parameters || {}, {\n        repository_id: id,\n        orderBy: 'number DESC'\n      }));\n    },\n    olderThanNumber: function(id, build_number) {\n      return this.find({\n        url: \"/builds\",\n        repository_id: id,\n        after: build_number\n      });\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/build");minispade.register('models/commit', "(function() {(function() {\nminispade.require('travis/model');\n\n  this.Travis.Commit = Travis.Model.extend({\n    buildId: DS.attr('number'),\n    sha: DS.attr('string'),\n    branch: DS.attr('string'),\n    message: DS.attr('string'),\n    compareUrl: DS.attr('string'),\n    authorName: DS.attr('string'),\n    authorEmail: DS.attr('string'),\n    committerName: DS.attr('string'),\n    committerEmail: DS.attr('string'),\n    build: DS.belongsTo('Travis.Build', {\n      key: 'buildId'\n    })\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/commit");minispade.register('models/extensions', "(function() {(function() {\n\n  Travis.DurationCalculations = Ember.Mixin.create({\n    duration: (function() {\n      var duration;\n      if (duration = this.get('_duration')) {\n        return duration;\n      } else {\n        return Travis.Helpers.durationFrom(this.get('startedAt'), this.get('finishedAt'));\n      }\n    }).property('_duration', 'finishedAt', 'startedAt'),\n    updateTimes: function() {\n      this.notifyPropertyChange('_duration');\n      return this.notifyPropertyChange('finished_at');\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/extensions");minispade.register('models/hook', "(function() {(function() {\nminispade.require('travis/model');\n\n  this.Travis.Hook = Travis.Model.extend({\n    name: DS.attr('string'),\n    ownerName: DS.attr('string'),\n    description: DS.attr('string'),\n    active: DS.attr('boolean'),\n    account: (function() {\n      return this.get('slug').split('/')[0];\n    }).property('slug'),\n    slug: (function() {\n      return \"\" + (this.get('ownerName')) + \"/\" + (this.get('name'));\n    }).property('ownerName', 'name'),\n    urlGithub: (function() {\n      return \"http://github.com/\" + (this.get('slug'));\n    }).property(),\n    urlGithubAdmin: (function() {\n      return \"http://github.com/\" + (this.get('slug')) + \"/admin/hooks#travis_minibucket\";\n    }).property(),\n    toggle: function() {\n      this.set('active', !this.get('active'));\n      return Travis.app.store.commit();\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/hook");minispade.register('models/job', "(function() {(function() {\nminispade.require('travis/model');\n\n  this.Travis.Job = Travis.Model.extend(Travis.DurationCalculations, {\n    repositoryId: DS.attr('number'),\n    buildId: DS.attr('number'),\n    commitId: DS.attr('number'),\n    logId: DS.attr('number'),\n    queue: DS.attr('string'),\n    state: DS.attr('string'),\n    number: DS.attr('string'),\n    result: DS.attr('number'),\n    _duration: DS.attr('number', {\n      key: 'duration'\n    }),\n    startedAt: DS.attr('string'),\n    finishedAt: DS.attr('string'),\n    allowFailure: DS.attr('boolean', {\n      key: 'allow_failure'\n    }),\n    repository: DS.belongsTo('Travis.Repository', {\n      key: 'repository_id'\n    }),\n    build: DS.belongsTo('Travis.Build', {\n      key: 'build_id'\n    }),\n    commit: DS.belongsTo('Travis.Commit', {\n      key: 'commit_id'\n    }),\n    log: DS.belongsTo('Travis.Artifact', {\n      key: 'log_id'\n    }),\n    isQueued: (function() {\n      return console.log(this.get('state'));\n    }).property('state'),\n    config: (function() {\n      return Travis.Helpers.compact(this.get('data.config'));\n    }).property('data.config'),\n    sponsor: (function() {\n      return this.get('data.sponsor');\n    }).property('data.sponsor'),\n    configValues: (function() {\n      var config;\n      if (config = this.get('config')) {\n        return $.values($.only.apply(config, Travis.CONFIG_KEYS));\n      } else {\n        return [];\n      }\n    }).property('config'),\n    appendLog: function(text) {\n      var log;\n      if (log = this.get('log')) {\n        return log.append(text);\n      }\n    },\n    subscribe: function() {\n      var id;\n      if (id = this.get('id')) {\n        return Travis.app.pusher.subscribe(\"job-\" + id);\n      }\n    },\n    onStateChange: (function() {\n      if (this.get('state') === 'finished') {\n        return Travis.app.pusher.unsubscribe(\"job-\" + (this.get('id')));\n      }\n    }).observes('state')\n  });\n\n  this.Travis.Job.reopenClass({\n    queued: function(queue) {\n      this.find();\n      return Travis.app.store.filter(this, function(job) {\n        var queued;\n        queued = ['created', 'queued'].indexOf(job.get('state')) !== -1;\n        return queued && job.get('queue') === (\"builds.\" + queue);\n      });\n    },\n    findMany: function(ids) {\n      return Travis.app.store.findMany(this, ids);\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/job");minispade.register('models/repository', "(function() {(function() {\nminispade.require('travis/model');\n\n  this.Travis.Repository = Travis.Model.extend({\n    slug: DS.attr('string'),\n    description: DS.attr('string'),\n    lastBuildId: DS.attr('number'),\n    lastBuildNumber: DS.attr('string'),\n    lastBuildResult: DS.attr('number'),\n    lastBuildStartedAt: DS.attr('string'),\n    lastBuildFinishedAt: DS.attr('string'),\n    lastBuild: DS.belongsTo('Travis.Build'),\n    builds: (function() {\n      return Travis.Build.byRepositoryId(this.get('id'), {\n        event_type: 'push'\n      });\n    }).property(),\n    pullRequests: (function() {\n      return Travis.Build.byRepositoryId(this.get('id'), {\n        event_type: 'pull_request'\n      });\n    }).property(),\n    branches: (function() {\n      return Travis.Branch.byRepositoryId(this.get('id'));\n    }).property(),\n    owner: (function() {\n      return (this.get('slug') || '').split('/')[0];\n    }).property('slug'),\n    name: (function() {\n      return (this.get('slug') || '').split('/')[1];\n    }).property('slug'),\n    lastBuildDuration: (function() {\n      var duration;\n      duration = this.get('data.last_build_duration');\n      if (!duration) {\n        duration = Travis.Helpers.durationFrom(this.get('lastBuildStartedAt'), this.get('lastBuildFinishedAt'));\n      }\n      return duration;\n    }).property('data.last_build_duration', 'lastBuildStartedAt', 'lastBuildFinishedAt'),\n    sortOrder: (function() {\n      var lastBuildFinishedAt;\n      if (lastBuildFinishedAt = this.get('lastBuildFinishedAt')) {\n        return -new Date(lastBuildFinishedAt).getTime();\n      } else {\n        return -new Date('9999').getTime() - parseInt(this.get('lastBuildId'));\n      }\n    }).property('lastBuildFinishedAt', 'lastBuildId'),\n    stats: (function() {\n      var _this = this;\n      return this.get('_stats') || $.get(\"https://api.github.com/repos/\" + (this.get('slug')), function(data) {\n        _this.set('_stats', data);\n        return _this.notifyPropertyChange('stats');\n      }) && {};\n    }).property(),\n    select: function() {\n      return Travis.Repository.select(this.get('id'));\n    },\n    updateTimes: function() {\n      return this.notifyPropertyChange('lastBuildDuration');\n    }\n  });\n\n  this.Travis.Repository.reopenClass({\n    recent: function() {\n      return this.find();\n    },\n    ownedBy: function(login) {\n      return this.find({\n        owner_name: login,\n        orderBy: 'name'\n      });\n    },\n    search: function(query) {\n      return this.find({\n        search: query,\n        orderBy: 'name'\n      });\n    },\n    bySlug: function(slug) {\n      var repo;\n      repo = $.select(this.find().toArray(), function(repo) {\n        return repo.get('slug') === slug;\n      });\n      if (repo.length > 0) {\n        return repo;\n      } else {\n        return this.find({\n          slug: slug\n        });\n      }\n    },\n    select: function(id) {\n      return this.find().forEach(function(repository) {\n        return repository.set('selected', repository.get('id') === id);\n      });\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/repository");minispade.register('models/sponsor', "(function() {(function() {\nminispade.require('travis/model');\n\n  this.Travis.Sponsor = Travis.Model.extend({\n    type: DS.attr('string'),\n    url: DS.attr('string'),\n    link: DS.attr('string'),\n    image: (function() {\n      return \"/images/sponsors/\" + (this.get('data.image'));\n    }).property('data.image')\n  });\n\n  Travis.Sponsor.reopenClass({\n    decks: function() {\n      return this.platinum().concat(this.gold());\n    },\n    platinum: function() {\n      var platinum, sponsor, _i, _len, _results;\n      platinum = this.byType('platinum').toArray();\n      _results = [];\n      for (_i = 0, _len = platinum.length; _i < _len; _i++) {\n        sponsor = platinum[_i];\n        _results.push([sponsor]);\n      }\n      return _results;\n    },\n    gold: function() {\n      var gold, _results;\n      gold = this.byType('gold').toArray();\n      _results = [];\n      while (gold.length > 0) {\n        _results.push(gold.splice(0, 2));\n      }\n      return _results;\n    },\n    links: function() {\n      return this.byType('silver');\n    },\n    byType: function() {\n      var types;\n      types = Array.prototype.slice.apply(arguments);\n      return Travis.Sponsor.filter(function(sponsor) {\n        return types.indexOf(sponsor.get('type')) !== -1;\n      });\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/sponsor");minispade.register('models/user', "(function() {(function() {\nminispade.require('travis/ajax');\nminispade.require('travis/model');\n\n  this.Travis.User = Travis.Model.extend(Travis.Ajax, {\n    name: DS.attr('string'),\n    email: DS.attr('string'),\n    login: DS.attr('string'),\n    token: DS.attr('string'),\n    locale: DS.attr('string'),\n    gravatarId: DS.attr('string'),\n    isSyncing: DS.attr('boolean'),\n    syncedAt: DS.attr('string'),\n    repoCount: DS.attr('number'),\n    accessToken: DS.attr('string'),\n    init: function() {\n      if (this.get('isSyncing')) {\n        this.poll();\n      }\n      return this._super();\n    },\n    urlGithub: (function() {\n      return \"https://github.com/\" + (this.get('login'));\n    }).property(),\n    updateLocale: function(locale) {\n      this.set('locale', locale);\n      return Travis.app.store.commit();\n    },\n    type: (function() {\n      return 'user';\n    }).property(),\n    sync: function() {\n      this.post('/profile/sync');\n      this.set('isSyncing', true);\n      return this.poll();\n    },\n    poll: function() {\n      var _this = this;\n      return this.ajax('/profile', 'get', {\n        success: function(data) {\n          if (data.user.is_syncing) {\n            return Ember.run.later(_this, _this.poll.bind(_this), 3000);\n          } else if (_this.get('isSyncing')) {\n            Travis.app.store.load(Travis.User, data.user);\n            return Travis.app.store.loadMany(Travis.Account, data.accounts);\n          }\n        }\n      });\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/user");minispade.register('models/worker', "(function() {(function() {\nminispade.require('travis/model');\n\n  this.Travis.Worker = Travis.Model.extend({\n    state: DS.attr('string'),\n    name: DS.attr('string'),\n    host: DS.attr('string'),\n    lastSeenAt: DS.attr('string'),\n    payload: (function() {\n      return this.get('data.payload');\n    }).property('data.payload'),\n    number: (function() {\n      return this.get('name').match(/\\d+$/)[0];\n    }).property('name'),\n    isWorking: (function() {\n      return this.get('state') === 'working';\n    }).property('state'),\n    urlJob: (function() {\n      if (this.get('state') === 'working') {\n        return \"/\" + (this.get('repository')) + \"/jobs/\" + (this.get('job_id'));\n      }\n    }).property('repository', 'job_id', 'state'),\n    repository: (function() {\n      return this.get('payload.repository.slug');\n    }).property('payload.repository.slug'),\n    job_id: (function() {\n      return this.get('payload.job.id');\n    }).property('payload.job.id')\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/worker");minispade.register('pusher', "(function() {(function() {\n\n  Travis.Pusher = function() {\n    var channel, _i, _len, _ref;\n    this.active_channels = [];\n    if (Travis.Pusher.KEY) {\n      this.pusher = new Pusher(Travis.Pusher.KEY);\n      _ref = Travis.Pusher.CHANNELS;\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        channel = _ref[_i];\n        this.subscribe(channel);\n      }\n    }\n    return this;\n  };\n\n  $.extend(Travis.Pusher, {\n    CHANNELS: ['common'],\n    CHANNEL_PREFIX: '',\n    KEY: ''\n  });\n\n  $.extend(Travis.Pusher.prototype, {\n    subscribe: function(channel) {\n      var _this = this;\n      if (this.pusher && this.active_channels.indexOf(channel) === -1) {\n        this.active_channels.push(channel);\n        return this.pusher.subscribe(this.prefix(channel)).bind_all(function(event, data) {\n          return _this.receive(event, data);\n        });\n      }\n    },\n    unsubscribe: function(channel) {\n      var ix;\n      ix = this.active_channels.indexOf(channel);\n      if (this.pusher && ix === -1) {\n        this.active_channels.splice(ix, 1);\n        return this.pusher.unsubscribe(this.prefix(channel));\n      }\n    },\n    prefix: function(channel) {\n      return \"\" + Travis.Pusher.CHANNEL_PREFIX + channel;\n    },\n    receive: function(event, data) {\n      if (data.id) {\n        data = this.normalize(event, data);\n      }\n      return Ember.run.next(function() {\n        return Travis.app.store.receive(event, data);\n      });\n    },\n    normalize: function(event, data) {\n      switch (event) {\n        case 'build:started':\n        case 'build:finished':\n          return data;\n        case 'job:created':\n        case 'job:started':\n        case 'job:finished':\n        case 'job:log':\n          if (data.queue) {\n            data.queue = data.queue.replace('builds.', '');\n          }\n          return {\n            job: data\n          };\n        case 'worker:added':\n        case 'worker:updated':\n        case 'worker:removed':\n          return {\n            worker: data\n          };\n      }\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=pusher");minispade.register('routes', "(function() {(function() {\n\n  Travis.Routes = function() {\n    var _this = this;\n    if (!Travis.Routes.initialized) {\n      return Ember.run.next(function() {\n        var route, target, _ref;\n        Em.routes.set('usesHistory', true);\n        Em.routes.set('wantsHistory', true);\n        Em.routes.set('baseURI', _this.base_uri);\n        _ref = Travis.ROUTES;\n        for (route in _ref) {\n          target = _ref[route];\n          _this.add(route, target[0], target[1]);\n        }\n        return Travis.Routes.initialized = true;\n      });\n    }\n  };\n\n  $.extend(Travis.Routes.prototype, {\n    base_uri: \"\" + document.location.protocol + \"//\" + document.location.host,\n    add: function(route, layout, action) {\n      var _this = this;\n      return Em.routes.add(route, function(params) {\n        return _this.action(layout, action, params);\n      });\n    },\n    route: function(location) {\n      if (typeof location !== 'string') {\n        location = $(event.target).closest('a')[0].href.replace(\"\" + this.base_uri + \"/\", '');\n      }\n      return Em.routes.set('location', location);\n    },\n    action: function(name, action, params) {\n      if (this.before(name, action, params)) {\n        return Travis.app.render(name, action, params);\n      }\n    },\n    before: function(name, action, params) {\n      if (this.requiresAuth(name, action, params)) {\n        return this.requireAuth(name, action, params);\n      } else {\n        return true;\n      }\n    },\n    signedIn: function() {\n      return !!Travis.app.get('currentUser');\n    },\n    requiresAuth: function(name, action, params) {\n      return name === 'profile' && !this.signedIn();\n    },\n    requireAuth: function(name, action, params) {\n      Travis.app.set('returnTo', [name, action, params]);\n      this.route('');\n      return false;\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=routes");minispade.register('slider', "(function() {(function() {\n\n  this.Travis.Slider = function() {\n    if ((typeof localStorage !== \"undefined\" && localStorage !== null ? localStorage.getItem('travis.maximized') : void 0) === 'true') {\n      this.minimize();\n    }\n    return this;\n  };\n\n  $.extend(Travis.Slider.prototype, {\n    persist: function() {\n      return typeof localStorage !== \"undefined\" && localStorage !== null ? localStorage.setItem('travis.maximized', this.isMinimized()) : void 0;\n    },\n    isMinimized: function() {\n      return $('body').hasClass('maximized');\n    },\n    minimize: function() {\n      return $('body').addClass('maximized');\n    },\n    toggle: function() {\n      var element;\n      $('body').toggleClass('maximized');\n      this.persist();\n      element = $('<span></span>');\n      $('#top .profile').append(element);\n      return Em.run.later((function() {\n        return element.remove();\n      }), 10);\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=slider");minispade.register('store', "(function() {(function() {\n  var DATA_PROXY,\n    __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };\nminispade.require('store/rest_adapter');\n\n  DATA_PROXY = {\n    get: function(name) {\n      return this.savedData[name];\n    }\n  };\n\n  Travis.Store = DS.Store.extend({\n    revision: 4,\n    adapter: Travis.RestAdapter.create(),\n    merge: function(type, id, hash) {\n      var clientId, data, dataCache, primaryKey, record, recordCache, typeMap;\n      if (hash === void 0) {\n        hash = id;\n        primaryKey = type.proto().primaryKey;\n        Ember.assert(\"A data hash was loaded for a record of type \" + type.toString() + \" but no primary key '\" + primaryKey + \"' was provided.\", hash[primaryKey]);\n        id = hash[primaryKey];\n      }\n      typeMap = this.typeMapFor(type);\n      dataCache = typeMap.cidToHash;\n      clientId = typeMap.idToCid[id];\n      recordCache = this.get('recordCache');\n      if (clientId !== void 0) {\n        if (data = dataCache[clientId]) {\n          $.extend(data, hash);\n        } else {\n          dataCache[clientId] = hash;\n        }\n        if (record = recordCache[clientId]) {\n          record.send('didChangeData');\n        }\n      } else {\n        clientId = this.find(type, id).get('clientId');\n      }\n      if (clientId) {\n        DATA_PROXY.savedData = hash;\n        this.updateRecordArrays(type, clientId, DATA_PROXY);\n        return {\n          id: id,\n          clientId: clientId\n        };\n      }\n    },\n    receive: function(event, data) {\n      var job, mappings, name, type, _ref;\n      _ref = event.split(':'), name = _ref[0], type = _ref[1];\n      mappings = this.adapter.get('mappings');\n      type = mappings[name];\n      if (event === 'job:log') {\n        if (job = this.find(Travis.Job, data['job']['id'])) {\n          return job.appendLog(data['job']['_log']);\n        }\n      } else if (data[type.singularName()]) {\n        return this._loadOne(this, type, data);\n      } else if (data[type.pluralName()]) {\n        return this._loadMany(this, type, data);\n      } else {\n        if (!type) {\n          throw \"can't load data for \" + name;\n        }\n      }\n    },\n    _loadOne: function(store, type, json) {\n      var root;\n      root = type.singularName();\n      this.adapter.sideload(store, type, json, root);\n      this.merge(type, json[root]);\n      return this._updateAssociations(type, root, json[root]);\n    },\n    _loadMany: function(store, type, json) {\n      var root;\n      console.log('loadMany');\n      root = type.pluralName();\n      this.adapter.sideload(store, type, json, root);\n      return this.loadMany(type, json[root]);\n    },\n    _updateAssociations: function(type, name, data) {\n      var _this = this;\n      return Em.get(type, 'associationsByName').forEach(function(key, meta) {\n        var clientId, dataProxy, id, ids, parent, _ref;\n        if (meta.kind === 'belongsTo') {\n          id = data[\"\" + key + \"_id\"];\n          if (clientId = _this.typeMapFor(meta.type).idToCid[id]) {\n            if (parent = _this.findByClientId(meta.type, clientId, id)) {\n              dataProxy = parent.get('data');\n              if (ids = dataProxy.get(\"\" + name + \"_ids\")) {\n                if (_ref = data.id, __indexOf.call(ids, _ref) < 0) {\n                  ids.pushObject(data.id);\n                }\n                return parent.send('didChangeData');\n              }\n            }\n          }\n        }\n      });\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=store");minispade.register('store/fixture_adapter', "(function() {(function() {\n\n  this.Travis.FixtureAdapter = DS.Adapter.extend({\n    find: function(store, type, id) {\n      var fixtures;\n      fixtures = type.FIXTURES;\n      Ember.assert(\"Unable to find fixtures for model type \" + type.toString(), !!fixtures);\n      if (fixtures.hasLoaded) {\n        return;\n      }\n      return setTimeout((function() {\n        store.loadMany(type, fixtures);\n        return fixtures.hasLoaded = true;\n      }), 300);\n    },\n    findMany: function() {\n      return this.find.apply(this, arguments);\n    },\n    findAll: function(store, type) {\n      var fixtures, ids;\n      fixtures = type.FIXTURES;\n      Ember.assert(\"Unable to find fixtures for model type \" + type.toString(), !!fixtures);\n      ids = fixtures.map(function(item, index, self) {\n        return item.id;\n      });\n      return store.loadMany(type, ids, fixtures);\n    },\n    findQuery: function(store, type, params, array) {\n      var fixture, fixtures, hashes, key, matches, value;\n      fixtures = type.FIXTURES;\n      Ember.assert(\"Unable to find fixtures for model type \" + type.toString(), !!fixtures);\n      hashes = (function() {\n        var _i, _len, _results;\n        _results = [];\n        for (_i = 0, _len = fixtures.length; _i < _len; _i++) {\n          fixture = fixtures[_i];\n          matches = (function() {\n            var _results1;\n            _results1 = [];\n            for (key in params) {\n              value = params[key];\n              _results1.push(key === 'orderBy' || fixture[key] === value);\n            }\n            return _results1;\n          })();\n          if (matches.reduce(function(a, b) {\n            return a && b;\n          })) {\n            _results.push(fixture);\n          } else {\n            _results.push(null);\n          }\n        }\n        return _results;\n      })();\n      return array.load(hashes.compact());\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=store/fixture_adapter");minispade.register('store/rest_adapter', "(function() {(function() {\nminispade.require('travis/ajax');\nminispade.require('models');\n\n  this.Travis.RestAdapter = DS.RESTAdapter.extend(Travis.Ajax, {\n    mappings: {\n      repositories: Travis.Repository,\n      repository: Travis.Repository,\n      builds: Travis.Build,\n      build: Travis.Build,\n      commits: Travis.Commit,\n      commit: Travis.Commit,\n      jobs: Travis.Job,\n      job: Travis.Job,\n      account: Travis.Account,\n      accounts: Travis.Account,\n      worker: Travis.Worker,\n      workers: Travis.Worker\n    },\n    plurals: {\n      repository: 'repositories',\n      build: 'builds',\n      branch: 'branches',\n      job: 'jobs',\n      worker: 'workers'\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=store/rest_adapter");minispade.register('tailing', "(function() {(function() {\n\n  this.Travis.Tailing = function() {\n    this.position = $(window).scrollTop();\n    $(window).scroll(this.onScroll.bind(this));\n    return this;\n  };\n\n  $.extend(Travis.Tailing.prototype, {\n    options: {\n      timeout: 200\n    },\n    run: function() {\n      this.autoScroll();\n      this.positionButton();\n      if (this.active()) {\n        return Ember.run.later(this.run.bind(this), this.options.timeout);\n      }\n    },\n    toggle: function(event) {\n      if (this.active()) {\n        return this.stop();\n      } else {\n        return this.start();\n      }\n    },\n    active: function() {\n      return $('#tail').hasClass('active');\n    },\n    start: function() {\n      $('#tail').addClass('active');\n      return this.run();\n    },\n    stop: function() {\n      return $('#tail').removeClass('active');\n    },\n    autoScroll: function() {\n      var log, logBottom, win, winBottom;\n      if (!this.active()) {\n        return;\n      }\n      win = $(window);\n      log = $('#log');\n      logBottom = log.offset().top + log.outerHeight() + 40;\n      winBottom = win.scrollTop() + win.height();\n      if (logBottom - winBottom > 0) {\n        return win.scrollTop(logBottom - win.height());\n      }\n    },\n    onScroll: function() {\n      var position;\n      this.positionButton();\n      position = $(window).scrollTop();\n      if (position < this.position) {\n        this.stop();\n      }\n      return this.position = position;\n    },\n    positionButton: function() {\n      var max, offset, tail;\n      tail = $('#tail');\n      if (tail.length === 0) {\n        return;\n      }\n      offset = $(window).scrollTop() - $('#log').offset().top;\n      max = $('#log').height() - $('#tail').height() + 5;\n      if (offset > max) {\n        offset = max;\n      }\n      if (offset > 0) {\n        return tail.css({\n          top: offset - 2\n        });\n      } else {\n        return tail.css({\n          top: 0\n        });\n      }\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=tailing");minispade.register('views', "(function() {(function() {\nminispade.require('ext/ember/namespace');\n\n  this.Travis.reopen({\n    View: Em.View.extend({\n      route: function(event) {\n        return Travis.app.routes.route(event);\n      },\n      popup: function(event) {\n        return $(\"#\" + event.target.name).remove().appendTo('body').toggle();\n      }\n    })\n  });\n\n  this.Travis.reopen({\n    HomeLayout: Travis.View.extend({\n      templateName: 'layouts/home'\n    }),\n    ProfileLayout: Travis.View.extend({\n      templateName: 'layouts/profile'\n    }),\n    StatsLayout: Travis.View.extend({\n      templateName: 'layouts/simple'\n    })\n  });\nminispade.require('views/build');\nminispade.require('views/job');\nminispade.require('views/repo');\nminispade.require('views/profile');\nminispade.require('views/sidebar');\nminispade.require('views/stats');\nminispade.require('views/top');\n\n}).call(this);\n\n})();\n//@ sourceURL=views");minispade.register('views/build', "(function() {(function() {\n\n  this.Travis.reopen({\n    BuildsView: Travis.View.extend({\n      templateName: 'builds/list',\n      buildsBinding: 'controller',\n      showMore: function() {\n        var id, number;\n        id = this.get('controller.repository.id');\n        number = this.get('controller.builds.lastObject.number');\n        return Travis.Build.olderThanNumber(id, number);\n      }\n    }),\n    BuildsItemView: Travis.View.extend({\n      repositoryBinding: 'controller.repository',\n      buildBinding: 'context',\n      commitBinding: 'build.commit',\n      color: (function() {\n        return Travis.Helpers.colorForResult(this.get('build.result'));\n      }).property('build.result'),\n      urlBuild: (function() {\n        return Travis.Urls.build(this.get('repository.slug'), this.get('build.id'));\n      }).property('repository.slug', 'build.id'),\n      urlGithubCommit: (function() {\n        return Travis.Urls.githubCommit(this.get('repository.slug'), this.get('commit.sha'));\n      }).property('repository.slug', 'commit.sha')\n    }),\n    BuildView: Travis.View.extend({\n      templateName: 'builds/show',\n      repositoryBinding: 'controller.repository',\n      buildBinding: 'controller.build',\n      commitBinding: 'build.commit',\n      color: (function() {\n        return Travis.Helpers.colorForResult(this.get('build.result'));\n      }).property('build.result'),\n      urlBuild: (function() {\n        return Travis.Urls.build(this.get('repository.slug'), this.get('build.id'));\n      }).property('repository.slug', 'build.id'),\n      urlGithubCommit: (function() {\n        return Travis.Urls.githubCommit(this.get('repository.slug'), this.get('commit.sha'));\n      }).property('repository.slug', 'commit.sha'),\n      urlAuthor: (function() {\n        return Travis.Urls.email(this.get('commit.authorEmail'));\n      }).property('commit.authorEmail'),\n      urlCommitter: (function() {\n        return Travis.Urls.email(this.get('commit.committerEmail'));\n      }).property('commit.committerEmail')\n    })\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/build");minispade.register('views/job', "(function() {(function() {\n\n  this.Travis.reopen({\n    JobsView: Travis.View.extend({\n      templateName: 'jobs/list',\n      buildBinding: 'controller.build'\n    }),\n    JobsItemView: Travis.View.extend({\n      tagName: 'tr',\n      classNameBindings: ['color'],\n      repositoryBinding: 'context.repository',\n      jobBinding: 'context',\n      color: (function() {\n        return Travis.Helpers.colorForResult(this.get('job.result'));\n      }).property('job.result'),\n      urlJob: (function() {\n        return Travis.Urls.job(this.get('repository.slug'), this.get('job.id'));\n      }).property('repository.slug', 'job.id')\n    }),\n    JobView: Travis.View.extend({\n      templateName: 'jobs/show',\n      repositoryBinding: 'controller.repository',\n      jobBinding: 'controller.job',\n      commitBinding: 'job.commit',\n      color: (function() {\n        return Travis.Helpers.colorForResult(this.get('job.result'));\n      }).property('job.result'),\n      urlJob: (function() {\n        return Travis.Urls.job(this.get('repository.slug'), this.get('job.id'));\n      }).property('repository.slug', 'job.id'),\n      urlGithubCommit: (function() {\n        return Travis.Urls.githubCommit(this.get('repository.slug'), this.get('commit.sha'));\n      }).property('repository.slug', 'commit.sha'),\n      urlAuthor: (function() {\n        return Travis.Urls.email(this.get('commit.authorEmail'));\n      }).property('commit.authorEmail'),\n      urlCommitter: (function() {\n        return Travis.Urls.email(this.get('commit.committerEmail'));\n      }).property('commit.committerEmail')\n    }),\n    LogView: Travis.View.extend({\n      templateName: 'jobs/log',\n      logBinding: 'job.log',\n      click: function(event) {\n        return $(event.target).closest('.fold').toggleClass('open');\n      },\n      toTop: function() {\n        return $(window).scrollTop(0);\n      },\n      jobBinding: 'context',\n      toggleTailing: function(event) {\n        Travis.app.tailing.toggle();\n        return event.preventDefault();\n      },\n      logSubscriber: (function() {\n        var job, state;\n        job = this.get('job');\n        state = this.get('job.state');\n        if (job && state !== 'finished') {\n          job.subscribe();\n        }\n        return null;\n      }).property('job', 'job.state')\n    })\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/job");minispade.register('views/left', "(function() {(function() {\n\n  this.Travis.reopen({\n    ReposView: Travis.View.extend({\n      templateName: 'repos/list',\n      tabBinding: 'controller.tab',\n      classRecent: (function() {\n        if (this.get('tab') === 'recent') {\n          return 'active';\n        }\n      }).property('tab'),\n      classOwned: (function() {\n        var classes;\n        classes = [];\n        if (this.get('tab') === 'owned') {\n          classes.push('active');\n        }\n        if (Travis.app.get('currentUser')) {\n          classes.push('display');\n        }\n        return classes.join(' ');\n      }).property('tab', 'Travis.currentUser'),\n      classSearch: (function() {\n        if (this.get('tab') === 'search') {\n          return 'active';\n        }\n      }).property('tab')\n    })\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/left");minispade.register('views/profile', "(function() {(function() {\n\n  this.Travis.reopen({\n    AccountsView: Travis.View.extend({\n      tabBinding: 'controller.tab',\n      templateName: 'profile/accounts',\n      classAccounts: (function() {\n        if (this.get('tab') === 'accounts') {\n          return 'active';\n        }\n      }).property('tab')\n    }),\n    AccountsListView: Em.CollectionView.extend({\n      elementId: 'accounts',\n      accountBinding: 'content',\n      tagName: 'ul',\n      emptyView: Ember.View.extend({\n        template: Ember.Handlebars.compile('<div class=\"loading\"><span>Loading</span></div>')\n      }),\n      itemViewClass: Travis.View.extend({\n        accountBinding: 'content',\n        typeBinding: 'content.type',\n        selectedBinding: 'account.selected',\n        classNames: ['account'],\n        classNameBindings: ['type', 'selected'],\n        name: (function() {\n          return this.get('content.name') || this.get('content.login');\n        }).property('content.login', 'content.name'),\n        urlAccount: (function() {\n          return Travis.Urls.account(this.get('account.login'));\n        }).property('account.login')\n      })\n    }),\n    ProfileView: Travis.View.extend({\n      templateName: 'profile/show'\n    }),\n    ProfileTabsView: Travis.View.extend({\n      templateName: 'profile/tabs',\n      tabBinding: 'controller.tab',\n      activate: function(event) {\n        return this.get('controller').activate(event.target.name);\n      },\n      classHooks: (function() {\n        if (this.get('tab') === 'hooks') {\n          return 'active';\n        }\n      }).property('tab'),\n      classUser: (function() {\n        if (this.get('tab') === 'user') {\n          return 'active';\n        }\n      }).property('tab'),\n      displayUser: (function() {\n        return this.get('controller.account.login') === this.get('controller.user.login');\n      }).property('controller.account.login', 'controller.user.login')\n    }),\n    HooksView: Travis.View.extend({\n      templateName: 'profile/tabs/hooks',\n      userBinding: 'controller.user',\n      urlGithubAdmin: (function() {\n        return Travis.Urls.githubAdmin(this.get('hook.slug'));\n      }).property('hook.slug')\n    }),\n    UserView: Travis.View.extend({\n      templateName: 'profile/tabs/user',\n      userBinding: 'controller.user',\n      gravatarUrl: (function() {\n        return \"http://www.gravatar.com/avatar/\" + (this.get('user.gravatarId')) + \"?s=48&d=mm\";\n      }).property('user.gravatarId'),\n      locales: (function() {\n        return [\n          {\n            key: 'en',\n            name: 'English'\n          }, {\n            key: 'ca',\n            name: 'Catalan'\n          }, {\n            key: 'cs',\n            name: 'Čeština'\n          }, {\n            key: 'es',\n            name: 'Español'\n          }, {\n            key: 'fr',\n            name: 'Français'\n          }, {\n            key: 'ja',\n            name: '日本語'\n          }, {\n            key: 'nl',\n            name: 'Nederlands'\n          }, {\n            key: 'nb',\n            name: 'Norsk Bokmål'\n          }, {\n            key: 'pl',\n            name: 'Polski'\n          }, {\n            key: {\n              'pt-BR': {\n                name: 'Português brasileiro'\n              }\n            }\n          }, {\n            key: 'ru',\n            name: 'Русский'\n          }\n        ];\n      }).property(),\n      saveLocale: function(event) {\n        return this.get('user').updateLocale($('#locale').val());\n      }\n    })\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/profile");minispade.register('views/repo', "(function() {(function() {\nminispade.require('views/repo/list');\nminispade.require('views/repo/show');\n\n}).call(this);\n\n})();\n//@ sourceURL=views/repo");minispade.register('views/repo/list', "(function() {(function() {\n\n  this.Travis.reopen({\n    RepositoriesView: Travis.View.extend({\n      templateName: 'repos/list',\n      toggleInfo: function(event) {\n        return $('#repositories').toggleClass('open');\n      }\n    }),\n    RepositoriesListView: Em.CollectionView.extend({\n      elementId: 'repositories',\n      tagName: 'ul',\n      emptyView: Ember.View.extend({\n        template: Ember.Handlebars.compile('<div class=\"loading\"><span>Loading</span></div>')\n      }),\n      itemViewClass: Travis.View.extend({\n        repositoryBinding: 'content',\n        classNames: ['repository'],\n        classNameBindings: ['color', 'selected'],\n        selectedBinding: 'repository.selected',\n        color: (function() {\n          return Travis.Helpers.colorForResult(this.get('repository.lastBuildResult'));\n        }).property('repository.lastBuildResult'),\n        urlRepository: (function() {\n          return Travis.Urls.repository(this.get('repository.slug'));\n        }).property('repository.slug'),\n        urlLastBuild: (function() {\n          return Travis.Urls.build(this.get('repository.slug'), this.get('repository.lastBuildId'));\n        }).property('repository.slug', 'repository.lastBuildId')\n      })\n    }),\n    ReposListTabsView: Travis.View.extend({\n      templateName: 'repos/list/tabs',\n      tabBinding: 'controller.tab',\n      activate: function(event) {\n        return this.get('controller').activate(event.target.name);\n      },\n      classRecent: (function() {\n        if (this.get('tab') === 'recent') {\n          return 'active';\n        }\n      }).property('tab'),\n      classOwned: (function() {\n        var classes;\n        classes = [];\n        if (this.get('tab') === 'owned') {\n          classes.push('active');\n        }\n        if (Travis.app.get('currentUser')) {\n          classes.push('display');\n        }\n        return classes.join(' ');\n      }).property('tab', 'Travis.app.currentUser'),\n      classSearch: (function() {\n        if (this.get('tab') === 'search') {\n          return 'active';\n        }\n      }).property('tab')\n    })\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/repo/list");minispade.register('views/repo/show', "(function() {(function() {\n\n  this.Travis.reopen({\n    RepositoryView: Travis.View.extend({\n      templateName: 'repos/show',\n      repositoryBinding: 'controller.repository',\n      \"class\": (function() {\n        if (!this.get('repository.isLoaded')) {\n          return 'loading';\n        }\n      }).property('repository.isLoaded'),\n      urlGithub: (function() {\n        return Travis.Urls.githubRepository(this.get('repository.slug'));\n      }).property('repository.slug'),\n      urlGithubWatchers: (function() {\n        return Travis.Urls.githubWatchers(this.get('repository.slug'));\n      }).property('repository.slug'),\n      urlGithubNetwork: (function() {\n        return Travis.Urls.githubNetwork(this.get('repository.slug'));\n      }).property('repository.slug')\n    }),\n    RepoShowTabsView: Travis.View.extend({\n      templateName: 'repos/show/tabs',\n      repositoryBinding: 'controller.repository',\n      buildBinding: 'controller.build',\n      jobBinding: 'controller.job',\n      tabBinding: 'controller.tab',\n      classCurrent: (function() {\n        if (this.get('tab') === 'current') {\n          return 'active';\n        }\n      }).property('tab'),\n      classBuilds: (function() {\n        if (this.get('tab') === 'builds') {\n          return 'active';\n        }\n      }).property('tab'),\n      classPullRequests: (function() {\n        if (this.get('tab') === 'pull_requests') {\n          return 'active';\n        }\n      }).property('tab'),\n      classBranches: (function() {\n        if (this.get('tab') === 'branches') {\n          return 'active';\n        }\n      }).property('tab'),\n      classBuild: (function() {\n        var classes, tab;\n        tab = this.get('tab');\n        classes = [];\n        if (tab === 'build') {\n          classes.push('active');\n        }\n        if (tab === 'build' || tab === 'job') {\n          classes.push('display');\n        }\n        return classes.join(' ');\n      }).property('tab'),\n      classJob: (function() {\n        if (this.get('tab') === 'job') {\n          return 'active display';\n        }\n      }).property('tab'),\n      urlRepository: (function() {\n        return Travis.Urls.repository(this.get('repository.slug'));\n      }).property('repository.slug'),\n      urlBuilds: (function() {\n        return Travis.Urls.builds(this.get('repository.slug'));\n      }).property('repository.slug'),\n      urlPullRequests: (function() {\n        return Travis.Urls.pullRequests(this.get('repository.slug'));\n      }).property('repository.slug'),\n      urlBranches: (function() {\n        return Travis.Urls.branches(this.get('repository.slug'));\n      }).property('repository.slug'),\n      urlBuild: (function() {\n        return Travis.Urls.build(this.get('repository.slug'), this.get('build.id'));\n      }).property('repository.slug', 'build.id'),\n      urlJob: (function() {\n        return Travis.Urls.job(this.get('repository.slug'), this.get('job.id'));\n      }).property('repository.slug', 'job.id')\n    }),\n    RepoShowToolsView: Travis.View.extend({\n      templateName: 'repos/show/tools',\n      repositoryBinding: 'controller.repository',\n      buildBinding: 'controller.build',\n      jobBinding: 'controller.job',\n      tabBinding: 'controller.tab',\n      toggle: function() {\n        this.set('active', !this.get('active'));\n        return $('#tools .pane').toggle();\n      },\n      branches: (function() {\n        if (this.get('active')) {\n          return this.get('repository.branches');\n        }\n      }).property('active', 'repository.branches'),\n      urlRepository: (function() {\n        return 'https://' + location.host + Travis.Urls.repository(this.get('repository.slug'));\n      }).property('repository.slug'),\n      urlStatusImage: (function() {\n        return Travis.Urls.statusImage(this.get('repository.slug'), this.get('branch.commit.branch'));\n      }).property('repository.slug', 'branch'),\n      markdownStatusImage: (function() {\n        return \"[![Build Status](\" + (this.get('urlStatusImage')) + \")](\" + (this.get('urlRepository')) + \")\";\n      }).property('urlStatusImage'),\n      textileStatusImage: (function() {\n        return \"!\" + (this.get('urlStatusImage')) + \"!:\" + (this.get('urlRepository'));\n      }).property('urlStatusImage'),\n      rdocStatusImage: (function() {\n        return \"{<img src=\\\"\" + (this.get('urlStatusImage')) + \"\\\" alt=\\\"Build Status\\\" />}[\" + (this.get('urlRepository')) + \"]\";\n      }).property('urlStatusImage')\n    })\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/repo/show");minispade.register('views/sidebar', "(function() {(function() {\n\n  this.Travis.reopen({\n    SidebarView: Travis.View.extend({\n      templateName: 'layouts/sidebar'\n    }),\n    WorkersView: Travis.View.extend({\n      toggleWorkers: function(event) {\n        var handle;\n        handle = $(event.target).toggleClass('open');\n        if (handle.hasClass('open')) {\n          return $('#workers li').addClass('open');\n        } else {\n          return $('#workers li').removeClass('open');\n        }\n      }\n    }),\n    WorkersListView: Travis.View.extend({\n      toggle: function(event) {\n        return $(event.target).closest('li').toggleClass('open');\n      }\n    }),\n    WorkersItemView: Travis.View.extend({\n      display: (function() {\n        var name, number, payload, repo, state;\n        name = (this.get('worker.name') || '').replace('travis-', '');\n        state = this.get('worker.state');\n        payload = this.get('worker.payload');\n        if (state === 'working' && payload !== void 0) {\n          repo = payload.repository.slug;\n          number = ' #' + payload.build.number;\n          return (\"<span class='name'>\" + name + \": \" + repo + \"</span> \" + number).htmlSafe();\n        } else {\n          return \"\" + name + \": \" + state;\n        }\n      }).property('worker.state')\n    }),\n    QueueItemView: Travis.View.extend({\n      urlJob: (function() {\n        return Travis.Urls.job(this.get('job.repository.slug'), this.get('job.id'));\n      }).property('job.repository.slug', 'job.id')\n    })\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/sidebar");minispade.register('views/stats', "(function() {(function() {\n\n  this.Travis.reopen({\n    StatsView: Travis.View.extend({\n      templateName: 'stats/show',\n      didInsertElement: function() {},\n      renderChart: function(config) {\n        var chart;\n        chart = new Highcharts.Chart(config);\n        return this.fetch(config.source, function(data) {\n          var stats;\n          stats = (function() {\n            var _i, _len, _ref, _results;\n            _ref = data.stats;\n            _results = [];\n            for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n              stats = _ref[_i];\n              _results.push(config.map(stats));\n            }\n            return _results;\n          })();\n          return chart.series[0].setData(stats);\n        });\n      },\n      fetch: function(url, callback) {\n        return $.ajax({\n          type: 'GET',\n          url: url,\n          accepts: {\n            json: 'application/vnd.travis-ci.2+json'\n          },\n          success: callback\n        });\n      },\n      CHARTS: {\n        repos: {\n          source: '/api/stats/repos',\n          total: 0,\n          map: function(data) {\n            return [Date.parse(data.date), this.total += parseInt(data.count)];\n          },\n          chart: {\n            renderTo: \"repos_stats\"\n          },\n          title: {\n            text: \"Total Projects/Repositories\"\n          },\n          xAxis: {\n            type: \"datetime\",\n            dateTimeLabelFormats: {\n              month: \"%e. %b\",\n              year: \"%b\"\n            }\n          },\n          yAxis: {\n            title: {\n              text: \"Count\"\n            },\n            min: 0\n          },\n          tooltip: {\n            formatter: function() {\n              return Highcharts.dateFormat(\"%e. %b\", this.x) + \": \" + this.y + \" repos\";\n            }\n          },\n          series: [\n            {\n              name: \"Repository Growth\",\n              data: []\n            }\n          ]\n        },\n        builds: {\n          source: '/api/stats/tests',\n          map: function(data) {\n            return [Date.parse(data.date), parseInt(data.count)];\n          },\n          chart: {\n            renderTo: \"tests_stats\",\n            type: \"column\"\n          },\n          title: {\n            text: \"Build Count\"\n          },\n          subtitle: {\n            text: \"last month\"\n          },\n          xAxis: {\n            type: \"datetime\",\n            dateTimeLabelFormats: {\n              month: \"%e. %b\",\n              year: \"%b\"\n            }\n          },\n          yAxis: {\n            title: {\n              text: \"Count\"\n            },\n            min: 0\n          },\n          tooltip: {\n            formatter: function() {\n              return Highcharts.dateFormat(\"%e. %b\", this.x) + \": \" + this.y + \" builds\";\n            }\n          },\n          series: [\n            {\n              name: \"Total Builds\",\n              data: []\n            }\n          ]\n        }\n      }\n    })\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/stats");minispade.register('views/top', "(function() {(function() {\n\n  this.Travis.reopen({\n    TopView: Travis.View.extend({\n      templateName: 'layouts/top',\n      tabBinding: 'controller.tab',\n      userBinding: 'controller.user',\n      gravatarUrl: (function() {\n        return \"https://www.gravatar.com/avatar/\" + (this.get('user.gravatarId')) + \"?s=24&d=mm\";\n      }).property('user.gravatarId'),\n      classHome: (function() {\n        if (this.get('tab') === 'home') {\n          return 'active';\n        }\n      }).property('tab'),\n      classStats: (function() {\n        if (this.get('tab') === 'stats') {\n          return 'active';\n        }\n      }).property('tab'),\n      classProfile: (function() {\n        var classes;\n        classes = ['profile'];\n        if (this.get('tab') === 'profile') {\n          classes.push('active');\n        }\n        classes.push(Travis.app.get('authState'));\n        return classes.join(' ');\n      }).property('tab', 'Travis.app.authState'),\n      showProfile: function() {\n        return $('#top .profile ul').show();\n      },\n      hideProfile: function() {\n        return $('#top .profile ul').hide();\n      }\n    })\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/top");minispade.register('data/sponsors', "(function() {(function() {\n\n  this.Travis.SPONSORS = [\n    {\n      type: 'platinum',\n      url: \"http://www.wooga.com\",\n      image: \"wooga-205x130.png\"\n    }, {\n      type: 'platinum',\n      url: \"http://bendyworks.com\",\n      image: \"bendyworks-205x130.png\"\n    }, {\n      type: 'platinum',\n      url: \"http://cloudcontrol.com\",\n      image: \"cloudcontrol-205x130.png\"\n    }, {\n      type: 'platinum',\n      url: \"http://xing.de\",\n      image: \"xing-205x130.png\"\n    }, {\n      type: 'gold',\n      url: \"http://heroku.com\",\n      image: \"heroku-205x60.png\"\n    }, {\n      type: 'gold',\n      url: \"http://soundcloud.com\",\n      image: \"soundcloud-205x60.png\"\n    }, {\n      type: 'gold',\n      url: \"http://nedap.com\",\n      image: \"nedap-205x60.png\"\n    }, {\n      type: 'gold',\n      url: \"http://mongohq.com\",\n      image: \"mongohq-205x60.png\"\n    }, {\n      type: 'gold',\n      url: \"http://zweitag.de\",\n      image: \"zweitag-205x60.png\"\n    }, {\n      type: 'gold',\n      url: \"http://kanbanery.com\",\n      image: \"kanbanery-205x60.png\"\n    }, {\n      type: 'gold',\n      url: \"http://ticketevolution.com\",\n      image: \"ticketevolution-205x60.jpg\"\n    }, {\n      type: 'gold',\n      url: \"http://plan.io/travis\",\n      image: \"planio-205x60.png\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://cobot.me\\\">Cobot</a><span>: The one tool to run your coworking space</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://jumpstartlab.com\\\">JumpstartLab</a><span>: We build developers</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://evilmartians.com\\\">Evil Martians</a><span>: Agile Ruby on Rails development</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://zendesk.com\\\">Zendesk</a><span>: Love your helpdesk</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://stripe.com\\\">Stripe</a><span>: Payments for developers</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://basho.com\\\">Basho</a><span>: We make Riak!</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://thinkrelevance.com\\\">Relevance</a><span>: We deliver software solutions</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://mindmatters.de\\\">Mindmatters</a><span>: Software für Menschen</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://amenhq.com\\\">Amen</a><span>: The best and worst of everything</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://site5.com\\\">Site5</a><span>: Premium Web Hosting Solutions</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://www.crowdint.com\\\">Crowd Interactive</a><span>: Leading Rails consultancy in Mexico</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://www.atomicobject.com/detroit\\\">Atomic Object</a><span>: Work with really smart people</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://codeminer.com.br\\\">Codeminer</a><span>: smart services for your startup</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://cloudant.com\\\">Cloudant</a><span>: grow into your data layer, not out of it</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://gidsy.com\\\">Gidsy</a><span>: Explore, organize &amp; book unique things to do!</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://5apps.com\\\">5apps</a><span>: Package &amp; deploy HTML5 apps automatically</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://meltmedia.com\\\">Meltmedia</a><span>: We are Interactive Superheroes</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://www.fngtps.com\\\">Fingertips</a><span> offers design and development services</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://www.engineyard.com\\\">Engine Yard</a><span>: Build epic apps, let us handle the rest</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://malwarebytes.org\\\">Malwarebytes</a><span>: Defeat Malware once and for all.</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://readmill.com\\\">Readmill</a><span>: The best reading app on the iPad.</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://www.mdsol.com\\\">Medidata</a><span>: clinical tech improving quality of life</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://coderwall.com/teams/4f27194e973bf000040005f0\\\">ESM</a><span>: Japan's best agile Ruby/Rails consultancy</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://twitter.com\\\">Twitter</a><span>: instantly connects people everywhere</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://agileanimal.com\\\">AGiLE ANiMAL</a><span>: we <3 Travis CI.</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://tupalo.com\\\">Tupalo</a><span>: Discover, review &amp; share local businesses.</span>\"\n    }\n  ];\n\n}).call(this);\n\n})();\n//@ sourceURL=data/sponsors");minispade.register('emoij', "(function() {(function() {\n\n  this.EmojiDictionary = ['-1', '0', '1', '109', '2', '3', '4', '5', '6', '7', '8', '8ball', '9', 'a', 'ab', 'airplane', 'alien', 'ambulance', 'angel', 'anger', 'angry', 'apple', 'aquarius', 'aries', 'arrow_backward', 'arrow_down', 'arrow_forward', 'arrow_left', 'arrow_lower_left', 'arrow_lower_right', 'arrow_right', 'arrow_up', 'arrow_upper_left', 'arrow_upper_right', 'art', 'astonished', 'atm', 'b', 'baby', 'baby_chick', 'baby_symbol', 'balloon', 'bamboo', 'bank', 'barber', 'baseball', 'basketball', 'bath', 'bear', 'beer', 'beers', 'beginner', 'bell', 'bento', 'bike', 'bikini', 'bird', 'birthday', 'black_square', 'blue_car', 'blue_heart', 'blush', 'boar', 'boat', 'bomb', 'book', 'boot', 'bouquet', 'bow', 'bowtie', 'boy', 'bread', 'briefcase', 'broken_heart', 'bug', 'bulb', 'bullettrain_front', 'bullettrain_side', 'bus', 'busstop', 'cactus', 'cake', 'calling', 'camel', 'camera', 'cancer', 'capricorn', 'car', 'cat', 'cd', 'chart', 'checkered_flag', 'cherry_blossom', 'chicken', 'christmas_tree', 'church', 'cinema', 'city_sunrise', 'city_sunset', 'clap', 'clapper', 'clock1', 'clock10', 'clock11', 'clock12', 'clock2', 'clock3', 'clock4', 'clock5', 'clock6', 'clock7', 'clock8', 'clock9', 'closed_umbrella', 'cloud', 'clubs', 'cn', 'cocktail', 'coffee', 'cold_sweat', 'computer', 'confounded', 'congratulations', 'construction', 'construction_worker', 'convenience_store', 'cool', 'cop', 'copyright', 'couple', 'couple_with_heart', 'couplekiss', 'cow', 'crossed_flags', 'crown', 'cry', 'cupid', 'currency_exchange', 'curry', 'cyclone', 'dancer', 'dancers', 'dango', 'dart', 'dash', 'de', 'department_store', 'diamonds', 'disappointed', 'dog', 'dolls', 'dolphin', 'dress', 'dvd', 'ear', 'ear_of_rice', 'egg', 'eggplant', 'egplant', 'eight_pointed_black_star', 'eight_spoked_asterisk', 'elephant', 'email', 'es', 'european_castle', 'exclamation', 'eyes', 'factory', 'fallen_leaf', 'fast_forward', 'fax', 'fearful', 'feelsgood', 'feet', 'ferris_wheel', 'finnadie', 'fire', 'fire_engine', 'fireworks', 'fish', 'fist', 'flags', 'flushed', 'football', 'fork_and_knife', 'fountain', 'four_leaf_clover', 'fr', 'fries', 'frog', 'fuelpump', 'gb', 'gem', 'gemini', 'ghost', 'gift', 'gift_heart', 'girl', 'goberserk', 'godmode', 'golf', 'green_heart', 'grey_exclamation', 'grey_question', 'grin', 'guardsman', 'guitar', 'gun', 'haircut', 'hamburger', 'hammer', 'hamster', 'hand', 'handbag', 'hankey', 'hash', 'headphones', 'heart', 'heart_decoration', 'heart_eyes', 'heartbeat', 'heartpulse', 'hearts', 'hibiscus', 'high_heel', 'horse', 'hospital', 'hotel', 'hotsprings', 'house', 'hurtrealbad', 'icecream', 'id', 'ideograph_advantage', 'imp', 'information_desk_person', 'iphone', 'it', 'jack_o_lantern', 'japanese_castle', 'joy', 'jp', 'key', 'kimono', 'kiss', 'kissing_face', 'kissing_heart', 'koala', 'koko', 'kr', 'leaves', 'leo', 'libra', 'lips', 'lipstick', 'lock', 'loop', 'loudspeaker', 'love_hotel', 'mag', 'mahjong', 'mailbox', 'man', 'man_with_gua_pi_mao', 'man_with_turban', 'maple_leaf', 'mask', 'massage', 'mega', 'memo', 'mens', 'metal', 'metro', 'microphone', 'minidisc', 'mobile_phone_off', 'moneybag', 'monkey', 'monkey_face', 'moon', 'mortar_board', 'mount_fuji', 'mouse', 'movie_camera', 'muscle', 'musical_note', 'nail_care', 'necktie', 'new', 'no_good', 'no_smoking', 'nose', 'notes', 'o', 'o2', 'ocean', 'octocat', 'octopus', 'oden', 'office', 'ok', 'ok_hand', 'ok_woman', 'older_man', 'older_woman', 'open_hands', 'ophiuchus', 'palm_tree', 'parking', 'part_alternation_mark', 'pencil', 'penguin', 'pensive', 'persevere', 'person_with_blond_hair', 'phone', 'pig', 'pill', 'pisces', 'plus1', 'point_down', 'point_left', 'point_right', 'point_up', 'point_up_2', 'police_car', 'poop', 'post_office', 'postbox', 'pray', 'princess', 'punch', 'purple_heart', 'question', 'rabbit', 'racehorse', 'radio', 'rage', 'rage1', 'rage2', 'rage3', 'rage4', 'rainbow', 'raised_hands', 'ramen', 'red_car', 'red_circle', 'registered', 'relaxed', 'relieved', 'restroom', 'rewind', 'ribbon', 'rice', 'rice_ball', 'rice_cracker', 'rice_scene', 'ring', 'rocket', 'roller_coaster', 'rose', 'ru', 'runner', 'sa', 'sagittarius', 'sailboat', 'sake', 'sandal', 'santa', 'satellite', 'satisfied', 'saxophone', 'school', 'school_satchel', 'scissors', 'scorpius', 'scream', 'seat', 'secret', 'shaved_ice', 'sheep', 'shell', 'ship', 'shipit', 'shirt', 'shit', 'shoe', 'signal_strength', 'six_pointed_star', 'ski', 'skull', 'sleepy', 'slot_machine', 'smile', 'smiley', 'smirk', 'smoking', 'snake', 'snowman', 'sob', 'soccer', 'space_invader', 'spades', 'spaghetti', 'sparkler', 'sparkles', 'speaker', 'speedboat', 'squirrel', 'star', 'star2', 'stars', 'station', 'statue_of_liberty', 'stew', 'strawberry', 'sunflower', 'sunny', 'sunrise', 'sunrise_over_mountains', 'surfer', 'sushi', 'suspect', 'sweat', 'sweat_drops', 'swimmer', 'syringe', 'tada', 'tangerine', 'taurus', 'taxi', 'tea', 'telephone', 'tennis', 'tent', 'thumbsdown', 'thumbsup', 'ticket', 'tiger', 'tm', 'toilet', 'tokyo_tower', 'tomato', 'tongue', 'top', 'tophat', 'traffic_light', 'train', 'trident', 'trophy', 'tropical_fish', 'truck', 'trumpet', 'tshirt', 'tulip', 'tv', 'u5272', 'u55b6', 'u6307', 'u6708', 'u6709', 'u6e80', 'u7121', 'u7533', 'u7a7a', 'umbrella', 'unamused', 'underage', 'unlock', 'up', 'us', 'v', 'vhs', 'vibration_mode', 'virgo', 'vs', 'walking', 'warning', 'watermelon', 'wave', 'wc', 'wedding', 'whale', 'wheelchair', 'white_square', 'wind_chime', 'wink', 'wink2', 'wolf', 'woman', 'womans_hat', 'womens', 'x', 'yellow_heart', 'zap', 'zzz'];\n\n}).call(this);\n\n})();\n//@ sourceURL=emoij");minispade.register('ext/jquery', "(function() {(function() {\n\n  $.fn.extend({\n    outerHtml: function() {\n      return $(this).wrap('<div></div>').parent().html();\n    },\n    outerElement: function() {\n      return $($(this).outerHtml()).empty();\n    },\n    flash: function() {\n      return Utils.flash(this);\n    },\n    unflash: function() {\n      return Utils.unflash(this);\n    },\n    filterLog: function() {\n      this.deansi();\n      return this.foldLog();\n    },\n    deansi: function() {\n      return this.html(Utils.deansi(this.html()));\n    },\n    foldLog: function() {\n      return this.html(Utils.foldLog(this.html()));\n    },\n    unfoldLog: function() {\n      return this.html(Utils.unfoldLog(this.html()));\n    },\n    updateTimes: function() {\n      return Utils.updateTimes(this);\n    },\n    activateTab: function(tab) {\n      return Utils.activateTab(this, tab);\n    },\n    timeInWords: function() {\n      return $(this).each(function() {\n        return $(this).text(Utils.timeInWords(parseInt($(this).attr('title'))));\n      });\n    },\n    updateGithubStats: function(repository) {\n      return Utils.updateGithubStats(repository, $(this));\n    }\n  });\n\n  $.extend({\n    isEmpty: function(obj) {\n      if ($.isArray(obj)) {\n        return !obj.length;\n      } else if ($.isObject(obj)) {\n        return !$.keys(obj).length;\n      } else {\n        return !obj;\n      }\n    },\n    isObject: function(obj) {\n      return Object.prototype.toString.call(obj) === '[object Object]';\n    },\n    keys: function(obj) {\n      var keys;\n      keys = [];\n      $.each(obj, function(key) {\n        return keys.push(key);\n      });\n      return keys;\n    },\n    values: function(obj) {\n      var values;\n      values = [];\n      $.each(obj, function(key, value) {\n        return values.push(value);\n      });\n      return values;\n    },\n    underscore: function(string) {\n      return string[0].toLowerCase() + string.substring(1).replace(/([A-Z])?/g, function(match, chr) {\n        if (chr) {\n          return \"_\" + (chr.toUpperCase());\n        } else {\n          return '';\n        }\n      });\n    },\n    camelize: function(string, uppercase) {\n      string = uppercase === false ? $.underscore(string) : $.capitalize(string);\n      return string.replace(/_(.)?/g, function(match, chr) {\n        if (chr) {\n          return chr.toUpperCase();\n        } else {\n          return '';\n        }\n      });\n    },\n    capitalize: function(string) {\n      return string[0].toUpperCase() + string.substring(1);\n    },\n    compact: function(object) {\n      return $.grep(object, function(value) {\n        return !!value;\n      });\n    },\n    all: function(array, callback) {\n      var args, i;\n      args = Array.prototype.slice.apply(arguments);\n      callback = args.pop();\n      array = args.pop() || this;\n      i = 0;\n      while (i < array.length) {\n        if (callback(array[i])) {\n          return false;\n        }\n        i++;\n      }\n      return true;\n    },\n    detect: function(array, callback) {\n      var args, i;\n      args = Array.prototype.slice.apply(arguments);\n      callback = args.pop();\n      array = args.pop() || this;\n      i = 0;\n      while (i < array.length) {\n        if (callback(array[i])) {\n          return array[i];\n        }\n        i++;\n      }\n    },\n    select: function(array, callback) {\n      var args, i, result;\n      args = Array.prototype.slice.apply(arguments);\n      callback = args.pop();\n      array = args.pop() || this;\n      result = [];\n      i = 0;\n      while (i < array.length) {\n        if (callback(array[i])) {\n          result.push(array[i]);\n        }\n        i++;\n      }\n      return result;\n    },\n    slice: function(object, key) {\n      var keys, result;\n      keys = Array.prototype.slice.apply(arguments);\n      object = (typeof keys[0] === 'object' ? keys.shift() : this);\n      result = {};\n      for (key in object) {\n        if (keys.indexOf(key) > -1) {\n          result[key] = object[key];\n        }\n      }\n      return result;\n    },\n    only: function(object) {\n      var key, keys, result;\n      keys = Array.prototype.slice.apply(arguments);\n      object = (typeof keys[0] === 'object' ? keys.shift() : this);\n      result = {};\n      for (key in object) {\n        if (keys.indexOf(key) !== -1) {\n          result[key] = object[key];\n        }\n      }\n      return result;\n    },\n    except: function(object) {\n      var key, keys, result;\n      keys = Array.prototype.slice.apply(arguments);\n      object = (typeof keys[0] === 'object' ? keys.shift() : this);\n      result = {};\n      for (key in object) {\n        if (keys.indexOf(key) === -1) {\n          result[key] = object[key];\n        }\n      }\n      return result;\n    },\n    intersect: function(array, other) {\n      return array.filter(function(element) {\n        return other.indexOf(element) !== -1;\n      });\n    },\n    map: function(elems, callback, arg) {\n      var i, isArray, key, length, ret, value;\n      value = void 0;\n      key = void 0;\n      ret = [];\n      i = 0;\n      length = elems.length;\n      isArray = elems instanceof jQuery || length !== void 0 && typeof length === 'number' && (length > 0 && elems[0] && elems[length - 1]) || length === 0 || jQuery.isArray(elems);\n      if (isArray) {\n        while (i < length) {\n          value = callback(elems[i], i, arg);\n          if (value != null) {\n            ret[ret.length] = value;\n          }\n          i++;\n        }\n      } else {\n        for (key in elems) {\n          value = callback(elems[key], key, arg);\n          if (value != null) {\n            ret[ret.length] = value;\n          }\n        }\n      }\n      return ret.concat.apply([], ret);\n    },\n    shuffle: function(array) {\n      var current, tmp, top;\n      array = array.slice();\n      top = array.length;\n      while (top && --top) {\n        current = Math.floor(Math.random() * (top + 1));\n        tmp = array[current];\n        array[current] = array[top];\n        array[top] = tmp;\n      }\n      return array;\n    },\n    truncate: function(string, length) {\n      if (string.length > length) {\n        return string.trim().substring(0, length) + '...';\n      } else {\n        return string;\n      }\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=ext/jquery");minispade.register('hax0rs', "(function() {(function() {\n\n\n\n}).call(this);\n\n})();\n//@ sourceURL=hax0rs");minispade.register('mocks', "(function() {(function() {\n  var artifact, artifacts, branches, build, builds, commits, data, hooks, id, job, jobs, repositories, repository, responseTime, workers, _i, _j, _k, _l, _len, _len1, _len2, _len3, _len4, _m;\nminispade.require('ext/jquery');\n\n  responseTime = 0;\n\n  repositories = [\n    {\n      id: 1,\n      owner: 'travis-ci',\n      name: 'travis-core',\n      slug: 'travis-ci/travis-core',\n      build_ids: [1, 2],\n      last_build_id: 1,\n      last_build_number: 1,\n      last_build_result: 0,\n      last_build_duration: 30,\n      last_build_started_at: '2012-07-02T00:00:00Z',\n      last_build_finished_at: '2012-07-02T00:00:30Z',\n      description: 'Description of travis-core'\n    }, {\n      id: 2,\n      owner: 'travis-ci',\n      name: 'travis-assets',\n      slug: 'travis-ci/travis-assets',\n      build_ids: [3],\n      last_build_id: 3,\n      last_build_number: 3,\n      last_build_result: 1,\n      last_build_duration: 30,\n      last_build_started_at: '2012-07-02T00:01:00Z',\n      last_build_finished_at: '2012-07-01T00:01:30Z',\n      description: 'Description of travis-assets'\n    }, {\n      id: 3,\n      owner: 'travis-ci',\n      name: 'travis-hub',\n      slug: 'travis-ci/travis-hub',\n      build_ids: [4],\n      last_build_id: 4,\n      last_build_number: 4,\n      last_build_result: void 0,\n      last_build_duration: void 0,\n      last_build_started_at: '2012-07-02T00:02:00Z',\n      last_build_finished_at: void 0,\n      description: 'Description of travis-hub'\n    }\n  ];\n\n  builds = [\n    {\n      id: 1,\n      repository_id: '1',\n      commit_id: 1,\n      job_ids: [1, 2, 3],\n      number: 1,\n      pull_request: false,\n      config: {\n        rvm: ['rbx', '1.9.3', 'jruby']\n      },\n      duration: 30,\n      started_at: '2012-07-02T00:00:00Z',\n      finished_at: '2012-07-02T00:00:30Z',\n      result: 0\n    }, {\n      id: 2,\n      repository_id: '1',\n      commit_id: 2,\n      job_ids: [4],\n      number: 2,\n      pull_request: false,\n      config: {\n        rvm: ['rbx']\n      }\n    }, {\n      id: 3,\n      repository_id: '2',\n      commit_id: 3,\n      job_ids: [5],\n      number: 3,\n      pull_request: false,\n      config: {\n        rvm: ['rbx']\n      },\n      duration: 30,\n      started_at: '2012-07-02T00:01:00Z',\n      finished_at: '2012-07-01T00:01:30Z',\n      result: 1\n    }, {\n      id: 4,\n      repository_id: '3',\n      commit_id: 4,\n      job_ids: [6],\n      number: 4,\n      pull_request: false,\n      config: {\n        rvm: ['rbx']\n      },\n      started_at: '2012-07-02T00:02:00Z'\n    }\n  ];\n\n  commits = [\n    {\n      id: 1,\n      sha: '1234567',\n      branch: 'master',\n      message: 'commit message 1',\n      author_name: 'author name',\n      author_email: 'author@email.com',\n      committer_name: 'committer name',\n      committer_email: 'committer@email.com',\n      compare_url: 'http://github.com/compare/0123456..1234567'\n    }, {\n      id: 2,\n      sha: '2345678',\n      branch: 'feature',\n      message: 'commit message 2',\n      author_name: 'author name',\n      author_email: 'author@email.com',\n      committer_name: 'committer name',\n      committer_email: 'committer@email.com',\n      compare_url: 'http://github.com/compare/0123456..2345678'\n    }, {\n      id: 3,\n      sha: '3456789',\n      branch: 'master',\n      message: 'commit message 3',\n      author_name: 'author name',\n      author_email: 'author@email.com',\n      committer_name: 'committer name',\n      committer_email: 'committer@email.com',\n      compare_url: 'http://github.com/compare/0123456..3456789'\n    }, {\n      id: 4,\n      sha: '4567890',\n      branch: 'master',\n      message: 'commit message 4',\n      author_name: 'author name',\n      author_email: 'author@email.com',\n      committer_name: 'committer name',\n      committer_email: 'committer@email.com',\n      compare_url: 'http://github.com/compare/0123456..4567890'\n    }\n  ];\n\n  jobs = [\n    {\n      id: 1,\n      repository_id: 1,\n      build_id: 1,\n      commit_id: 1,\n      log_id: 1,\n      number: '1.1',\n      config: {\n        rvm: 'rbx'\n      },\n      duration: 30,\n      started_at: '2012-07-02T00:00:00Z',\n      finished_at: '2012-07-02T00:00:30Z',\n      result: 0\n    }, {\n      id: 2,\n      repository_id: 1,\n      build_id: 1,\n      commit_id: 1,\n      log_id: 2,\n      number: '1.2',\n      config: {\n        rvm: '1.9.3'\n      },\n      duration: 40,\n      started_at: '2012-07-02T00:00:00Z',\n      finished_at: '2012-07-02T00:00:40Z',\n      result: 1\n    }, {\n      id: 3,\n      repository_id: 1,\n      build_id: 1,\n      commit_id: 1,\n      log_id: 3,\n      number: '1.3',\n      config: {\n        rvm: 'jruby'\n      },\n      allow_failure: true\n    }, {\n      id: 4,\n      repository_id: 1,\n      build_id: 2,\n      commit_id: 2,\n      log_id: 4,\n      number: '2.1',\n      config: {\n        rvm: 'rbx'\n      }\n    }, {\n      id: 5,\n      repository_id: 2,\n      build_id: 3,\n      commit_id: 3,\n      log_id: 5,\n      number: '3.1',\n      config: {\n        rvm: 'rbx'\n      },\n      duration: 30,\n      started_at: '2012-07-02T00:01:00Z',\n      finished_at: '2012-07-02T00:01:30Z',\n      result: 1\n    }, {\n      id: 6,\n      repository_id: 3,\n      build_id: 4,\n      commit_id: 4,\n      log_id: 6,\n      number: '4.1',\n      config: {\n        rvm: 'rbx'\n      },\n      started_at: '2012-07-02T00:02:00Z'\n    }, {\n      id: 7,\n      repository_id: 1,\n      build_id: 5,\n      commit_id: 5,\n      log_id: 7,\n      number: '5.1',\n      config: {\n        rvm: 'rbx'\n      },\n      state: 'created',\n      queue: 'common'\n    }, {\n      id: 8,\n      repository_id: 1,\n      build_id: 5,\n      commit_id: 5,\n      log_id: 8,\n      number: '5.2',\n      config: {\n        rvm: 'rbx'\n      },\n      state: 'created',\n      queue: 'common'\n    }\n  ];\n\n  artifacts = [\n    {\n      id: 1,\n      body: 'log 1'\n    }, {\n      id: 2,\n      body: 'log 2'\n    }, {\n      id: 3,\n      body: 'log 3'\n    }, {\n      id: 4,\n      body: 'log 4'\n    }, {\n      id: 5,\n      body: 'log 5'\n    }, {\n      id: 6,\n      body: 'log 6'\n    }, {\n      id: 7,\n      body: 'log 7'\n    }, {\n      id: 8,\n      body: 'log 8'\n    }\n  ];\n\n  branches = [\n    {\n      branches: [builds[0], builds[1]],\n      commits: [commits[0], commits[1]]\n    }, {\n      branches: [builds[2]],\n      commits: [commits[2]]\n    }, {\n      branches: [builds[3]],\n      commits: [commits[3]]\n    }\n  ];\n\n  workers = [\n    {\n      id: 1,\n      name: 'ruby-1',\n      host: 'worker.travis-ci.org',\n      state: 'ready'\n    }, {\n      id: 2,\n      name: 'ruby-2',\n      host: 'worker.travis-ci.org',\n      state: 'ready'\n    }\n  ];\n\n  hooks = [\n    {\n      slug: 'travis-ci/travis-core',\n      description: 'description of travis-core',\n      active: true,\n      \"private\": false\n    }, {\n      slug: 'travis-ci/travis-assets',\n      description: 'description of travis-assets',\n      active: false,\n      \"private\": false\n    }, {\n      slug: 'svenfuchs/minimal',\n      description: 'description of minimal',\n      active: true,\n      \"private\": false\n    }\n  ];\n\n  $.mockjax({\n    url: '/repositories',\n    responseTime: responseTime,\n    response: function(settings) {\n      var search, slug;\n      if (!settings.data) {\n        return this.responseText = {\n          repositories: repositories\n        };\n      } else if (slug = settings.data.slug) {\n        return this.responseText = {\n          repositories: [\n            $.detect(repositories, function(repository) {\n              return repository.slug === slug;\n            })\n          ]\n        };\n      } else if (search = settings.data.search) {\n        return this.responseText = {\n          repositories: $.select(repositories, function(repository) {\n            return repository.slug.indexOf(search) > -1;\n          }).toArray()\n        };\n      } else {\n        return raise(\"don't know this ditty\");\n      }\n    }\n  });\n\n  for (_i = 0, _len = repositories.length; _i < _len; _i++) {\n    repository = repositories[_i];\n    $.mockjax({\n      url: '/' + repository.slug,\n      responseTime: responseTime,\n      responseText: {\n        repository: repository\n      }\n    });\n    $.mockjax({\n      url: '/repositories',\n      data: {\n        slug: repository.slug\n      },\n      responseTime: responseTime,\n      responseText: {\n        repositories: [repository]\n      }\n    });\n    $.mockjax({\n      url: '/builds',\n      data: {\n        ids: repository.build_ids\n      },\n      responseTime: responseTime,\n      responseText: {\n        builds: $.select(builds, function(build) {\n          return repository.build_ids.indexOf(build.id) !== -1;\n        })\n      }\n    });\n    $.mockjax({\n      url: '/builds',\n      data: {\n        repository_id: repository.id,\n        event_type: 'push',\n        orderBy: 'number DESC'\n      },\n      responseTime: responseTime,\n      responseText: {\n        builds: (function() {\n          var _j, _len1, _ref, _results;\n          _ref = repository.build_ids;\n          _results = [];\n          for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {\n            id = _ref[_j];\n            _results.push(builds[id - 1]);\n          }\n          return _results;\n        })(),\n        commits: (function() {\n          var _j, _len1, _ref, _results;\n          _ref = repository.build_ids;\n          _results = [];\n          for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {\n            id = _ref[_j];\n            _results.push(commits[builds[id - 1].commit_id - 1]);\n          }\n          return _results;\n        })()\n      }\n    });\n  }\n\n  for (_j = 0, _len1 = builds.length; _j < _len1; _j++) {\n    build = builds[_j];\n    $.mockjax({\n      url: '/builds/' + build.id,\n      responseTime: responseTime,\n      responseText: {\n        build: build,\n        commit: commits[build.commit_id - 1],\n        jobs: (function() {\n          var _k, _len2, _ref, _results;\n          _ref = build.job_ids;\n          _results = [];\n          for (_k = 0, _len2 = _ref.length; _k < _len2; _k++) {\n            id = _ref[_k];\n            _results.push(jobs[id - 1]);\n          }\n          return _results;\n        })()\n      }\n    });\n  }\n\n  for (_k = 0, _len2 = jobs.length; _k < _len2; _k++) {\n    job = jobs[_k];\n    $.mockjax({\n      url: '/jobs/' + job.id,\n      responseTime: responseTime,\n      responseText: {\n        job: job,\n        commit: commits[job.commit_id - 1]\n      }\n    });\n  }\n\n  $.mockjax({\n    url: '/jobs',\n    responseTime: responseTime,\n    responseText: {\n      jobs: $.select(jobs, function(job) {\n        return job.state === 'created';\n      })\n    }\n  });\n\n  for (_l = 0, _len3 = branches.length; _l < _len3; _l++) {\n    data = branches[_l];\n    $.mockjax({\n      url: '/branches',\n      data: {\n        repository_id: data.branches[0].repository_id\n      },\n      responseTime: responseTime,\n      responseText: data\n    });\n  }\n\n  for (_m = 0, _len4 = artifacts.length; _m < _len4; _m++) {\n    artifact = artifacts[_m];\n    $.mockjax({\n      url: '/artifacts/' + artifact.id,\n      responseTime: responseTime,\n      responseText: {\n        artifact: artifact\n      }\n    });\n  }\n\n  $.mockjax({\n    url: '/workers',\n    responseTime: responseTime,\n    responseText: {\n      workers: workers\n    }\n  });\n\n  $.mockjax({\n    url: '/profile/hooks',\n    responseTime: responseTime,\n    responseText: {\n      hooks: hooks\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=mocks");minispade.register('travis/ajax', "(function() {(function() {\n\n  jQuery.support.cors = true;\n\n  this.Travis.Ajax = Ember.Mixin.create({\n    DEFAULT_OPTIONS: {\n      accepts: {\n        json: 'application/vnd.travis-ci.2+json'\n      }\n    },\n    post: function(url, data, callback) {\n      return this.ajax(url, 'post', {\n        data: data,\n        success: callback\n      });\n    },\n    ajax: function(url, method, options) {\n      var access_token, endpoint, _base;\n      endpoint = Travis.config.api_endpoint || '';\n      options = options || {};\n      if (access_token = Travis.app.get('accessToken')) {\n        options.headers || (options.headers = {});\n        (_base = options.headers)['Authorization'] || (_base['Authorization'] = \"token \" + access_token);\n      }\n      options.url = \"\" + endpoint + url;\n      options.type = method;\n      options.dataType = 'json';\n      options.contentType = 'application/json; charset=utf-8';\n      options.context = this;\n      if (options.data && method !== 'GET') {\n        options.data = JSON.stringify(options.data);\n      }\n      return $.ajax($.extend(options, this.DEFAULT_OPTIONS));\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=travis/ajax");minispade.register('travis/log', "(function() {(function() {\n\n  this.Travis.Log = {\n    FOLDS: {\n      schema: /(<p.*?\\/a>\\$ (?:bundle exec )?rake( db:create)? db:schema:load[\\s\\S]*?<p.*?\\/a>-- assume_migrated_upto_version[\\s\\S]*?<\\/p>\\n<p.*?\\/a>.*<\\/p>)/g,\n      migrate: /(<p.*?\\/a>\\$ (?:bundle exec )?rake( db:create)? db:migrate[\\s\\S]*== +\\w+: migrated \\(.*\\) =+)/g,\n      bundle: /(<p.*?\\/a>\\$ bundle install.*<\\/p>\\n(<p.*?\\/a>(Updating|Using|Installing|Fetching|remote:|Receiving|Resolving).*?<\\/p>\\n|<p.*?\\/a><\\/p>\\n)*)/g,\n      exec: /(<p.*?\\/a>[\\/\\w]*.rvm\\/rubies\\/[\\S]*?\\/(ruby|rbx|jruby) .*?<\\/p>)/g\n    },\n    filter: function(log) {\n      log = this.escape(log);\n      log = this.deansi(log);\n      log = log.replace(/\\r/g, '');\n      log = this.number(log);\n      log = this.fold(log);\n      log = log.replace(/\\n/g, '');\n      return log;\n    },\n    stripPaths: function(log) {\n      return log.replace(/\\/home\\/vagrant\\/builds(\\/[^\\/\\n]+){2}\\//g, '');\n    },\n    escape: function(log) {\n      return Handlebars.Utils.escapeExpression(log);\n    },\n    escapeRuby: function(log) {\n      return log.replace(/#<(\\w+.*?)>/, '#&lt;$1&gt;');\n    },\n    number: function(log) {\n      var result;\n      result = '';\n      $.each(log.trim().split('\\n'), function(ix, line) {\n        var number, path;\n        number = ix + 1;\n        path = Travis.Log.location().substr(1).replace(/\\/L\\d+/, '') + '/L' + number;\n        return result += '<p><a href=\\'#%@\\' id=\\'%@\\' name=\\'L%@\\'>%@</a>%@</p>\\n'.fmt(path, path, number, number, line);\n      });\n      return result.trim();\n    },\n    deansi: function(log) {\n      var ansi, text;\n      log = log.replace(/\\r\\r/g, '\\r').replace(/\\033\\[K\\r/g, '\\r').replace(/^.*\\r(?!$)/g, '').replace(/\u001b\\[2K/g, '').replace(/\\033\\(B/g, '');\n      ansi = ansiparse(log);\n      text = '';\n      ansi.forEach(function(part) {\n        var classes;\n        classes = [];\n        part.foreground && classes.push(part.foreground);\n        part.background && classes.push('bg-' + part.background);\n        part.bold && classes.push('bold');\n        part.italic && classes.push('italic');\n        return text += (classes.length ? '<span class=\\'' + classes.join(' ') + '\\'>' + part.text + '</span>' : part.text);\n      });\n      return text.replace(/\\033/g, '');\n    },\n    fold: function(log) {\n      log = this.unfold(log);\n      $.each(Travis.Log.FOLDS, function(name, pattern) {\n        return log = log.replace(pattern, function() {\n          return '<div class=\\'fold ' + name + '\\'>' + arguments[1].trim() + '</div>';\n        });\n      });\n      return log;\n    },\n    unfold: function(log) {\n      return log.replace(/<div class='fold[^']*'>([\\s\\S]*?)<\\/div>/g, '$1\\n');\n    },\n    location: function() {\n      return window.location.hash;\n    }\n  };\n\n}).call(this);\n\n})();\n//@ sourceURL=travis/log");minispade.register('travis/model', "(function() {(function() {\n\n  this.Travis.Model = DS.Model.extend({\n    primaryKey: 'id',\n    id: DS.attr('number'),\n    refresh: function() {\n      var id;\n      id = this.get('id');\n      if (id) {\n        return Travis.app.store.adapter.find(Travis.app.store, this.constructor, id);\n      }\n    },\n    update: function(attrs) {\n      var _this = this;\n      $.each(attrs, function(key, value) {\n        if (key !== 'id') {\n          return _this.set(key, value);\n        }\n      });\n      return this;\n    }\n  });\n\n  this.Travis.Model.reopenClass({\n    find: function() {\n      if (arguments.length === 0) {\n        return Travis.app.store.findAll(this);\n      } else {\n        return this._super.apply(this, arguments);\n      }\n    },\n    filter: function(callback) {\n      return Travis.app.store.filter(this, callback);\n    },\n    load: function(attrs) {\n      return Travis.app.store.load(this, attrs);\n    },\n    buildURL: function(suffix) {\n      var base, url;\n      base = this.url || this.pluralName();\n      Ember.assert('Base URL (' + base + ') must not start with slash', !base || base.toString().charAt(0) !== '/');\n      Ember.assert('URL suffix (' + suffix + ') must not start with slash', !suffix || suffix.toString().charAt(0) !== '/');\n      url = [base];\n      if (suffix !== void 0) {\n        url.push(suffix);\n      }\n      return url.join('/');\n    },\n    singularName: function() {\n      var name, parts;\n      parts = this.toString().split('.');\n      name = parts[parts.length - 1];\n      return name.replace(/([A-Z])/g, '_$1').toLowerCase().slice(1);\n    },\n    pluralName: function() {\n      return Travis.app.store.adapter.pluralize(this.singularName());\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=travis/model");minispade.register('travis/ticker', "(function() {(function() {\n\n  this.Travis.Ticker = Ember.Object.extend({\n    init: function() {\n      if (this.get('interval') !== -1) {\n        return this.schedule();\n      }\n    },\n    tick: function() {\n      var context, target, targets, _i, _len;\n      context = this.get('context');\n      targets = this.get('targets') || [this.get('target')];\n      for (_i = 0, _len = targets.length; _i < _len; _i++) {\n        target = targets[_i];\n        if (context) {\n          target = context.get(target);\n        }\n        if (target) {\n          target.tick();\n        }\n      }\n      return this.schedule();\n    },\n    schedule: function() {\n      var _this = this;\n      return Ember.run.later((function() {\n        return _this.tick();\n      }), this.get('interval') || Travis.app.TICK_INTERVAL);\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=travis/ticker");minispade.register('travis', "(function() {(function() {\nminispade.require('ext/jquery');\nminispade.require('ext/ember/namespace');\n\n  this.Travis = Em.Namespace.create({\n    config: {\n      api_endpoint: $('meta[rel=\"travis.api_endpoint\"]').attr('href')\n    },\n    CONFIG_KEYS: ['rvm', 'gemfile', 'env', 'jdk', 'otp_release', 'php', 'node_js', 'perl', 'python', 'scala'],\n    ROUTES: {\n      'profile': ['profile', 'hooks'],\n      'profile/:login': ['profile', 'hooks'],\n      'profile/:login/profile': ['profile', 'user'],\n      'stats': ['stats', 'show'],\n      ':owner/:name/jobs/:id/:line': ['home', 'job'],\n      ':owner/:name/jobs/:id': ['home', 'job'],\n      ':owner/:name/builds/:id': ['home', 'build'],\n      ':owner/:name/builds': ['home', 'builds'],\n      ':owner/:name/pull_requests': ['home', 'pullRequests'],\n      ':owner/:name/branches': ['home', 'branches'],\n      ':owner/:name': ['home', 'current'],\n      '': ['home', 'index'],\n      '#': ['home', 'index']\n    },\n    QUEUES: [\n      {\n        name: 'common',\n        display: 'Common'\n      }, {\n        name: 'php',\n        display: 'PHP, Perl and Python'\n      }, {\n        name: 'node_js',\n        display: 'Node.js'\n      }, {\n        name: 'jvmotp',\n        display: 'JVM and Erlang'\n      }, {\n        name: 'rails',\n        display: 'Rails'\n      }, {\n        name: 'spree',\n        display: 'Spree'\n      }\n    ],\n    INTERVALS: {\n      sponsors: -1,\n      times: -1,\n      updateTimes: 1000\n    },\n    run: function(attrs) {\n      console.log(\"Connecting to \" + Travis.config.api_endpoint);\n      return this.app = Travis.App.create(attrs || {});\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=travis");minispade.register('config/i18n', "(function() {console.log('FOO')\nvar I18n = I18n || {};\nI18n.translations = {\"ca\":{\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"fr\":\"Français\",\"ja\":\"日本語\",\"nb\":\"Norsk Bokmål\",\"nl\":\"Nederlands\",\"pl\":\"Polski\",\"pt-BR\":\"português brasileiro\",\"ru\":\"Русский\"}},\"en\":{\"errors\":{\"messages\":{\"not_found\":\"not found\",\"already_confirmed\":\"was already confirmed\",\"not_locked\":\"was not locked\"}},\"devise\":{\"failure\":{\"unauthenticated\":\"You need to sign in or sign up before continuing.\",\"unconfirmed\":\"You have to confirm your account before continuing.\",\"locked\":\"Your account is locked.\",\"invalid\":\"Invalid email or password.\",\"invalid_token\":\"Invalid authentication token.\",\"timeout\":\"Your session expired, please sign in again to continue.\",\"inactive\":\"Your account was not activated yet.\"},\"sessions\":{\"signed_in\":\"Signed in successfully.\",\"signed_out\":\"Signed out successfully.\"},\"passwords\":{\"send_instructions\":\"You will receive an email with instructions about how to reset your password in a few minutes.\",\"updated\":\"Your password was changed successfully. You are now signed in.\"},\"confirmations\":{\"send_instructions\":\"You will receive an email with instructions about how to confirm your account in a few minutes.\",\"confirmed\":\"Your account was successfully confirmed. You are now signed in.\"},\"registrations\":{\"signed_up\":\"You have signed up successfully. If enabled, a confirmation was sent to your e-mail.\",\"updated\":\"You updated your account successfully.\",\"destroyed\":\"Bye! Your account was successfully cancelled. We hope to see you again soon.\"},\"unlocks\":{\"send_instructions\":\"You will receive an email with instructions about how to unlock your account in a few minutes.\",\"unlocked\":\"Your account was successfully unlocked. You are now signed in.\"},\"mailer\":{\"confirmation_instructions\":{\"subject\":\"Confirmation instructions\"},\"reset_password_instructions\":{\"subject\":\"Reset password instructions\"},\"unlock_instructions\":{\"subject\":\"Unlock Instructions\"}}},\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} hour\",\"other\":\"%{count} hours\"},\"minutes_exact\":{\"one\":\"%{count} minute\",\"other\":\"%{count} minutes\"},\"seconds_exact\":{\"one\":\"%{count} second\",\"other\":\"%{count} seconds\"}}},\"workers\":\"Workers\",\"queue\":\"Queue\",\"no_job\":\"There are no jobs\",\"repositories\":{\"branch\":\"Branch\",\"image_url\":\"Image URL\",\"markdown\":\"Markdown\",\"textile\":\"Textile\",\"rdoc\":\"RDOC\",\"commit\":\"Commit\",\"message\":\"Message\",\"started_at\":\"Started\",\"duration\":\"Duration\",\"finished_at\":\"Finished\",\"tabs\":{\"current\":\"Current\",\"build_history\":\"Build History\",\"branches\":\"Branch Summary\",\"pull_requests\":\"Pull Requests\",\"build\":\"Build\",\"job\":\"Job\"}},\"build\":{\"job\":\"Job\",\"duration\":\"Duration\",\"finished_at\":\"Finished\"},\"jobs\":{\"messages\":{\"sponsored_by\":\"This test suite was run on a worker box sponsored by\"},\"build_matrix\":\"Build Matrix\",\"allowed_failures\":\"Allowed Failures\",\"author\":\"Author\",\"config\":\"Config\",\"compare\":\"Compare\",\"committer\":\"Committer\",\"branch\":\"Branch\",\"commit\":\"Commit\",\"message\":\"Message\",\"started_at\":\"Started\",\"duration\":\"Duration\",\"finished_at\":\"Finished\"},\"builds\":{\"name\":\"Build\",\"messages\":{\"sponsored_by\":\"This test suite was run on a worker box sponsored by\"},\"build_matrix\":\"Build Matrix\",\"allowed_failures\":\"Allowed Failures\",\"author\":\"Author\",\"config\":\"Config\",\"compare\":\"Compare\",\"committer\":\"Committer\",\"branch\":\"Branch\",\"commit\":\"Commit\",\"message\":\"Message\",\"started_at\":\"Started\",\"duration\":\"Duration\",\"finished_at\":\"Finished\",\"show_more\":\"Show more\"},\"layouts\":{\"top\":{\"home\":\"Home\",\"blog\":\"Blog\",\"docs\":\"Docs\",\"stats\":\"Stats\",\"github_login\":\"Sign in with Github\",\"profile\":\"Profile\",\"sign_out\":\"Sign Out\",\"admin\":\"Admin\"},\"application\":{\"fork_me\":\"Fork me on Github\",\"recent\":\"Recent\",\"search\":\"Search\",\"sponsers\":\"Sponsors\",\"sponsors_link\":\"See all of our amazing sponsors &rarr;\",\"my_repositories\":\"My Repositories\"},\"about\":{\"alpha\":\"This stuff is alpha.\",\"messages\":{\"alpha\":\"Please do <strong>not</strong> consider this a stable service. We're still far from that! More info <a href='https://github.com/travis-ci'>here.</a>\"},\"join\":\"Join us and help!\",\"mailing_list\":\"Mailing List\",\"repository\":\"Repository\",\"twitter\":\"Twitter\"},\"mobile\":{\"author\":\"Author\",\"build\":\"Build\",\"build_matrix\":\"Build Matrix\",\"commit\":\"Commit\",\"committer\":\"Committer\",\"compare\":\"Compare\",\"config\":\"Config\",\"duration\":\"Duration\",\"finished_at\":\"Finished at\",\"job\":\"Job\",\"log\":\"Log\"}},\"profiles\":{\"show\":{\"email\":\"Email\",\"github\":\"Github\",\"message\":{\"your_repos\":\"  Flick the switches below to turn on the Travis service hook for your projects, then push to GitHub.<br />\\n  To test against multiple rubies, see\",\"config\":\"how to configure custom build options\"},\"messages\":{\"notice\":\"To get started, please read our <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">Getting Started guide</a>.\\n  <small>It will only take a couple of minutes.</small>\"},\"token\":\"Token\",\"your_repos\":\"Your Repositories\",\"update\":\"Update\",\"update_locale\":\"Update\",\"your_locale\":\"Your Locale\"}},\"statistics\":{\"index\":{\"count\":\"Count\",\"repo_growth\":\"Repository Growth\",\"total_projects\":\"Total Projects/Repositories\",\"build_count\":\"Build Count\",\"last_month\":\"last month\",\"total_builds\":\"Total Builds\"}},\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"fr\":\"Français\",\"ja\":\"日本語\",\"nb\":\"Norsk Bokmål\",\"pl\":\"Polski\",\"ru\":\"Русский\",\"nl\":\"Nederlands\",\"pt-BR\":\"português brasileiro\"}},\"es\":{\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} hora\",\"other\":\"%{count} horas\"},\"minutes_exact\":{\"one\":\"%{count} minuto\",\"other\":\"%{count} minutos\"},\"seconds_exact\":{\"one\":\"%{count} segundo\",\"other\":\"%{count} segundos\"}}},\"workers\":\"Procesos\",\"queue\":\"Cola\",\"no_job\":\"No hay trabajos\",\"repositories\":{\"branch\":\"Rama\",\"image_url\":\"Imagen URL\",\"markdown\":\"Markdown\",\"textile\":\"Textile\",\"rdoc\":\"RDOC\",\"commit\":\"Commit\",\"message\":\"Mensaje\",\"started_at\":\"Iniciado\",\"duration\":\"Duración\",\"finished_at\":\"Finalizado\",\"tabs\":{\"current\":\"Actual\",\"build_history\":\"Histórico\",\"branches\":\"Ramas\",\"build\":\"Builds\",\"job\":\"Trabajo\"}},\"build\":{\"job\":\"Trabajo\",\"duration\":\"Duración\",\"finished_at\":\"Finalizado\"},\"jobs\":{\"messages\":{\"sponsored_by\":\"Esta serie de tests han sido ejecutados en una caja de Proceso patrocinada por\"},\"build_matrix\":\"Matriz de Builds\",\"allowed_failures\":\"Fallos Permitidos\",\"author\":\"Autor\",\"config\":\"Configuración\",\"compare\":\"Comparar\",\"committer\":\"Committer\",\"branch\":\"Rama\",\"commit\":\"Commit\",\"message\":\"Mensaje\",\"started_at\":\"Iniciado\",\"duration\":\"Duración\",\"finished_at\":\"Finalizado\",\"sponsored_by\":\"Patrocinado por\"},\"builds\":{\"name\":\"Build\",\"messages\":{\"sponsored_by\":\"Esta serie de tests han sido ejecutados en una caja de Proceso patrocinada por\"},\"build_matrix\":\"Matriz de Builds\",\"allowed_failures\":\"Fallos Permitidos\",\"author\":\"Autor\",\"config\":\"Configuración\",\"compare\":\"Comparar\",\"committer\":\"Committer\",\"branch\":\"Rama\",\"commit\":\"Commit\",\"message\":\"Mensaje\",\"started_at\":\"Iniciado\",\"duration\":\"Duración\",\"finished_at\":\"Finalizado\"},\"layouts\":{\"top\":{\"home\":\"Inicio\",\"blog\":\"Blog\",\"docs\":\"Documentación\",\"stats\":\"Estadísticas\",\"github_login\":\"Iniciar sesión con Github\",\"profile\":\"Perfil\",\"sign_out\":\"Desconectar\",\"admin\":\"Admin\"},\"application\":{\"fork_me\":\"Hazme un Fork en Github\",\"recent\":\"Reciente\",\"search\":\"Buscar\",\"sponsers\":\"Patrocinadores\",\"sponsors_link\":\"Ver todos nuestros patrocinadores &rarr;\",\"my_repositories\":\"Mis Repositorios\"},\"about\":{\"alpha\":\"Esto es alpha.\",\"messages\":{\"alpha\":\"Por favor <strong>no</strong> considereis esto un servicio estable. Estamos estamos aún lejos de ello! Más información <a href='https://github.com/travis-ci'>aquí.</a>\"},\"join\":\"Únetenos y ayudanos!\",\"mailing_list\":\"Lista de Correos\",\"repository\":\"Repositorio\",\"twitter\":\"Twitter\"}},\"profiles\":{\"show\":{\"email\":\"Correo electrónico\",\"github\":\"Github\",\"message\":{\"your_repos\":\"  Activa los interruptores para inicial el  Travis service hook para tus proyectos, y haz un Push en GitHub.<br />\\n  Para probar varias versiones de ruby, mira\",\"config\":\"como configurar tus propias opciones para el Build\"},\"messages\":{\"notice\":\"Para comenzar, por favor lee nuestra <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">Guía de Inicio </a>.\\n  <small>Solo tomará unos pocos minutos.</small>\"},\"token\":\"Token\",\"your_repos\":\"Tus repositorios\",\"update\":\"Actualizar\",\"update_locale\":\"Actualizar\",\"your_locale\":\"Tu Idioma\"}},\"statistics\":{\"index\":{\"count\":\"Número\",\"repo_growth\":\"Crecimiento de Repositorios\",\"total_projects\":\"Total de Proyectos/Repositorios\",\"build_count\":\"Número de Builds\",\"last_month\":\"mes anterior\",\"total_builds\":\"Total de Builds\"}},\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"fr\":\"Français\",\"ja\":\"日本語\",\"nb\":\"Norsk Bokmål\",\"pl\":\"Polski\",\"ru\":\"Русский\",\"nl\":\"Nederlands\",\"pt-BR\":\"português brasileiro\"}},\"fr\":{\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} heure\",\"other\":\"%{count} heures\"},\"minutes_exact\":{\"one\":\"%{count} minute\",\"other\":\"%{count} minutes\"},\"seconds_exact\":{\"one\":\"%{count} seconde\",\"other\":\"%{count} secondes\"}}},\"workers\":\"Processus\",\"queue\":\"File\",\"no_job\":\"Pas de tâches\",\"repositories\":{\"branch\":\"Branche\",\"image_url\":\"Image\",\"markdown\":\"Markdown\",\"textile\":\"Textile\",\"rdoc\":\"RDOC\",\"commit\":\"Commit\",\"message\":\"Message\",\"started_at\":\"Commencé\",\"duration\":\"Durée\",\"finished_at\":\"Terminé\",\"tabs\":{\"current\":\"Actuel\",\"build_history\":\"Historique des tâches\",\"branches\":\"Résumé des branches\",\"build\":\"Construction\",\"job\":\"Tâche\"}},\"build\":{\"job\":\"Tâche\",\"duration\":\"Durée\",\"finished_at\":\"Terminé\"},\"jobs\":{\"messages\":{\"sponsored_by\":\"Cette série de tests a été exécutée sur une machine sponsorisée par\"},\"build_matrix\":\"Matrice des versions\",\"allowed_failures\":\"Échecs autorisés\",\"author\":\"Auteur\",\"config\":\"Config\",\"compare\":\"Comparer\",\"committer\":\"Committeur\",\"branch\":\"Branche\",\"commit\":\"Commit\",\"message\":\"Message\",\"started_at\":\"Commencé\",\"duration\":\"Durée\",\"finished_at\":\"Terminé\",\"sponsored_by\":\"Cette série de tests a été exécutée sur une machine sponsorisée par\"},\"builds\":{\"name\":\"Version\",\"messages\":{\"sponsored_by\":\"Cette série de tests a été exécutée sur une machine sponsorisée par\"},\"build_matrix\":\"Matrice des versions\",\"allowed_failures\":\"Échecs autorisés\",\"author\":\"Auteur\",\"config\":\"Config\",\"compare\":\"Comparer\",\"committer\":\"Committeur\",\"branch\":\"Branche\",\"commit\":\"Commit\",\"message\":\"Message\",\"started_at\":\"Commencé\",\"duration\":\"Durée\",\"finished_at\":\"Terminé\"},\"layouts\":{\"top\":{\"home\":\"Accueil\",\"blog\":\"Blog\",\"docs\":\"Documentation\",\"stats\":\"Statistiques\",\"github_login\":\"Connection Github\",\"profile\":\"Profil\",\"sign_out\":\"Déconnection\",\"admin\":\"Admin\"},\"application\":{\"fork_me\":\"Faites un Fork sur Github\",\"recent\":\"Récent\",\"search\":\"Chercher\",\"sponsers\":\"Sponsors\",\"sponsors_link\":\"Voir tous nos extraordinaire sponsors &rarr;\",\"my_repositories\":\"Mes dépôts\"},\"about\":{\"alpha\":\"Ceci est en alpha.\",\"messages\":{\"alpha\":\"S'il vous plaît ne considérez <strong>pas</strong> ce service comme étant stable. Nous sommes loin de ça! Plus d'infos <a href='https://github.com/travis-ci'>ici.</a>\"},\"join\":\"Joignez-vous à nous et aidez-nous!\",\"mailing_list\":\"Liste de distribution\",\"repository\":\"Dépôt\",\"twitter\":\"Twitter\"},\"mobile\":{\"author\":\"Auteur\",\"build\":\"Version\",\"build_matrix\":\"Matrice des versions\",\"commit\":\"Commit\",\"committer\":\"Committeur\",\"compare\":\"Comparer\",\"config\":\"Config\",\"duration\":\"Durée\",\"finished_at\":\"Terminé à\",\"job\":\"Tâche\",\"log\":\"Journal\"}},\"profiles\":{\"show\":{\"github\":\"Github\",\"message\":{\"your_repos\":\"Utilisez les boutons ci-dessous pour activer Travis sur vos projets puis déployez sur GitHub.<br />\\nPour tester sur plus de versions de ruby, voir\",\"config\":\"comment configurer des options de version personnalisées\"},\"messages\":{\"notice\":\"Pour commencer, veuillez lire notre <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">guide de démarrage</a>.\\n <small>Cela ne vous prendra que quelques minutes.</small>\"},\"token\":\"Jeton\",\"your_repos\":\"Vos dépôts\",\"email\":\"Courriel\",\"update\":\"Modifier\",\"update_locale\":\"Modifier\",\"your_locale\":\"Votre langue\"}},\"statistics\":{\"index\":{\"count\":\"Décompte\",\"repo_growth\":\"Croissance de dépôt\",\"total_projects\":\"Total des projets/dépôts\",\"build_count\":\"Décompte des versions\",\"last_month\":\"mois dernier\",\"total_builds\":\"Total des versions\"}},\"admin\":{\"actions\":{\"create\":\"créer\",\"created\":\"créé\",\"delete\":\"supprimer\",\"deleted\":\"supprimé\",\"update\":\"mise à jour\",\"updated\":\"mis à jour\"},\"credentials\":{\"log_out\":\"Déconnection\"},\"delete\":{\"confirmation\":\"Oui, je suis sure\",\"flash_confirmation\":\"%{name} a été détruit avec succès\"},\"flash\":{\"error\":\"%{name} n'a pas pu être %{action}\",\"noaction\":\"Aucune action n'a été entreprise\",\"successful\":\"%{name} a réussi à %{action}\"},\"history\":{\"name\":\"Historique\",\"no_activity\":\"Aucune activité\",\"page_name\":\"Historique pour %{name}\"},\"list\":{\"add_new\":\"Ajouter un nouveau\",\"delete_action\":\"Supprimer\",\"delete_selected\":\"Supprimer la sélection\",\"edit_action\":\"Modifier\",\"search\":\"Rechercher\",\"select\":\"Sélectionner le %{name} à modifier\",\"select_action\":\"Sélectionner\",\"show_all\":\"Montrer tout\"},\"new\":{\"basic_info\":\"Information de base\",\"cancel\":\"Annuler\",\"chosen\":\"%{name} choisi\",\"chose_all\":\"Choisir tout\",\"clear_all\":\"Déselectionner tout\",\"many_chars\":\"caractères ou moins\",\"one_char\":\"caractère.\",\"optional\":\"Optionnel\",\"required\":\"Requis\",\"save\":\"Sauvegarder\",\"save_and_add_another\":\"Sauvegarder et en ajouter un autre\",\"save_and_edit\":\"Sauvegarder et modifier\",\"select_choice\":\"Faites vos choix et cliquez\"},\"dashboard\":{\"add_new\":\"Ajouter un nouveau\",\"last_used\":\"Dernière utilisation\",\"model_name\":\"Nom du modèle\",\"modify\":\"Modification\",\"name\":\"Tableau de bord\",\"pagename\":\"Administration du site\",\"records\":\"Enregistrements\",\"show\":\"Voir\",\"ago\":\"plus tôt\"}},\"home\":{\"name\":\"accueil\"},\"repository\":{\"duration\":\"Durée\"},\"devise\":{\"confirmations\":{\"confirmed\":\"Votre compte a été crée avec succès. Vous être maintenant connecté.\",\"send_instructions\":\"Vous allez recevoir un courriel avec les instructions de confirmation de votre compte dans quelques minutes.\"},\"failure\":{\"inactive\":\"Votre compte n'a pas encore été activé.\",\"invalid\":\"Adresse courriel ou mot de passe invalide.\",\"invalid_token\":\"Jeton d'authentification invalide.\",\"locked\":\"Votre compte est bloqué.\",\"timeout\":\"Votre session est expirée, veuillez vous reconnecter pour continuer.\",\"unauthenticated\":\"Vous devez vous connecter ou vous enregistrer afin de continuer\",\"unconfirmed\":\"Vous devez confirmer votre compte avant de continuer.\"},\"mailer\":{\"confirmation_instructions\":{\"subject\":\"Instructions de confirmations\"},\"reset_password_instructions\":{\"subject\":\"Instruction de remise à zéro du mot de passe\"},\"unlock_instructions\":{\"subject\":\"Instruction de débloquage\"}},\"passwords\":{\"send_instructions\":\"Vous recevrez un courriel avec les instructions de remise à zéro du mot de passe dans quelques minutes.\",\"updated\":\"Votre mot de passe a été changé avec succès. Vous êtes maintenant connecté.\"},\"registrations\":{\"destroyed\":\"Au revoir! Votre compte a été annulé avec succès. Nous espérons vous revoir bientôt.\",\"signed_up\":\"Vous êtes enregistré avec succès. Si activé, une confirmation vous a été envoyé par courriel.\",\"updated\":\"Votre compte a été mis a jour avec succès\"},\"sessions\":{\"signed_in\":\"Connecté avec succès\",\"signed_out\":\"Déconnecté avec succès\"},\"unlocks\":{\"send_instructions\":\"Vous recevrez un courriel contenant les instructions pour débloquer votre compte dans quelques minutes.\",\"unlocked\":\"Votre compte a été débloqué avec succès.\"}},\"errors\":{\"messages\":{\"already_confirmed\":\"étais déja confirmé\",\"not_found\":\"n'a pas été trouvé\",\"not_locked\":\"n'étais pas bloqué\"}},\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"ja\":\"日本語\",\"ru\":\"Русский\",\"fr\":\"Français\",\"nb\":\"Norsk Bokmål\",\"pl\":\"Polski\",\"nl\":\"Nederlands\",\"pt-BR\":\"português brasileiro\"}},\"ja\":{\"workers\":\"ワーカー\",\"queue\":\"キュー\",\"no_job\":\"ジョブはありません\",\"repositories\":{\"branch\":\"ブランチ\",\"image_url\":\"画像URL\",\"markdown\":\".md\",\"textile\":\".textile\",\"rdoc\":\".rdoc\",\"commit\":\"コミット\",\"message\":\"メッセージ\",\"started_at\":\"開始時刻\",\"duration\":\"処理時間\",\"finished_at\":\"終了時刻\",\"tabs\":{\"current\":\"最新\",\"build_history\":\"ビルド履歴\",\"branches\":\"ブランチまとめ\",\"build\":\"ビルド\",\"job\":\"ジョブ\"}},\"build\":{\"job\":\"ジョブ\",\"duration\":\"処理時間\",\"finished_at\":\"終了時刻\"},\"jobs\":{\"messages\":{\"sponsored_by\":\"このテストは以下のスポンサーの協力で行いました。\"},\"build_matrix\":\"ビルドマトリクス\",\"allowed_failures\":\"失敗許容範囲内\",\"author\":\"制作者\",\"config\":\"設定\",\"compare\":\"比較\",\"committer\":\"コミット者\",\"branch\":\"ブランチ\",\"commit\":\"コミット\",\"message\":\"メッセージ\",\"started_at\":\"開始時刻\",\"duration\":\"処理時間\",\"finished_at\":\"終了時刻\"},\"builds\":{\"name\":\"ビルド\",\"messages\":{\"sponsored_by\":\"このテストは以下のスポンサーの協力で行いました。\"},\"build_matrix\":\"失敗許容範囲外\",\"allowed_failures\":\"失敗許容範囲内\",\"author\":\"制作者\",\"config\":\"設定\",\"compare\":\"比較\",\"committer\":\"コミット者\",\"branch\":\"ブランチ\",\"commit\":\"コミット\",\"message\":\"メッセージ\",\"started_at\":\"開始時刻\",\"duration\":\"処理時間\",\"finished_at\":\"終了時刻\"},\"layouts\":{\"about\":{\"alpha\":\"まだアルファですよ!\",\"join\":\"参加してみよう!\",\"mailing_list\":\"メールリスト\",\"messages\":{\"alpha\":\"Travis-ciは安定したサービスまで後一歩!詳しくは<a href='https://github.com/travis-ci'>こちら</a>\"},\"repository\":\"リポジトリ\",\"twitter\":\"ツイッター\"},\"application\":{\"fork_me\":\"Githubでフォークしよう\",\"my_repositories\":\"マイリポジトリ\",\"recent\":\"最近\",\"search\":\"検索\",\"sponsers\":\"スポンサー\",\"sponsors_link\":\"スポンサーをもっと見る &rarr;\"},\"top\":{\"blog\":\"ブログ\",\"docs\":\"Travisとは?\",\"github_login\":\"Githubでログイン\",\"home\":\"ホーム\",\"profile\":\"プロフィール\",\"sign_out\":\"ログアウト\",\"stats\":\"統計\",\"admin\":\"管理\"},\"mobile\":{\"author\":\"制作者\",\"build\":\"ビルド\",\"build_matrix\":\"ビルドマトリクス\",\"commit\":\"コミット\",\"committer\":\"コミット者\",\"compare\":\"比較\",\"config\":\"設定\",\"duration\":\"処理時間\",\"finished_at\":\"終了時刻\",\"job\":\"ジョブ\",\"log\":\"ログ\"}},\"profiles\":{\"show\":{\"github\":\"Github\",\"email\":\"メール\",\"message\":{\"config\":\"詳細設定\",\"your_repos\":\"以下のスイッチを設定し、Travis-ciを有効にします。Githubへプッシュしたらビルドは自動的に開始します。複数バーションや細かい設定はこちらへ:\"},\"messages\":{\"notice\":\"まずは<a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">Travisのはじめ方</a>を参照してください。\"},\"token\":\"トークン\",\"your_repos\":\"リポジトリ\",\"update\":\"更新\",\"update_locale\":\"更新\",\"your_locale\":\"言語設定\"}},\"statistics\":{\"index\":{\"build_count\":\"ビルド数\",\"count\":\"数\",\"last_month\":\"先月\",\"repo_growth\":\"リポジトリ\",\"total_builds\":\"合計ビルド数\",\"total_projects\":\"合計リポジトリ\"}},\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"fr\":\"Français\",\"ja\":\"日本語\",\"nb\":\"Norsk Bokmål\",\"pl\":\"Polski\",\"ru\":\"Русский\",\"nl\":\"Nederlands\",\"pt-BR\":\"português brasileiro\"}},\"nb\":{\"admin\":{\"actions\":{\"create\":\"opprett\",\"created\":\"opprettet\",\"delete\":\"slett\",\"deleted\":\"slettet\",\"update\":\"oppdater\",\"updated\":\"oppdatert\"},\"credentials\":{\"log_out\":\"Logg ut\"},\"dashboard\":{\"add_new\":\"Legg til ny\",\"ago\":\"siden\",\"last_used\":\"Sist brukt\",\"model_name\":\"Modell\",\"modify\":\"Rediger\",\"name\":\"Dashbord\",\"pagename\":\"Nettstedsadministrasjon\",\"records\":\"Oppføringer\",\"show\":\"Vis\"},\"delete\":{\"confirmation\":\"Ja, jeg er sikker\",\"flash_confirmation\":\"%{name} ble slettet\"},\"flash\":{\"error\":\"%{name} kunne ikke bli %{action}\",\"noaction\":\"Ingen handlinger ble utført\",\"successful\":\"%{name} ble %{action}\"},\"history\":{\"name\":\"Logg\",\"no_activity\":\"Ingen aktivitet\",\"page_name\":\"Logg for %{name}\"},\"list\":{\"add_new\":\"Legg til ny\",\"delete_action\":\"Slett\",\"delete_selected\":\"Slett valgte\",\"edit_action\":\"Rediger\",\"search\":\"Søk\",\"select\":\"Velg %{name} for å redigere\",\"select_action\":\"Velg\",\"show_all\":\"Vis alle \"},\"new\":{\"basic_info\":\"Basisinformasjon\",\"cancel\":\"Avbryt\",\"chosen\":\"Valgt %{name}\",\"chose_all\":\"Velg alle\",\"clear_all\":\"Fjern alle\",\"many_chars\":\"eller færre tegn.\",\"one_char\":\"tegn.\",\"optional\":\"Valgfri\",\"required\":\"Påkrevd\",\"save\":\"Lagre\",\"save_and_add_another\":\"Lagre og legg til ny\",\"save_and_edit\":\"Lagre og rediger\",\"select_choice\":\"Kryss av for dine valg og klikk\"}},\"build\":{\"duration\":\"Varighet\",\"finished_at\":\"Fullført\",\"job\":\"Jobb\"},\"builds\":{\"allowed_failures\":\"Tillatte feil\",\"author\":\"Forfatter\",\"branch\":\"Gren\",\"build_matrix\":\"Jobbmatrise\",\"commit\":\"Innsending\",\"committer\":\"Innsender\",\"compare\":\"Sammenlign\",\"config\":\"Oppsett\",\"duration\":\"Varighet\",\"finished_at\":\"Fullført\",\"message\":\"Beskrivelse\",\"messages\":{\"sponsored_by\":\"Denne testen ble kjørt på en maskin sponset av\"},\"name\":\"Jobb\",\"started_at\":\"Startet\"},\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} time\",\"other\":\"%{count} timer\"},\"minutes_exact\":{\"one\":\"%{count} minutt\",\"other\":\"%{count} minutter\"},\"seconds_exact\":{\"one\":\"%{count} sekund\",\"other\":\"%{count} sekunder\"}}},\"devise\":{\"confirmations\":{\"confirmed\":\"Din konto er aktivert og du er nå innlogget.\",\"send_instructions\":\"Om noen få minutter så vil du få en e-post med informasjon om hvordan du bekrefter kontoen din.\"},\"failure\":{\"inactive\":\"Kontoen din har ikke blitt aktivert enda.\",\"invalid\":\"Ugyldig e-post eller passord.\",\"invalid_token\":\"Ugyldig autentiseringskode.\",\"locked\":\"Kontoen din er låst.\",\"timeout\":\"Du ble logget ut siden på grunn av mangel på aktivitet, vennligst logg inn på nytt.\",\"unauthenticated\":\"Du må logge inn eller registrere deg for å fortsette.\",\"unconfirmed\":\"Du må bekrefte kontoen din før du kan fortsette.\"},\"mailer\":{\"confirmation_instructions\":{\"subject\":\"Bekreftelsesinformasjon\"},\"reset_password_instructions\":{\"subject\":\"Instruksjoner for å få nytt passord\"},\"unlock_instructions\":{\"subject\":\"Opplåsningsinstruksjoner\"}},\"passwords\":{\"send_instructions\":\"Om noen få minutter så vil du få en epost med informasjon om hvordan du kan få et nytt passord.\",\"updated\":\"Passordet ditt ble endret, og du er logget inn.\"},\"registrations\":{\"destroyed\":\"Adjø! Kontoen din ble kansellert. Vi håper vi ser deg igjen snart.\",\"signed_up\":\"Du er nå registrert.\",\"updated\":\"Kontoen din ble oppdatert.\"},\"sessions\":{\"signed_in\":\"Du er nå logget inn.\",\"signed_out\":\"Du er nå logget ut.\"},\"unlocks\":{\"send_instructions\":\"Om noen få minutter så kommer du til å få en e-post med informasjon om hvordan du kan låse opp kontoen din.\",\"unlocked\":\"Kontoen din ble låst opp, og du er nå logget inn igjen.\"}},\"errors\":{\"messages\":{\"already_confirmed\":\"har allerede blitt bekreftet\",\"not_found\":\"ikke funnnet\",\"not_locked\":\"var ikke låst\"}},\"home\":{\"name\":\"hjem\"},\"jobs\":{\"allowed_failures\":\"Tillatte feil\",\"author\":\"Forfatter\",\"branch\":\"Gren\",\"build_matrix\":\"Jobbmatrise\",\"commit\":\"Innsending\",\"committer\":\"Innsender\",\"compare\":\"Sammenlign\",\"config\":\"Oppsett\",\"duration\":\"Varighet\",\"finished_at\":\"Fullført\",\"message\":\"Beskrivelse\",\"messages\":{\"sponsored_by\":\"Denne testserien ble kjørt på en maskin sponset av\"},\"started_at\":\"Startet\"},\"layouts\":{\"about\":{\"alpha\":\"Dette er alfa-greier.\",\"join\":\"Bli med og hjelp oss!\",\"mailing_list\":\"E-postliste\",\"messages\":{\"alpha\":\"Dette er <strong>ikke</strong> en stabil tjeneste. Vi har fremdeles et stykke igjen! Mer informasjon finner du <a href=\\\"https://github.com/travis-ci\\\">her</a>.\"},\"repository\":\"Kodelager\",\"twitter\":\"Twitter.\"},\"application\":{\"fork_me\":\"Se koden på Github\",\"my_repositories\":\"Mine kodelagre\",\"recent\":\"Nylig\",\"search\":\"Søk\",\"sponsers\":\"Sponsorer\",\"sponsors_link\":\"Se alle de flotte sponsorene våre &rarr;\"},\"mobile\":{\"author\":\"Forfatter\",\"build\":\"Jobb\",\"build_matrix\":\"Jobbmatrise\",\"commit\":\"Innsending\",\"committer\":\"Innsender\",\"compare\":\"Sammenlign\",\"config\":\"Oppsett\",\"duration\":\"Varighet\",\"finished_at\":\"Fullført\",\"job\":\"Jobb\",\"log\":\"Logg\"},\"top\":{\"admin\":\"Administrator\",\"blog\":\"Blogg\",\"docs\":\"Dokumentasjon\",\"github_login\":\"Logg inn med Github\",\"home\":\"Hjem\",\"profile\":\"Profil\",\"sign_out\":\"Logg ut\",\"stats\":\"Statistikk\"}},\"no_job\":\"Ingen jobber finnnes\",\"profiles\":{\"show\":{\"email\":\"E-post\",\"github\":\"Github\",\"message\":{\"config\":\"hvordan sette opp egne jobbinnstillinger\",\"your_repos\":\"Slå\\u0010 på Travis for prosjektene dine ved å dra i bryterne under, og send koden til Github.<br />\\nFor å teste mot flere ruby-versjoner, se dokumentasjonen for\"},\"messages\":{\"notice\":\"For å komme i gang, vennligst les <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">kom-i-gang-veivisereren</a> vår. <small>Det tar bare et par minutter.</small>\"},\"token\":\"Kode\",\"update\":\"Oppdater\",\"update_locale\":\"Oppdater\",\"your_locale\":\"Ditt språk\",\"your_repos\":\"Dine kodelagre\"}},\"queue\":\"Kø\",\"repositories\":{\"branch\":\"Gren\",\"commit\":\"Innsender\",\"duration\":\"Varighet\",\"finished_at\":\"Fullført\",\"image_url\":\"Bilde-URL\",\"markdown\":\"Markdown\",\"message\":\"Beskrivelse\",\"rdoc\":\"RDOC\",\"started_at\":\"Startet\",\"tabs\":{\"branches\":\"Grensammendrag\",\"build\":\"Jobb\",\"build_history\":\"Jobblogg\",\"current\":\"Siste\",\"job\":\"Jobb\"},\"textile\":\"Textile\"},\"repository\":{\"duration\":\"Varighet\"},\"statistics\":{\"index\":{\"build_count\":\"Antall jobber\",\"count\":\"Antall\",\"last_month\":\"siste måned\",\"repo_growth\":\"Vekst i kodelager\",\"total_builds\":\"Totale jobber\",\"total_projects\":\"Antall prosjekter/kodelagre\"}},\"workers\":\"Arbeidere\",\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"ja\":\"日本語\",\"ru\":\"Русский\",\"fr\":\"Français\",\"nb\":\"Norsk Bokmål\",\"pl\":\"Polski\",\"nl\":\"Nederlands\",\"pt-BR\":\"português brasileiro\"}},\"nl\":{\"admin\":{\"actions\":{\"create\":\"aanmaken\",\"created\":\"aangemaakt\",\"delete\":\"verwijderen\",\"deleted\":\"verwijderd\",\"update\":\"bijwerken\",\"updated\":\"bijgewerkt\"},\"credentials\":{\"log_out\":\"Afmelden\"},\"dashboard\":{\"add_new\":\"Nieuwe toevoegen\",\"ago\":\"geleden\",\"last_used\":\"Laatst gebruikt\",\"model_name\":\"Model naam\",\"modify\":\"Wijzigen\",\"pagename\":\"Site administratie\",\"show\":\"Laten zien\",\"records\":\"Gegevens\"},\"delete\":{\"confirmation\":\"Ja, ik ben zeker\",\"flash_confirmation\":\"%{name} is vernietigd\"},\"flash\":{\"error\":\"%{name} kon niet worden %{action}\",\"noaction\":\"Er zijn geen acties genomen\",\"successful\":\"%{name} is %{action}\"},\"history\":{\"name\":\"Geschiedenis\",\"no_activity\":\"Geen activiteit\",\"page_name\":\"Geschiedenis van %{name}\"},\"list\":{\"add_new\":\"Nieuwe toevoegen\",\"delete_action\":\"Verwijderen\",\"delete_selected\":\"Verwijder geselecteerden\",\"edit_action\":\"Bewerken\",\"search\":\"Zoeken\",\"select\":\"Selecteer %{name} om te bewerken\",\"select_action\":\"Selecteer\",\"show_all\":\"Laat allen zien\"},\"new\":{\"basic_info\":\"Basisinfo\",\"cancel\":\"Annuleren\",\"chosen\":\"%{name} gekozen\",\"chose_all\":\"Kies allen\",\"clear_all\":\"Deselecteer allen\",\"many_chars\":\"tekens of minder.\",\"one_char\":\"teken.\",\"optional\":\"Optioneel\",\"required\":\"Vereist\",\"save\":\"Opslaan\",\"save_and_add_another\":\"Opslaan en een nieuwe toevoegen\",\"save_and_edit\":\"Opslaan en bewerken\",\"select_choice\":\"Selecteer uw keuzes en klik\"}},\"build\":{\"duration\":\"Duur\",\"finished_at\":\"Voltooid\",\"job\":\"Taak\"},\"builds\":{\"allowed_failures\":\"Toegestane mislukkingen\",\"author\":\"Auteur\",\"branch\":\"Tak\",\"build_matrix\":\"Bouw Matrix\",\"compare\":\"Vergelijk\",\"config\":\"Configuratie\",\"duration\":\"Duur\",\"finished_at\":\"Voltooid\",\"message\":\"Bericht\",\"messages\":{\"sponsored_by\":\"Deze tests zijn gedraaid op een machine gesponsord door\"},\"name\":\"Bouw\",\"started_at\":\"Gestart\",\"commit\":\"Commit\",\"committer\":\"Committer\"},\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} uur\",\"other\":\"%{count} uren\"},\"minutes_exact\":{\"one\":\"%{count} minuut\",\"other\":\"%{count} minuten\"},\"seconds_exact\":{\"one\":\"%{count} seconde\",\"other\":\"%{count} seconden\"}}},\"devise\":{\"confirmations\":{\"confirmed\":\"Uw account is bevestigd. U wordt nu ingelogd.\",\"send_instructions\":\"Binnen enkele minuten zal u een email ontvangen met instructies om uw account te bevestigen.\"},\"failure\":{\"inactive\":\"Uw account is nog niet geactiveerd.\",\"invalid\":\"Ongeldig email adres of wachtwoord.\",\"invalid_token\":\"Ongeldig authenticatie token.\",\"locked\":\"Uw account is vergrendeld.\",\"timeout\":\"Uw sessie is verlopen, gelieve opnieuw in te loggen om verder te gaan.\",\"unauthenticated\":\"U moet inloggen of u registeren voordat u verder gaat.\",\"unconfirmed\":\"U moet uw account bevestigen voordat u verder gaat.\"},\"mailer\":{\"confirmation_instructions\":{\"subject\":\"Bevestigings-instructies\"},\"reset_password_instructions\":{\"subject\":\"Wachtwoord herstel instructies\"},\"unlock_instructions\":{\"subject\":\"Ontgrendel-instructies\"}},\"passwords\":{\"send_instructions\":\"Binnen enkele minuten zal u een email krijgen met instructies om uw wachtwoord opnieuw in te stellen.\",\"updated\":\"Uw wachtwoord is veranderd. U wordt nu ingelogd.\"},\"registrations\":{\"destroyed\":\"Dag! Uw account is geannuleerd. We hopen u vlug terug te zien.\",\"signed_up\":\"Uw registratie is voltooid. Als het ingeschakeld is wordt een bevestiging naar uw email adres verzonden.\",\"updated\":\"Het bijwerken van uw account is gelukt.\"},\"sessions\":{\"signed_in\":\"Inloggen gelukt.\",\"signed_out\":\"Uitloggen gelukt.\"},\"unlocks\":{\"send_instructions\":\"Binnen enkele minuten zal u een email krijgen met instructies om uw account te ontgrendelen.\",\"unlocked\":\"Uw account is ontgrendeld. U wordt nu ingelogd.\"}},\"errors\":{\"messages\":{\"already_confirmed\":\"was al bevestigd\",\"not_found\":\"niet gevonden\",\"not_locked\":\"was niet vergrendeld\"}},\"jobs\":{\"allowed_failures\":\"Toegestane mislukkingen\",\"author\":\"Auteur\",\"branch\":\"Tak\",\"build_matrix\":\"Bouw matrix\",\"compare\":\"Vergelijk\",\"config\":\"Configuratie\",\"duration\":\"Duur\",\"finished_at\":\"Voltooid\",\"message\":\"Bericht\",\"messages\":{\"sponsored_by\":\"Deze testen zijn uitgevoerd op een machine gesponsord door\"},\"started_at\":\"Gestart\",\"commit\":\"Commit\",\"committer\":\"Committer\"},\"layouts\":{\"about\":{\"alpha\":\"Dit is in alfa-stadium.\",\"join\":\"Doe met ons mee en help!\",\"mailing_list\":\"Mailing lijst\",\"messages\":{\"alpha\":\"Gelieve deze service <strong>niet</strong> te beschouwen als stabiel. Daar zijn we nog lang niet! Meer info <a href='https://github.com/travis-ci'>hier.</a>\"},\"repository\":\"Repository\",\"twitter\":\"Twitter\"},\"application\":{\"fork_me\":\"Maak een fork op Github\",\"my_repositories\":\"Mijn repositories\",\"recent\":\"Recent\",\"search\":\"Zoeken\",\"sponsers\":\"Sponsors\",\"sponsors_link\":\"Bekijk al onze geweldige sponsors &rarr;\"},\"mobile\":{\"author\":\"Auteur\",\"build\":\"Bouw\",\"build_matrix\":\"Bouw matrix\",\"compare\":\"Vergelijk\",\"config\":\"Configuratie\",\"duration\":\"Duur\",\"finished_at\":\"Voltooid op\",\"job\":\"Taak\",\"commit\":\"Commit\",\"committer\":\"Committer\",\"log\":\"Logboek\"},\"top\":{\"admin\":\"Administratie\",\"blog\":\"Blog\",\"docs\":\"Documentatie\",\"github_login\":\"Inloggen met Github\",\"home\":\"Home\",\"profile\":\"Profiel\",\"sign_out\":\"Uitloggen\",\"stats\":\"Statistieken\"}},\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"fr\":\"Français\",\"ja\":\"日本語\",\"nb\":\"Norsk Bokmål\",\"nl\":\"Nederlands\",\"pl\":\"Polski\",\"ru\":\"Русский\",\"pt-BR\":\"português brasileiro\"},\"no_job\":\"Er zijn geen taken\",\"profiles\":{\"show\":{\"email\":\"Email adres\",\"github\":\"Github\",\"message\":{\"config\":\"hoe eigen bouw-opties in te stellen\",\"your_repos\":\"Zet de schakelaars hieronder aan om de Travis hook voor uw projecten te activeren en push daarna naar Github<br />\\nOm te testen tegen meerdere rubies, zie\"},\"messages\":{\"notice\":\"Om te beginnen kunt u onze <a href=\\\\\\\"http://about.travis-ci.org/docs/user/getting-started/\\\\\\\">startersgids</a> lezen.\\\\n  <small>Het zal maar enkele minuten van uw tijd vergen.</small>\"},\"update\":\"Bijwerken\",\"update_locale\":\"Bijwerken\",\"your_locale\":\"Uw taal\",\"your_repos\":\"Uw repositories\",\"token\":\"Token\"}},\"queue\":\"Wachtrij\",\"repositories\":{\"branch\":\"Tak\",\"duration\":\"Duur\",\"finished_at\":\"Voltooid\",\"image_url\":\"Afbeeldings URL\",\"message\":\"Bericht\",\"started_at\":\"Gestart\",\"tabs\":{\"branches\":\"Tak samenvatting\",\"build\":\"Bouw\",\"build_history\":\"Bouw geschiedenis\",\"current\":\"Huidig\",\"job\":\"Taak\"},\"commit\":\"Commit\",\"markdown\":\"Markdown\",\"rdoc\":\"RDOC\",\"textile\":\"Textile\"},\"repository\":{\"duration\":\"Duur\"},\"statistics\":{\"index\":{\"build_count\":\"Bouw aantal\",\"count\":\"Aantal\",\"last_month\":\"voorbije maand\",\"repo_growth\":\"Repository groei\",\"total_builds\":\"Bouw totaal\",\"total_projects\":\"Projecten/Repository totaal\"}},\"workers\":\"Machines\",\"home\":{\"name\":\"Hoofdpagina\"}},\"pl\":{\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} godzina\",\"other\":\"%{count} godziny\"},\"minutes_exact\":{\"one\":\"%{count} minuta\",\"other\":\"%{count} minuty\"},\"seconds_exact\":{\"one\":\"%{count} sekunda\",\"other\":\"%{count} sekundy\"}}},\"workers\":\"Workers\",\"queue\":\"Kolejka\",\"no_job\":\"Brak zadań\",\"repositories\":{\"branch\":\"Gałąź\",\"image_url\":\"URL obrazka\",\"markdown\":\"Markdown\",\"textile\":\"Textile\",\"rdoc\":\"RDOC\",\"commit\":\"Commit\",\"message\":\"Opis\",\"started_at\":\"Rozpoczęto\",\"duration\":\"Czas trwania\",\"finished_at\":\"Zakończono\",\"tabs\":{\"current\":\"Aktualny\",\"build_history\":\"Historia Buildów\",\"branches\":\"Wszystkie Gałęzie\",\"build\":\"Build\",\"job\":\"Zadanie\"}},\"build\":{\"job\":\"Zadanie\",\"duration\":\"Czas trwania\",\"finished_at\":\"Zakończono\"},\"jobs\":{\"messages\":{\"sponsored_by\":\"Te testy zostały uruchomione na maszynie sponsorowanej przez\"},\"build_matrix\":\"Macierz Buildów\",\"allowed_failures\":\"Dopuszczalne Niepowodzenia\",\"author\":\"Autor\",\"config\":\"Konfiguracja\",\"compare\":\"Porównanie\",\"committer\":\"Committer\",\"branch\":\"Gałąź\",\"commit\":\"Commit\",\"message\":\"Opis\",\"started_at\":\"Rozpoczęto\",\"duration\":\"Czas trwania\",\"finished_at\":\"Zakończono\",\"sponsored_by\":\"Te testy zostały uruchomione na maszynie sponsorowanej przez\"},\"builds\":{\"name\":\"Build\",\"messages\":{\"sponsored_by\":\"Te testy zostały uruchomione na maszynie sponsorowanej przez\"},\"build_matrix\":\"Macierz Buildów\",\"allowed_failures\":\"Dopuszczalne Niepowodzenia\",\"author\":\"Autor\",\"config\":\"Konfiguracja\",\"compare\":\"Porównanie\",\"committer\":\"Komitujący\",\"branch\":\"Gałąź\",\"commit\":\"Commit\",\"message\":\"Opis\",\"started_at\":\"Rozpoczęto\",\"duration\":\"Czas trwania\",\"finished_at\":\"Zakończono\"},\"layouts\":{\"top\":{\"home\":\"Start\",\"blog\":\"Blog\",\"docs\":\"Dokumentacja\",\"stats\":\"Statystki\",\"github_login\":\"Zaloguj się przy pomocy Githuba\",\"profile\":\"Profil\",\"sign_out\":\"Wyloguj się\"},\"application\":{\"fork_me\":\"Fork me on Github\",\"recent\":\"Ostatnie\",\"search\":\"Wyniki\",\"sponsers\":\"Sponsorzy\",\"sponsors_link\":\"Zobacz naszych wszystkich wspaniałych sponsorów &rarr;\",\"my_repositories\":\"Moje repozytoria\"},\"about\":{\"alpha\":\"To wciąż jest wersja alpha.\",\"messages\":{\"alpha\":\"Proszę <strong>nie</strong> traktuj tego jako stabilnej usługi. Wciąż nam wiele do tego brakuje! Więcej informacji znajdziesz <a href='https://github.com/travis-ci'>tutaj.</a>\"},\"join\":\"Pomóż i dołącz do nas!\",\"mailing_list\":\"Lista mailingowa\",\"repository\":\"Repozytorium\",\"twitter\":\"Twitter\"},\"mobile\":{\"author\":\"Autor\",\"build\":\"Build\",\"build_matrix\":\"Macierz Buildów\",\"commit\":\"Commit\",\"committer\":\"Komitujący\",\"compare\":\"Porównianie\",\"config\":\"Konfiguracja\",\"duration\":\"Czas trwania\",\"finished_at\":\"Zakończono\",\"job\":\"Zadanie\",\"log\":\"Log\"}},\"profiles\":{\"show\":{\"email\":\"Email\",\"github\":\"Github\",\"message\":{\"your_repos\":\"  Przesuń suwak poniżej, aby włączyć Travisa, dla twoich projektów, a następnie umieść swój kod na GitHubie.<br />\\n Aby testować swój kod przy użyciu wielu wersji Rubiego, zobacz\",\"config\":\"jak skonfigurować niestandardowe opcje builda\"},\"messages\":{\"notice\":\"Aby zacząć, przeczytaj nasz <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">Przewodnik </a>.\\n  <small>Zajmie ci to tylko kilka minut.</small>\"},\"token\":\"Token\",\"your_repos\":\"Twoje repozytoria\"}},\"statistics\":{\"index\":{\"count\":\"Ilość\",\"repo_growth\":\"Przyrost repozytoriów\",\"total_projects\":\"Łącznie projektów/repozytoriów\",\"build_count\":\"Liczba buildów\",\"last_month\":\"ostatni miesiąc\",\"total_builds\":\"Łącznie Buildów\"}},\"date\":{\"abbr_day_names\":[\"nie\",\"pon\",\"wto\",\"śro\",\"czw\",\"pią\",\"sob\"],\"abbr_month_names\":[\"sty\",\"lut\",\"mar\",\"kwi\",\"maj\",\"cze\",\"lip\",\"sie\",\"wrz\",\"paź\",\"lis\",\"gru\"],\"day_names\":[\"niedziela\",\"poniedziałek\",\"wtorek\",\"środa\",\"czwartek\",\"piątek\",\"sobota\"],\"formats\":{\"default\":\"%d-%m-%Y\",\"long\":\"%B %d, %Y\",\"short\":\"%d %b\"},\"month_names\":[\"styczeń\",\"luty\",\"marzec\",\"kwiecień\",\"maj\",\"czerwiec\",\"lipiec\",\"sierpień\",\"wrzesień\",\"październik\",\"listopad\",\"grudzień\"],\"order\":[\"day\",\"month\",\"year\"]},\"errors\":{\"format\":\"%{attribute} %{message}\",\"messages\":{\"accepted\":\"musi zostać zaakceptowane\",\"blank\":\"nie może być puste\"}},\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"ja\":\"日本語\",\"ru\":\"Русский\",\"fr\":\"Français\",\"nb\":\"Norsk Bokmål\",\"pl\":\"Polski\",\"nl\":\"Nederlands\",\"pt-BR\":\"português brasileiro\"}},\"pt-BR\":{\"admin\":{\"actions\":{\"create\":\"criar\",\"created\":\"criado\",\"delete\":\"deletar\",\"deleted\":\"deletado\",\"update\":\"atualizar\",\"updated\":\"atualizado\"},\"credentials\":{\"log_out\":\"Deslogar\"},\"dashboard\":{\"add_new\":\"Adicionar novo\",\"ago\":\"atrás\",\"last_used\":\"Última utilização\",\"model_name\":\"Nome do modelo\",\"modify\":\"Modificar\",\"name\":\"Dashboard\",\"pagename\":\"Administração do site\",\"records\":\"Registros\",\"show\":\"Mostrar\"},\"delete\":{\"confirmation\":\"Sim, tenho certeza\",\"flash_confirmation\":\"%{name} foi destruído com sucesso\"},\"flash\":{\"error\":\"%{name} falhou ao %{action}\",\"noaction\":\"Nenhuma ação foi tomada\",\"successful\":\"%{name} foi %{action} com sucesso\"},\"history\":{\"name\":\"Histórico\",\"no_activity\":\"Nenhuma Atividade\",\"page_name\":\"Histórico para %{name}\"},\"list\":{\"add_new\":\"Adicionar novo\",\"delete_action\":\"Deletar\",\"delete_selected\":\"Deletar selecionados\",\"edit_action\":\"Editar\",\"search\":\"Buscar\",\"select\":\"Selecionar %{name} para editar\",\"select_action\":\"Selecionar\",\"show_all\":\"Mostrar todos\"},\"new\":{\"basic_info\":\"Informações básicas\",\"cancel\":\"Cancelar\",\"chosen\":\"Escolhido %{name}\",\"chose_all\":\"Escolher todos\",\"clear_all\":\"Limpar todos\",\"many_chars\":\"caracteres ou menos.\",\"one_char\":\"caractere.\",\"optional\":\"Opcional\",\"required\":\"Requerido\",\"save\":\"Salvar\",\"save_and_add_another\":\"Salvar e adicionar outro\",\"save_and_edit\":\"Salvar e alterar\",\"select_choice\":\"Selecione e clique\"}},\"build\":{\"duration\":\"Duração\",\"finished_at\":\"Concluído em\",\"job\":\"Trabalho\"},\"builds\":{\"allowed_failures\":\"Falhas Permitidas\",\"author\":\"Autor\",\"branch\":\"Branch\",\"build_matrix\":\"Matriz de Build\",\"commit\":\"Commit\",\"committer\":\"Committer\",\"compare\":\"Comparar\",\"config\":\"Config\",\"duration\":\"Duração\",\"finished_at\":\"Concluído em\",\"message\":\"Mensagem\",\"messages\":{\"sponsored_by\":\"Esta série de testes foi executada em uma caixa de processos patrocinada por\"},\"name\":\"Build\",\"started_at\":\"Iniciou em\"},\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} hora\",\"other\":\"%{count} horas\"},\"minutes_exact\":{\"one\":\"%{count} minuto\",\"other\":\"%{count} minutos\"},\"seconds_exact\":{\"one\":\"%{count} segundo\",\"other\":\"%{count} segundos\"}}},\"devise\":{\"confirmations\":{\"confirmed\":\"Sua conta foi confirmada com sucesso. Você agora está logado.\",\"send_instructions\":\"Você receberá um email com instruções de como confirmar sua conta em alguns minutos.\"},\"failure\":{\"inactive\":\"Sua conta ainda não foi ativada.\",\"invalid\":\"Email ou senha inválidos.\",\"invalid_token\":\"Token de autenticação inválido.\",\"locked\":\"Sua conta está trancada.\",\"timeout\":\"Sua sessão expirou, por favor faça seu login novamente.\",\"unauthenticated\":\"Você precisa fazer o login ou cadastrar-se antes de continuar.\",\"unconfirmed\":\"Você precisa confirmar sua conta antes de continuar.\"},\"mailer\":{\"confirmation_instructions\":{\"subject\":\"Instruções de confirmação\"},\"reset_password_instructions\":{\"subject\":\"Instruções de atualização de senha\"},\"unlock_instructions\":{\"subject\":\"Instruções de destrancamento\"}},\"passwords\":{\"send_instructions\":\"Você receberá um email com instruções de como atualizar sua senha em alguns minutos.\",\"updated\":\"Sua senha foi alterada com sucesso. Você agora está logado.\"},\"registrations\":{\"destroyed\":\"Tchau! Sua conta foi cancelada com sucesso. Esperamos vê-lo novamente em breve!\",\"signed_up\":\"Você se cadastrou com sucesso. Se ativada, uma confirmação foi enviada para seu email.\",\"updated\":\"Você atualizou sua conta com sucesso.\"},\"sessions\":{\"signed_in\":\"Logado com sucesso.\",\"signed_out\":\"Deslogado com sucesso.\"},\"unlocks\":{\"send_instructions\":\"Você receberá um email com instruções de como destrancar sua conta em alguns minutos.\",\"unlocked\":\"Sua conta foi destrancada com sucesso. Você agora está logado.\"}},\"errors\":{\"messages\":{\"already_confirmed\":\"já foi confirmado\",\"not_found\":\"não encontrado\",\"not_locked\":\"não estava trancado\"}},\"home\":{\"name\":\"home\"},\"jobs\":{\"allowed_failures\":\"Falhas Permitidas\",\"author\":\"Autor\",\"branch\":\"Branch\",\"build_matrix\":\"Matriz de Build\",\"commit\":\"Commit\",\"committer\":\"Committer\",\"compare\":\"Comparar\",\"config\":\"Config\",\"duration\":\"Duração\",\"finished_at\":\"Concluído em\",\"message\":\"Mensagem\",\"messages\":{\"sponsored_by\":\"Esta série de testes foi executada em uma caixa de processos patrocinada por\"},\"started_at\":\"Iniciou em\"},\"layouts\":{\"about\":{\"alpha\":\"Isto é um alpha.\",\"join\":\"Junte-se à nós e ajude!\",\"mailing_list\":\"Lista de email\",\"messages\":{\"alpha\":\"Por favor, <strong>não</strong> considere isto um serviço estável. Estamos muito longe disso! Mais informações <a href='https://github.com/travis-ci'>aqui.</a>\"},\"repository\":\"Repositório\",\"twitter\":\"Twitter\"},\"application\":{\"fork_me\":\"Faça fork no Github\",\"my_repositories\":\"Meus Repositórios\",\"recent\":\"Recentes\",\"search\":\"Buscar\",\"sponsers\":\"Patrocinadores\",\"sponsors_link\":\"Conheça todos os nossos patrocinadores &rarr;\"},\"mobile\":{\"author\":\"Autor\",\"build\":\"Build\",\"build_matrix\":\"Matriz de Build\",\"commit\":\"Commit\",\"committer\":\"Committer\",\"compare\":\"Comparar\",\"config\":\"Config\",\"duration\":\"Duração\",\"finished_at\":\"Concluído em\",\"job\":\"Trabalho\",\"log\":\"Log\"},\"top\":{\"admin\":\"Admin\",\"blog\":\"Blog\",\"docs\":\"Documentação\",\"github_login\":\"Logue com o Github\",\"home\":\"Home\",\"profile\":\"Perfil\",\"sign_out\":\"Sair\",\"stats\":\"Estatísticas\"}},\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"fr\":\"Français\",\"ja\":\"日本語\",\"nb\":\"Norsk Bokmål\",\"nl\":\"Nederlands\",\"pl\":\"Polski\",\"ru\":\"Русский\",\"pt-BR\":\"português brasileiro\"},\"no_job\":\"Não há trabalhos\",\"profiles\":{\"show\":{\"email\":\"Email\",\"github\":\"Github\",\"message\":{\"config\":\"como configurar opções de build\",\"your_repos\":\"Use os botões abaixo para ligar ou desligar o hook de serviço do Travis para seus projetos, e então, faça um push para o Github.<br />Para testar com múltiplas versões do Ruby, leia\"},\"messages\":{\"notice\":\"Para começar, leia nosso <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">Guia de início</a>. <small>Só leva alguns minutinhos.</small>\"},\"token\":\"Token\",\"update\":\"Atualizar\",\"update_locale\":\"Atualizar\",\"your_locale\":\"Sua língua\",\"your_repos\":\"Seus Repositórios\"}},\"queue\":\"Fila\",\"repositories\":{\"branch\":\"Branch\",\"commit\":\"Commit\",\"duration\":\"Duração\",\"finished_at\":\"Concluído em\",\"image_url\":\"URL da imagem\",\"markdown\":\"Markdown\",\"message\":\"Mensagem\",\"rdoc\":\"RDOC\",\"started_at\":\"Iniciou em\",\"tabs\":{\"branches\":\"Sumário do Branch\",\"build\":\"Build\",\"build_history\":\"Histórico de Build\",\"current\":\"Atual\",\"job\":\"Trabalho\"},\"textile\":\"Textile\"},\"repository\":{\"duration\":\"Duração\"},\"statistics\":{\"index\":{\"build_count\":\"Número de Builds\",\"count\":\"Número\",\"last_month\":\"último mês\",\"repo_growth\":\"Crescimento de Repositório\",\"total_builds\":\"Total de Builds\",\"total_projects\":\"Total de Projetos/Repositórios\"}},\"workers\":\"Processos\"},\"ru\":{\"admin\":{\"actions\":{\"create\":\"создать\",\"created\":\"создано\",\"delete\":\"удалить\",\"deleted\":\"удалено\",\"update\":\"обновить\",\"updated\":\"обновлено\"},\"credentials\":{\"log_out\":\"Выход\"},\"dashboard\":{\"add_new\":\"Добавить\",\"ago\":\"назад\",\"last_used\":\"Использовалось в последний раз\",\"model_name\":\"Имя модели\",\"modify\":\"Изменить\",\"name\":\"Панель управления\",\"pagename\":\"Управление сайтом\",\"records\":\"Записи\",\"show\":\"Показать\"},\"delete\":{\"confirmation\":\"Да, я уверен\",\"flash_confirmation\":\"%{name} успешно удалено\"},\"history\":{\"name\":\"История\",\"no_activity\":\"Нет активности\",\"page_name\":\"История %{name}\"},\"list\":{\"add_new\":\"Добавить\",\"delete_action\":\"Удалить\",\"delete_selected\":\"Удалить выбранные\",\"edit_action\":\"Редактировать\",\"search\":\"Поиск\",\"select\":\"Для редактирования выберите %{name}\",\"select_action\":\"Выбрать\",\"show_all\":\"Показать все\"},\"new\":{\"basic_info\":\"Основная информация\",\"cancel\":\"Отмена\",\"chosen\":\"Выбрано %{name}\",\"chose_all\":\"Выбрать все\",\"clear_all\":\"Очистить все\",\"one_char\":\"символ.\",\"optional\":\"Необязательно\",\"required\":\"Обязательно\",\"save\":\"Сохранить\",\"save_and_add_another\":\"Сохранить и добавить другое\",\"save_and_edit\":\"Сохранить и продолжить редактирование\",\"select_choice\":\"Выберите и кликните\",\"many_chars\":\"символов или меньше.\"},\"flash\":{\"error\":\"%{name} не удалось %{action}\",\"noaction\":\"Никаких действий не произведено\",\"successful\":\"%{name} было успешно %{action}\"}},\"build\":{\"duration\":\"Длительность\",\"finished_at\":\"Завершен\",\"job\":\"Задача\"},\"builds\":{\"allowed_failures\":\"Допустимые неудачи\",\"author\":\"Автор\",\"branch\":\"Ветка\",\"build_matrix\":\"Матрица\",\"commit\":\"Коммит\",\"committer\":\"Коммитер\",\"compare\":\"Дифф\",\"config\":\"Конфигурация\",\"duration\":\"Длительность\",\"finished_at\":\"Завершен\",\"message\":\"Комментарий\",\"messages\":{\"sponsored_by\":\"Эта серия тестов была запущена на машине, спонсируемой\"},\"name\":\"Билд\",\"started_at\":\"Начало\"},\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} час\",\"few\":\"%{count} часа\",\"many\":\"%{count} часов\",\"other\":\"%{count} часа\"},\"minutes_exact\":{\"one\":\"%{count} минута\",\"few\":\"%{count} минуты\",\"many\":\"%{count} минут\",\"other\":\"%{count} минуты\"},\"seconds_exact\":{\"one\":\"%{count} секунда\",\"few\":\"%{count} секунды\",\"many\":\"%{count} секунд\",\"other\":\"%{count} секунды\"}}},\"devise\":{\"confirmations\":{\"confirmed\":\"Ваш аккаунт успешно подтвержден. Приветствуем!\",\"send_instructions\":\"В течении нескольких минут вы получите электронное письмо с инструкциями для прохождения процедуры подтверждения аккаунта.\"},\"failure\":{\"inactive\":\"Ваш аккаунт еще не активирован.\",\"invalid\":\"Ошибка в адресе почты или пароле.\",\"invalid_token\":\"Неправильный токен аутентификации.\",\"locked\":\"Ваш аккаунт заблокирован.\",\"timeout\":\"Сессия окончена. Для продолжения работы войдите снова.\",\"unauthenticated\":\"Вам нужно войти или зарегистрироваться.\",\"unconfirmed\":\"Вы должны сначала подтвердить свой аккаунт.\"},\"mailer\":{\"confirmation_instructions\":{\"subject\":\"Инструкции для подтверждению аккаунта\"},\"reset_password_instructions\":{\"subject\":\"Инструкции для сброса пароля\"},\"unlock_instructions\":{\"subject\":\"Инструкции для разблокирования аккаунта\"}},\"passwords\":{\"send_instructions\":\"В течении нескольких минут вы получите электронное письмо с инструкциями для сброса пароля.\",\"updated\":\"Ваш пароль успешно изменен. Приветствуем!\"},\"registrations\":{\"destroyed\":\"Ваш аккаунт был успешно удален. Живите долго и процветайте!\",\"signed_up\":\"Вы успешно прошли регистрацию. Инструкции для подтверждения аккаунта отправлены на ваш электронный адрес.\",\"updated\":\"Аккаунт успешно обновлен.\"},\"sessions\":{\"signed_in\":\"Приветствуем!\",\"signed_out\":\"Удачи!\"},\"unlocks\":{\"send_instructions\":\"В течении нескольких минут вы получите электронное письмо с инструкциям для разблокировния аккаунта.\",\"unlocked\":\"Ваш аккаунт успешно разблокирован. Приветствуем!\"}},\"errors\":{\"messages\":{\"already_confirmed\":\"уже подтвержден\",\"not_found\":\"не найден\",\"not_locked\":\"не заблокирован\"}},\"home\":{\"name\":\"Главная\"},\"jobs\":{\"allowed_failures\":\"Допустимые неудачи\",\"author\":\"Автор\",\"branch\":\"Ветка\",\"build_matrix\":\"Матрица\",\"commit\":\"Коммит\",\"committer\":\"Коммитер\",\"compare\":\"Сравнение\",\"config\":\"Конфигурация\",\"duration\":\"Длительность\",\"finished_at\":\"Завершен\",\"message\":\"Комментарий\",\"messages\":{\"sponsored_by\":\"Эта серия тестов была запущена на машине спонсируемой\"},\"started_at\":\"Начало\"},\"layouts\":{\"about\":{\"alpha\":\"Это альфа-версия\",\"join\":\"Присоединяйтесь к нам и помогайте!\",\"mailing_list\":\"Лист рассылки\",\"messages\":{\"alpha\":\"Пожалуйста, <strong>не</strong> считайте данный сервис стабильным. Мы еще очень далеки от стабильности! <a href='https://github.com/travis-ci'>Подробности</a>\"},\"repository\":\"Репозиторий\",\"twitter\":\"Twitter\"},\"application\":{\"fork_me\":\"Fork me on Github\",\"my_repositories\":\"Мои репозитории\",\"recent\":\"Недавние\",\"search\":\"Поиск\",\"sponsers\":\"Спонсоры\",\"sponsors_link\":\"Список всех наших замечательных спонсоров &rarr;\"},\"mobile\":{\"author\":\"Автор\",\"build\":\"Сборка\",\"build_matrix\":\"Матрица сборок\",\"commit\":\"Коммит\",\"committer\":\"Коммитер\",\"compare\":\"Сравнение\",\"config\":\"Конфигурация\",\"duration\":\"Длительность\",\"finished_at\":\"Завершен\",\"job\":\"Задача\",\"log\":\"Журнал\"},\"top\":{\"admin\":\"Управление\",\"blog\":\"Блог\",\"docs\":\"Документация\",\"github_login\":\"Войти через Github\",\"home\":\"Главная\",\"profile\":\"Профиль\",\"sign_out\":\"Выход\",\"stats\":\"Статистика\"}},\"no_job\":\"Очередь пуста\",\"profiles\":{\"show\":{\"email\":\"Электронная почта\",\"github\":\"Github\",\"message\":{\"config\":\"как настроить специальные опции билда\",\"your_repos\":\"Используйте переключатели, чтобы включить Travis service hook для вашего проекта, а потом отправьте код на GitHub.<br />\\nДля тестирования на нескольких версиях Ruby смотрите\"},\"messages\":{\"notice\":\"Перед началом, пожалуйста, прочтите <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">Руководство для быстрого старта</a>. <small>Это займет всего несколько минут.</small>\"},\"token\":\"Токен\",\"update\":\"Обновить\",\"update_locale\":\"Обновить\",\"your_locale\":\"Ваш язык\",\"your_repos\":\"Ваши репозитории\"}},\"queue\":\"Очередь\",\"repositories\":{\"branch\":\"Ветка\",\"commit\":\"Коммит\",\"duration\":\"Длительность\",\"finished_at\":\"Завершен\",\"image_url\":\"URL изображения\",\"markdown\":\"Markdown\",\"message\":\"Комментарий\",\"rdoc\":\"RDOC\",\"started_at\":\"Начало\",\"tabs\":{\"branches\":\"Статус веток\",\"build\":\"Билд\",\"build_history\":\"История\",\"current\":\"Текущий\",\"job\":\"Задача\"},\"textile\":\"Textile\"},\"repository\":{\"duration\":\"Длительность\"},\"statistics\":{\"index\":{\"build_count\":\"Количество билдов\",\"count\":\"Количество\",\"last_month\":\"прошлый месяц\",\"repo_growth\":\"Рост числа репозиториев\",\"total_builds\":\"Всего билдов\",\"total_projects\":\"Всего проектов/репозиториев\"}},\"workers\":\"Машины\",\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"ja\":\"日本語\",\"ru\":\"Русский\",\"fr\":\"Français\",\"nb\":\"Norsk Bokmål\",\"pl\":\"Polski\",\"nl\":\"Nederlands\",\"pt-BR\":\"português brasileiro\"}}};\n\n\n})();\n//@ sourceURL=config/i18n");minispade.register('config/locales', "(function() {window.I18n.translations = {\"ca\":{\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"fr\":\"Français\",\"ja\":\"日本語\",\"nb\":\"Norsk Bokmål\",\"nl\":\"Nederlands\",\"pl\":\"Polski\",\"pt-BR\":\"português brasileiro\",\"ru\":\"Русский\"}},\"en\":{\"errors\":{\"messages\":{\"not_found\":\"not found\",\"already_confirmed\":\"was already confirmed\",\"not_locked\":\"was not locked\"}},\"devise\":{\"failure\":{\"unauthenticated\":\"You need to sign in or sign up before continuing.\",\"unconfirmed\":\"You have to confirm your account before continuing.\",\"locked\":\"Your account is locked.\",\"invalid\":\"Invalid email or password.\",\"invalid_token\":\"Invalid authentication token.\",\"timeout\":\"Your session expired, please sign in again to continue.\",\"inactive\":\"Your account was not activated yet.\"},\"sessions\":{\"signed_in\":\"Signed in successfully.\",\"signed_out\":\"Signed out successfully.\"},\"passwords\":{\"send_instructions\":\"You will receive an email with instructions about how to reset your password in a few minutes.\",\"updated\":\"Your password was changed successfully. You are now signed in.\"},\"confirmations\":{\"send_instructions\":\"You will receive an email with instructions about how to confirm your account in a few minutes.\",\"confirmed\":\"Your account was successfully confirmed. You are now signed in.\"},\"registrations\":{\"signed_up\":\"You have signed up successfully. If enabled, a confirmation was sent to your e-mail.\",\"updated\":\"You updated your account successfully.\",\"destroyed\":\"Bye! Your account was successfully cancelled. We hope to see you again soon.\"},\"unlocks\":{\"send_instructions\":\"You will receive an email with instructions about how to unlock your account in a few minutes.\",\"unlocked\":\"Your account was successfully unlocked. You are now signed in.\"},\"mailer\":{\"confirmation_instructions\":{\"subject\":\"Confirmation instructions\"},\"reset_password_instructions\":{\"subject\":\"Reset password instructions\"},\"unlock_instructions\":{\"subject\":\"Unlock Instructions\"}}},\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} hour\",\"other\":\"%{count} hours\"},\"minutes_exact\":{\"one\":\"%{count} minute\",\"other\":\"%{count} minutes\"},\"seconds_exact\":{\"one\":\"%{count} second\",\"other\":\"%{count} seconds\"}}},\"workers\":\"Workers\",\"queue\":\"Queue\",\"no_job\":\"There are no jobs\",\"repositories\":{\"branch\":\"Branch\",\"image_url\":\"Image URL\",\"markdown\":\"Markdown\",\"textile\":\"Textile\",\"rdoc\":\"RDOC\",\"commit\":\"Commit\",\"message\":\"Message\",\"started_at\":\"Started\",\"duration\":\"Duration\",\"finished_at\":\"Finished\",\"tabs\":{\"current\":\"Current\",\"build_history\":\"Build History\",\"branches\":\"Branch Summary\",\"pull_requests\":\"Pull Requests\",\"build\":\"Build\",\"job\":\"Job\"}},\"build\":{\"job\":\"Job\",\"duration\":\"Duration\",\"finished_at\":\"Finished\"},\"jobs\":{\"messages\":{\"sponsored_by\":\"This test suite was run on a worker box sponsored by\"},\"build_matrix\":\"Build Matrix\",\"allowed_failures\":\"Allowed Failures\",\"author\":\"Author\",\"config\":\"Config\",\"compare\":\"Compare\",\"committer\":\"Committer\",\"branch\":\"Branch\",\"commit\":\"Commit\",\"message\":\"Message\",\"started_at\":\"Started\",\"duration\":\"Duration\",\"finished_at\":\"Finished\"},\"builds\":{\"name\":\"Build\",\"messages\":{\"sponsored_by\":\"This test suite was run on a worker box sponsored by\"},\"build_matrix\":\"Build Matrix\",\"allowed_failures\":\"Allowed Failures\",\"author\":\"Author\",\"config\":\"Config\",\"compare\":\"Compare\",\"committer\":\"Committer\",\"branch\":\"Branch\",\"commit\":\"Commit\",\"message\":\"Message\",\"started_at\":\"Started\",\"duration\":\"Duration\",\"finished_at\":\"Finished\",\"show_more\":\"Show more\"},\"layouts\":{\"top\":{\"home\":\"Home\",\"blog\":\"Blog\",\"docs\":\"Docs\",\"stats\":\"Stats\",\"github_login\":\"Sign in with Github\",\"profile\":\"Profile\",\"sign_out\":\"Sign Out\",\"admin\":\"Admin\"},\"application\":{\"fork_me\":\"Fork me on Github\",\"recent\":\"Recent\",\"search\":\"Search\",\"sponsers\":\"Sponsors\",\"sponsors_link\":\"See all of our amazing sponsors &rarr;\",\"my_repositories\":\"My Repositories\"},\"about\":{\"alpha\":\"This stuff is alpha.\",\"messages\":{\"alpha\":\"Please do <strong>not</strong> consider this a stable service. We're still far from that! More info <a href='https://github.com/travis-ci'>here.</a>\"},\"join\":\"Join us and help!\",\"mailing_list\":\"Mailing List\",\"repository\":\"Repository\",\"twitter\":\"Twitter\"},\"mobile\":{\"author\":\"Author\",\"build\":\"Build\",\"build_matrix\":\"Build Matrix\",\"commit\":\"Commit\",\"committer\":\"Committer\",\"compare\":\"Compare\",\"config\":\"Config\",\"duration\":\"Duration\",\"finished_at\":\"Finished at\",\"job\":\"Job\",\"log\":\"Log\"}},\"profiles\":{\"show\":{\"email\":\"Email\",\"github\":\"Github\",\"message\":{\"your_repos\":\"  Flick the switches below to turn on the Travis service hook for your projects, then push to GitHub.\",\"config\":\"how to configure custom build options\"},\"messages\":{\"notice\":\"To get started, please read our <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">Getting Started guide</a>.\\n  <small>It will only take a couple of minutes.</small>\"},\"token\":\"Token\",\"your_repos\":\"Your Repositories\",\"update\":\"Update\",\"update_locale\":\"Update\",\"your_locale\":\"Your Locale\"}},\"statistics\":{\"index\":{\"count\":\"Count\",\"repo_growth\":\"Repository Growth\",\"total_projects\":\"Total Projects/Repositories\",\"build_count\":\"Build Count\",\"last_month\":\"last month\",\"total_builds\":\"Total Builds\"}},\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"fr\":\"Français\",\"ja\":\"日本語\",\"nb\":\"Norsk Bokmål\",\"pl\":\"Polski\",\"ru\":\"Русский\",\"nl\":\"Nederlands\",\"pt-BR\":\"português brasileiro\"}},\"es\":{\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} hora\",\"other\":\"%{count} horas\"},\"minutes_exact\":{\"one\":\"%{count} minuto\",\"other\":\"%{count} minutos\"},\"seconds_exact\":{\"one\":\"%{count} segundo\",\"other\":\"%{count} segundos\"}}},\"workers\":\"Procesos\",\"queue\":\"Cola\",\"no_job\":\"No hay trabajos\",\"repositories\":{\"branch\":\"Rama\",\"image_url\":\"Imagen URL\",\"markdown\":\"Markdown\",\"textile\":\"Textile\",\"rdoc\":\"RDOC\",\"commit\":\"Commit\",\"message\":\"Mensaje\",\"started_at\":\"Iniciado\",\"duration\":\"Duración\",\"finished_at\":\"Finalizado\",\"tabs\":{\"current\":\"Actual\",\"build_history\":\"Histórico\",\"branches\":\"Ramas\",\"build\":\"Builds\",\"job\":\"Trabajo\"}},\"build\":{\"job\":\"Trabajo\",\"duration\":\"Duración\",\"finished_at\":\"Finalizado\"},\"jobs\":{\"messages\":{\"sponsored_by\":\"Esta serie de tests han sido ejecutados en una caja de Proceso patrocinada por\"},\"build_matrix\":\"Matriz de Builds\",\"allowed_failures\":\"Fallos Permitidos\",\"author\":\"Autor\",\"config\":\"Configuración\",\"compare\":\"Comparar\",\"committer\":\"Committer\",\"branch\":\"Rama\",\"commit\":\"Commit\",\"message\":\"Mensaje\",\"started_at\":\"Iniciado\",\"duration\":\"Duración\",\"finished_at\":\"Finalizado\",\"sponsored_by\":\"Patrocinado por\"},\"builds\":{\"name\":\"Build\",\"messages\":{\"sponsored_by\":\"Esta serie de tests han sido ejecutados en una caja de Proceso patrocinada por\"},\"build_matrix\":\"Matriz de Builds\",\"allowed_failures\":\"Fallos Permitidos\",\"author\":\"Autor\",\"config\":\"Configuración\",\"compare\":\"Comparar\",\"committer\":\"Committer\",\"branch\":\"Rama\",\"commit\":\"Commit\",\"message\":\"Mensaje\",\"started_at\":\"Iniciado\",\"duration\":\"Duración\",\"finished_at\":\"Finalizado\"},\"layouts\":{\"top\":{\"home\":\"Inicio\",\"blog\":\"Blog\",\"docs\":\"Documentación\",\"stats\":\"Estadísticas\",\"github_login\":\"Iniciar sesión con Github\",\"profile\":\"Perfil\",\"sign_out\":\"Desconectar\",\"admin\":\"Admin\"},\"application\":{\"fork_me\":\"Hazme un Fork en Github\",\"recent\":\"Reciente\",\"search\":\"Buscar\",\"sponsers\":\"Patrocinadores\",\"sponsors_link\":\"Ver todos nuestros patrocinadores &rarr;\",\"my_repositories\":\"Mis Repositorios\"},\"about\":{\"alpha\":\"Esto es alpha.\",\"messages\":{\"alpha\":\"Por favor <strong>no</strong> considereis esto un servicio estable. Estamos estamos aún lejos de ello! Más información <a href='https://github.com/travis-ci'>aquí.</a>\"},\"join\":\"Únetenos y ayudanos!\",\"mailing_list\":\"Lista de Correos\",\"repository\":\"Repositorio\",\"twitter\":\"Twitter\"}},\"profiles\":{\"show\":{\"email\":\"Correo electrónico\",\"github\":\"Github\",\"message\":{\"your_repos\":\"  Activa los interruptores para inicial el  Travis service hook para tus proyectos, y haz un Push en GitHub.<br />\\n  Para probar varias versiones de ruby, mira\",\"config\":\"como configurar tus propias opciones para el Build\"},\"messages\":{\"notice\":\"Para comenzar, por favor lee nuestra <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">Guía de Inicio </a>.\\n  <small>Solo tomará unos pocos minutos.</small>\"},\"token\":\"Token\",\"your_repos\":\"Tus repositorios\",\"update\":\"Actualizar\",\"update_locale\":\"Actualizar\",\"your_locale\":\"Tu Idioma\"}},\"statistics\":{\"index\":{\"count\":\"Número\",\"repo_growth\":\"Crecimiento de Repositorios\",\"total_projects\":\"Total de Proyectos/Repositorios\",\"build_count\":\"Número de Builds\",\"last_month\":\"mes anterior\",\"total_builds\":\"Total de Builds\"}},\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"fr\":\"Français\",\"ja\":\"日本語\",\"nb\":\"Norsk Bokmål\",\"pl\":\"Polski\",\"ru\":\"Русский\",\"nl\":\"Nederlands\",\"pt-BR\":\"português brasileiro\"}},\"fr\":{\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} heure\",\"other\":\"%{count} heures\"},\"minutes_exact\":{\"one\":\"%{count} minute\",\"other\":\"%{count} minutes\"},\"seconds_exact\":{\"one\":\"%{count} seconde\",\"other\":\"%{count} secondes\"}}},\"workers\":\"Processus\",\"queue\":\"File\",\"no_job\":\"Pas de tâches\",\"repositories\":{\"branch\":\"Branche\",\"image_url\":\"Image\",\"markdown\":\"Markdown\",\"textile\":\"Textile\",\"rdoc\":\"RDOC\",\"commit\":\"Commit\",\"message\":\"Message\",\"started_at\":\"Commencé\",\"duration\":\"Durée\",\"finished_at\":\"Terminé\",\"tabs\":{\"current\":\"Actuel\",\"build_history\":\"Historique des tâches\",\"branches\":\"Résumé des branches\",\"build\":\"Construction\",\"job\":\"Tâche\"}},\"build\":{\"job\":\"Tâche\",\"duration\":\"Durée\",\"finished_at\":\"Terminé\"},\"jobs\":{\"messages\":{\"sponsored_by\":\"Cette série de tests a été exécutée sur une machine sponsorisée par\"},\"build_matrix\":\"Matrice des versions\",\"allowed_failures\":\"Échecs autorisés\",\"author\":\"Auteur\",\"config\":\"Config\",\"compare\":\"Comparer\",\"committer\":\"Committeur\",\"branch\":\"Branche\",\"commit\":\"Commit\",\"message\":\"Message\",\"started_at\":\"Commencé\",\"duration\":\"Durée\",\"finished_at\":\"Terminé\",\"sponsored_by\":\"Cette série de tests a été exécutée sur une machine sponsorisée par\"},\"builds\":{\"name\":\"Version\",\"messages\":{\"sponsored_by\":\"Cette série de tests a été exécutée sur une machine sponsorisée par\"},\"build_matrix\":\"Matrice des versions\",\"allowed_failures\":\"Échecs autorisés\",\"author\":\"Auteur\",\"config\":\"Config\",\"compare\":\"Comparer\",\"committer\":\"Committeur\",\"branch\":\"Branche\",\"commit\":\"Commit\",\"message\":\"Message\",\"started_at\":\"Commencé\",\"duration\":\"Durée\",\"finished_at\":\"Terminé\"},\"layouts\":{\"top\":{\"home\":\"Accueil\",\"blog\":\"Blog\",\"docs\":\"Documentation\",\"stats\":\"Statistiques\",\"github_login\":\"Connection Github\",\"profile\":\"Profil\",\"sign_out\":\"Déconnection\",\"admin\":\"Admin\"},\"application\":{\"fork_me\":\"Faites un Fork sur Github\",\"recent\":\"Récent\",\"search\":\"Chercher\",\"sponsers\":\"Sponsors\",\"sponsors_link\":\"Voir tous nos extraordinaire sponsors &rarr;\",\"my_repositories\":\"Mes dépôts\"},\"about\":{\"alpha\":\"Ceci est en alpha.\",\"messages\":{\"alpha\":\"S'il vous plaît ne considérez <strong>pas</strong> ce service comme étant stable. Nous sommes loin de ça! Plus d'infos <a href='https://github.com/travis-ci'>ici.</a>\"},\"join\":\"Joignez-vous à nous et aidez-nous!\",\"mailing_list\":\"Liste de distribution\",\"repository\":\"Dépôt\",\"twitter\":\"Twitter\"},\"mobile\":{\"author\":\"Auteur\",\"build\":\"Version\",\"build_matrix\":\"Matrice des versions\",\"commit\":\"Commit\",\"committer\":\"Committeur\",\"compare\":\"Comparer\",\"config\":\"Config\",\"duration\":\"Durée\",\"finished_at\":\"Terminé à\",\"job\":\"Tâche\",\"log\":\"Journal\"}},\"profiles\":{\"show\":{\"github\":\"Github\",\"message\":{\"your_repos\":\"Utilisez les boutons ci-dessous pour activer Travis sur vos projets puis déployez sur GitHub.<br />\\nPour tester sur plus de versions de ruby, voir\",\"config\":\"comment configurer des options de version personnalisées\"},\"messages\":{\"notice\":\"Pour commencer, veuillez lire notre <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">guide de démarrage</a>.\\n <small>Cela ne vous prendra que quelques minutes.</small>\"},\"token\":\"Jeton\",\"your_repos\":\"Vos dépôts\",\"email\":\"Courriel\",\"update\":\"Modifier\",\"update_locale\":\"Modifier\",\"your_locale\":\"Votre langue\"}},\"statistics\":{\"index\":{\"count\":\"Décompte\",\"repo_growth\":\"Croissance de dépôt\",\"total_projects\":\"Total des projets/dépôts\",\"build_count\":\"Décompte des versions\",\"last_month\":\"mois dernier\",\"total_builds\":\"Total des versions\"}},\"admin\":{\"actions\":{\"create\":\"créer\",\"created\":\"créé\",\"delete\":\"supprimer\",\"deleted\":\"supprimé\",\"update\":\"mise à jour\",\"updated\":\"mis à jour\"},\"credentials\":{\"log_out\":\"Déconnection\"},\"delete\":{\"confirmation\":\"Oui, je suis sure\",\"flash_confirmation\":\"%{name} a été détruit avec succès\"},\"flash\":{\"error\":\"%{name} n'a pas pu être %{action}\",\"noaction\":\"Aucune action n'a été entreprise\",\"successful\":\"%{name} a réussi à %{action}\"},\"history\":{\"name\":\"Historique\",\"no_activity\":\"Aucune activité\",\"page_name\":\"Historique pour %{name}\"},\"list\":{\"add_new\":\"Ajouter un nouveau\",\"delete_action\":\"Supprimer\",\"delete_selected\":\"Supprimer la sélection\",\"edit_action\":\"Modifier\",\"search\":\"Rechercher\",\"select\":\"Sélectionner le %{name} à modifier\",\"select_action\":\"Sélectionner\",\"show_all\":\"Montrer tout\"},\"new\":{\"basic_info\":\"Information de base\",\"cancel\":\"Annuler\",\"chosen\":\"%{name} choisi\",\"chose_all\":\"Choisir tout\",\"clear_all\":\"Déselectionner tout\",\"many_chars\":\"caractères ou moins\",\"one_char\":\"caractère.\",\"optional\":\"Optionnel\",\"required\":\"Requis\",\"save\":\"Sauvegarder\",\"save_and_add_another\":\"Sauvegarder et en ajouter un autre\",\"save_and_edit\":\"Sauvegarder et modifier\",\"select_choice\":\"Faites vos choix et cliquez\"},\"dashboard\":{\"add_new\":\"Ajouter un nouveau\",\"last_used\":\"Dernière utilisation\",\"model_name\":\"Nom du modèle\",\"modify\":\"Modification\",\"name\":\"Tableau de bord\",\"pagename\":\"Administration du site\",\"records\":\"Enregistrements\",\"show\":\"Voir\",\"ago\":\"plus tôt\"}},\"home\":{\"name\":\"accueil\"},\"repository\":{\"duration\":\"Durée\"},\"devise\":{\"confirmations\":{\"confirmed\":\"Votre compte a été crée avec succès. Vous être maintenant connecté.\",\"send_instructions\":\"Vous allez recevoir un courriel avec les instructions de confirmation de votre compte dans quelques minutes.\"},\"failure\":{\"inactive\":\"Votre compte n'a pas encore été activé.\",\"invalid\":\"Adresse courriel ou mot de passe invalide.\",\"invalid_token\":\"Jeton d'authentification invalide.\",\"locked\":\"Votre compte est bloqué.\",\"timeout\":\"Votre session est expirée, veuillez vous reconnecter pour continuer.\",\"unauthenticated\":\"Vous devez vous connecter ou vous enregistrer afin de continuer\",\"unconfirmed\":\"Vous devez confirmer votre compte avant de continuer.\"},\"mailer\":{\"confirmation_instructions\":{\"subject\":\"Instructions de confirmations\"},\"reset_password_instructions\":{\"subject\":\"Instruction de remise à zéro du mot de passe\"},\"unlock_instructions\":{\"subject\":\"Instruction de débloquage\"}},\"passwords\":{\"send_instructions\":\"Vous recevrez un courriel avec les instructions de remise à zéro du mot de passe dans quelques minutes.\",\"updated\":\"Votre mot de passe a été changé avec succès. Vous êtes maintenant connecté.\"},\"registrations\":{\"destroyed\":\"Au revoir! Votre compte a été annulé avec succès. Nous espérons vous revoir bientôt.\",\"signed_up\":\"Vous êtes enregistré avec succès. Si activé, une confirmation vous a été envoyé par courriel.\",\"updated\":\"Votre compte a été mis a jour avec succès\"},\"sessions\":{\"signed_in\":\"Connecté avec succès\",\"signed_out\":\"Déconnecté avec succès\"},\"unlocks\":{\"send_instructions\":\"Vous recevrez un courriel contenant les instructions pour débloquer votre compte dans quelques minutes.\",\"unlocked\":\"Votre compte a été débloqué avec succès.\"}},\"errors\":{\"messages\":{\"already_confirmed\":\"étais déja confirmé\",\"not_found\":\"n'a pas été trouvé\",\"not_locked\":\"n'étais pas bloqué\"}},\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"ja\":\"日本語\",\"ru\":\"Русский\",\"fr\":\"Français\",\"nb\":\"Norsk Bokmål\",\"pl\":\"Polski\",\"nl\":\"Nederlands\",\"pt-BR\":\"português brasileiro\"}},\"ja\":{\"workers\":\"ワーカー\",\"queue\":\"キュー\",\"no_job\":\"ジョブはありません\",\"repositories\":{\"branch\":\"ブランチ\",\"image_url\":\"画像URL\",\"markdown\":\".md\",\"textile\":\".textile\",\"rdoc\":\".rdoc\",\"commit\":\"コミット\",\"message\":\"メッセージ\",\"started_at\":\"開始時刻\",\"duration\":\"処理時間\",\"finished_at\":\"終了時刻\",\"tabs\":{\"current\":\"最新\",\"build_history\":\"ビルド履歴\",\"branches\":\"ブランチまとめ\",\"build\":\"ビルド\",\"job\":\"ジョブ\"}},\"build\":{\"job\":\"ジョブ\",\"duration\":\"処理時間\",\"finished_at\":\"終了時刻\"},\"jobs\":{\"messages\":{\"sponsored_by\":\"このテストは以下のスポンサーの協力で行いました。\"},\"build_matrix\":\"ビルドマトリクス\",\"allowed_failures\":\"失敗許容範囲内\",\"author\":\"制作者\",\"config\":\"設定\",\"compare\":\"比較\",\"committer\":\"コミット者\",\"branch\":\"ブランチ\",\"commit\":\"コミット\",\"message\":\"メッセージ\",\"started_at\":\"開始時刻\",\"duration\":\"処理時間\",\"finished_at\":\"終了時刻\"},\"builds\":{\"name\":\"ビルド\",\"messages\":{\"sponsored_by\":\"このテストは以下のスポンサーの協力で行いました。\"},\"build_matrix\":\"失敗許容範囲外\",\"allowed_failures\":\"失敗許容範囲内\",\"author\":\"制作者\",\"config\":\"設定\",\"compare\":\"比較\",\"committer\":\"コミット者\",\"branch\":\"ブランチ\",\"commit\":\"コミット\",\"message\":\"メッセージ\",\"started_at\":\"開始時刻\",\"duration\":\"処理時間\",\"finished_at\":\"終了時刻\"},\"layouts\":{\"about\":{\"alpha\":\"まだアルファですよ!\",\"join\":\"参加してみよう!\",\"mailing_list\":\"メールリスト\",\"messages\":{\"alpha\":\"Travis-ciは安定したサービスまで後一歩!詳しくは<a href='https://github.com/travis-ci'>こちら</a>\"},\"repository\":\"リポジトリ\",\"twitter\":\"ツイッター\"},\"application\":{\"fork_me\":\"Githubでフォークしよう\",\"my_repositories\":\"マイリポジトリ\",\"recent\":\"最近\",\"search\":\"検索\",\"sponsers\":\"スポンサー\",\"sponsors_link\":\"スポンサーをもっと見る &rarr;\"},\"top\":{\"blog\":\"ブログ\",\"docs\":\"Travisとは?\",\"github_login\":\"Githubでログイン\",\"home\":\"ホーム\",\"profile\":\"プロフィール\",\"sign_out\":\"ログアウト\",\"stats\":\"統計\",\"admin\":\"管理\"},\"mobile\":{\"author\":\"制作者\",\"build\":\"ビルド\",\"build_matrix\":\"ビルドマトリクス\",\"commit\":\"コミット\",\"committer\":\"コミット者\",\"compare\":\"比較\",\"config\":\"設定\",\"duration\":\"処理時間\",\"finished_at\":\"終了時刻\",\"job\":\"ジョブ\",\"log\":\"ログ\"}},\"profiles\":{\"show\":{\"github\":\"Github\",\"email\":\"メール\",\"message\":{\"config\":\"詳細設定\",\"your_repos\":\"以下のスイッチを設定し、Travis-ciを有効にします。Githubへプッシュしたらビルドは自動的に開始します。複数バーションや細かい設定はこちらへ:\"},\"messages\":{\"notice\":\"まずは<a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">Travisのはじめ方</a>を参照してください。\"},\"token\":\"トークン\",\"your_repos\":\"リポジトリ\",\"update\":\"更新\",\"update_locale\":\"更新\",\"your_locale\":\"言語設定\"}},\"statistics\":{\"index\":{\"build_count\":\"ビルド数\",\"count\":\"数\",\"last_month\":\"先月\",\"repo_growth\":\"リポジトリ\",\"total_builds\":\"合計ビルド数\",\"total_projects\":\"合計リポジトリ\"}},\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"fr\":\"Français\",\"ja\":\"日本語\",\"nb\":\"Norsk Bokmål\",\"pl\":\"Polski\",\"ru\":\"Русский\",\"nl\":\"Nederlands\",\"pt-BR\":\"português brasileiro\"}},\"nb\":{\"admin\":{\"actions\":{\"create\":\"opprett\",\"created\":\"opprettet\",\"delete\":\"slett\",\"deleted\":\"slettet\",\"update\":\"oppdater\",\"updated\":\"oppdatert\"},\"credentials\":{\"log_out\":\"Logg ut\"},\"dashboard\":{\"add_new\":\"Legg til ny\",\"ago\":\"siden\",\"last_used\":\"Sist brukt\",\"model_name\":\"Modell\",\"modify\":\"Rediger\",\"name\":\"Dashbord\",\"pagename\":\"Nettstedsadministrasjon\",\"records\":\"Oppføringer\",\"show\":\"Vis\"},\"delete\":{\"confirmation\":\"Ja, jeg er sikker\",\"flash_confirmation\":\"%{name} ble slettet\"},\"flash\":{\"error\":\"%{name} kunne ikke bli %{action}\",\"noaction\":\"Ingen handlinger ble utført\",\"successful\":\"%{name} ble %{action}\"},\"history\":{\"name\":\"Logg\",\"no_activity\":\"Ingen aktivitet\",\"page_name\":\"Logg for %{name}\"},\"list\":{\"add_new\":\"Legg til ny\",\"delete_action\":\"Slett\",\"delete_selected\":\"Slett valgte\",\"edit_action\":\"Rediger\",\"search\":\"Søk\",\"select\":\"Velg %{name} for å redigere\",\"select_action\":\"Velg\",\"show_all\":\"Vis alle \"},\"new\":{\"basic_info\":\"Basisinformasjon\",\"cancel\":\"Avbryt\",\"chosen\":\"Valgt %{name}\",\"chose_all\":\"Velg alle\",\"clear_all\":\"Fjern alle\",\"many_chars\":\"eller færre tegn.\",\"one_char\":\"tegn.\",\"optional\":\"Valgfri\",\"required\":\"Påkrevd\",\"save\":\"Lagre\",\"save_and_add_another\":\"Lagre og legg til ny\",\"save_and_edit\":\"Lagre og rediger\",\"select_choice\":\"Kryss av for dine valg og klikk\"}},\"build\":{\"duration\":\"Varighet\",\"finished_at\":\"Fullført\",\"job\":\"Jobb\"},\"builds\":{\"allowed_failures\":\"Tillatte feil\",\"author\":\"Forfatter\",\"branch\":\"Gren\",\"build_matrix\":\"Jobbmatrise\",\"commit\":\"Innsending\",\"committer\":\"Innsender\",\"compare\":\"Sammenlign\",\"config\":\"Oppsett\",\"duration\":\"Varighet\",\"finished_at\":\"Fullført\",\"message\":\"Beskrivelse\",\"messages\":{\"sponsored_by\":\"Denne testen ble kjørt på en maskin sponset av\"},\"name\":\"Jobb\",\"started_at\":\"Startet\"},\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} time\",\"other\":\"%{count} timer\"},\"minutes_exact\":{\"one\":\"%{count} minutt\",\"other\":\"%{count} minutter\"},\"seconds_exact\":{\"one\":\"%{count} sekund\",\"other\":\"%{count} sekunder\"}}},\"devise\":{\"confirmations\":{\"confirmed\":\"Din konto er aktivert og du er nå innlogget.\",\"send_instructions\":\"Om noen få minutter så vil du få en e-post med informasjon om hvordan du bekrefter kontoen din.\"},\"failure\":{\"inactive\":\"Kontoen din har ikke blitt aktivert enda.\",\"invalid\":\"Ugyldig e-post eller passord.\",\"invalid_token\":\"Ugyldig autentiseringskode.\",\"locked\":\"Kontoen din er låst.\",\"timeout\":\"Du ble logget ut siden på grunn av mangel på aktivitet, vennligst logg inn på nytt.\",\"unauthenticated\":\"Du må logge inn eller registrere deg for å fortsette.\",\"unconfirmed\":\"Du må bekrefte kontoen din før du kan fortsette.\"},\"mailer\":{\"confirmation_instructions\":{\"subject\":\"Bekreftelsesinformasjon\"},\"reset_password_instructions\":{\"subject\":\"Instruksjoner for å få nytt passord\"},\"unlock_instructions\":{\"subject\":\"Opplåsningsinstruksjoner\"}},\"passwords\":{\"send_instructions\":\"Om noen få minutter så vil du få en epost med informasjon om hvordan du kan få et nytt passord.\",\"updated\":\"Passordet ditt ble endret, og du er logget inn.\"},\"registrations\":{\"destroyed\":\"Adjø! Kontoen din ble kansellert. Vi håper vi ser deg igjen snart.\",\"signed_up\":\"Du er nå registrert.\",\"updated\":\"Kontoen din ble oppdatert.\"},\"sessions\":{\"signed_in\":\"Du er nå logget inn.\",\"signed_out\":\"Du er nå logget ut.\"},\"unlocks\":{\"send_instructions\":\"Om noen få minutter så kommer du til å få en e-post med informasjon om hvordan du kan låse opp kontoen din.\",\"unlocked\":\"Kontoen din ble låst opp, og du er nå logget inn igjen.\"}},\"errors\":{\"messages\":{\"already_confirmed\":\"har allerede blitt bekreftet\",\"not_found\":\"ikke funnnet\",\"not_locked\":\"var ikke låst\"}},\"home\":{\"name\":\"hjem\"},\"jobs\":{\"allowed_failures\":\"Tillatte feil\",\"author\":\"Forfatter\",\"branch\":\"Gren\",\"build_matrix\":\"Jobbmatrise\",\"commit\":\"Innsending\",\"committer\":\"Innsender\",\"compare\":\"Sammenlign\",\"config\":\"Oppsett\",\"duration\":\"Varighet\",\"finished_at\":\"Fullført\",\"message\":\"Beskrivelse\",\"messages\":{\"sponsored_by\":\"Denne testserien ble kjørt på en maskin sponset av\"},\"started_at\":\"Startet\"},\"layouts\":{\"about\":{\"alpha\":\"Dette er alfa-greier.\",\"join\":\"Bli med og hjelp oss!\",\"mailing_list\":\"E-postliste\",\"messages\":{\"alpha\":\"Dette er <strong>ikke</strong> en stabil tjeneste. Vi har fremdeles et stykke igjen! Mer informasjon finner du <a href=\\\"https://github.com/travis-ci\\\">her</a>.\"},\"repository\":\"Kodelager\",\"twitter\":\"Twitter.\"},\"application\":{\"fork_me\":\"Se koden på Github\",\"my_repositories\":\"Mine kodelagre\",\"recent\":\"Nylig\",\"search\":\"Søk\",\"sponsers\":\"Sponsorer\",\"sponsors_link\":\"Se alle de flotte sponsorene våre &rarr;\"},\"mobile\":{\"author\":\"Forfatter\",\"build\":\"Jobb\",\"build_matrix\":\"Jobbmatrise\",\"commit\":\"Innsending\",\"committer\":\"Innsender\",\"compare\":\"Sammenlign\",\"config\":\"Oppsett\",\"duration\":\"Varighet\",\"finished_at\":\"Fullført\",\"job\":\"Jobb\",\"log\":\"Logg\"},\"top\":{\"admin\":\"Administrator\",\"blog\":\"Blogg\",\"docs\":\"Dokumentasjon\",\"github_login\":\"Logg inn med Github\",\"home\":\"Hjem\",\"profile\":\"Profil\",\"sign_out\":\"Logg ut\",\"stats\":\"Statistikk\"}},\"no_job\":\"Ingen jobber finnnes\",\"profiles\":{\"show\":{\"email\":\"E-post\",\"github\":\"Github\",\"message\":{\"config\":\"hvordan sette opp egne jobbinnstillinger\",\"your_repos\":\"Slå\\u0010 på Travis for prosjektene dine ved å dra i bryterne under, og send koden til Github.<br />\\nFor å teste mot flere ruby-versjoner, se dokumentasjonen for\"},\"messages\":{\"notice\":\"For å komme i gang, vennligst les <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">kom-i-gang-veivisereren</a> vår. <small>Det tar bare et par minutter.</small>\"},\"token\":\"Kode\",\"update\":\"Oppdater\",\"update_locale\":\"Oppdater\",\"your_locale\":\"Ditt språk\",\"your_repos\":\"Dine kodelagre\"}},\"queue\":\"Kø\",\"repositories\":{\"branch\":\"Gren\",\"commit\":\"Innsender\",\"duration\":\"Varighet\",\"finished_at\":\"Fullført\",\"image_url\":\"Bilde-URL\",\"markdown\":\"Markdown\",\"message\":\"Beskrivelse\",\"rdoc\":\"RDOC\",\"started_at\":\"Startet\",\"tabs\":{\"branches\":\"Grensammendrag\",\"build\":\"Jobb\",\"build_history\":\"Jobblogg\",\"current\":\"Siste\",\"job\":\"Jobb\"},\"textile\":\"Textile\"},\"repository\":{\"duration\":\"Varighet\"},\"statistics\":{\"index\":{\"build_count\":\"Antall jobber\",\"count\":\"Antall\",\"last_month\":\"siste måned\",\"repo_growth\":\"Vekst i kodelager\",\"total_builds\":\"Totale jobber\",\"total_projects\":\"Antall prosjekter/kodelagre\"}},\"workers\":\"Arbeidere\",\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"ja\":\"日本語\",\"ru\":\"Русский\",\"fr\":\"Français\",\"nb\":\"Norsk Bokmål\",\"pl\":\"Polski\",\"nl\":\"Nederlands\",\"pt-BR\":\"português brasileiro\"}},\"nl\":{\"admin\":{\"actions\":{\"create\":\"aanmaken\",\"created\":\"aangemaakt\",\"delete\":\"verwijderen\",\"deleted\":\"verwijderd\",\"update\":\"bijwerken\",\"updated\":\"bijgewerkt\"},\"credentials\":{\"log_out\":\"Afmelden\"},\"dashboard\":{\"add_new\":\"Nieuwe toevoegen\",\"ago\":\"geleden\",\"last_used\":\"Laatst gebruikt\",\"model_name\":\"Model naam\",\"modify\":\"Wijzigen\",\"pagename\":\"Site administratie\",\"show\":\"Laten zien\",\"records\":\"Gegevens\"},\"delete\":{\"confirmation\":\"Ja, ik ben zeker\",\"flash_confirmation\":\"%{name} is vernietigd\"},\"flash\":{\"error\":\"%{name} kon niet worden %{action}\",\"noaction\":\"Er zijn geen acties genomen\",\"successful\":\"%{name} is %{action}\"},\"history\":{\"name\":\"Geschiedenis\",\"no_activity\":\"Geen activiteit\",\"page_name\":\"Geschiedenis van %{name}\"},\"list\":{\"add_new\":\"Nieuwe toevoegen\",\"delete_action\":\"Verwijderen\",\"delete_selected\":\"Verwijder geselecteerden\",\"edit_action\":\"Bewerken\",\"search\":\"Zoeken\",\"select\":\"Selecteer %{name} om te bewerken\",\"select_action\":\"Selecteer\",\"show_all\":\"Laat allen zien\"},\"new\":{\"basic_info\":\"Basisinfo\",\"cancel\":\"Annuleren\",\"chosen\":\"%{name} gekozen\",\"chose_all\":\"Kies allen\",\"clear_all\":\"Deselecteer allen\",\"many_chars\":\"tekens of minder.\",\"one_char\":\"teken.\",\"optional\":\"Optioneel\",\"required\":\"Vereist\",\"save\":\"Opslaan\",\"save_and_add_another\":\"Opslaan en een nieuwe toevoegen\",\"save_and_edit\":\"Opslaan en bewerken\",\"select_choice\":\"Selecteer uw keuzes en klik\"}},\"build\":{\"duration\":\"Duur\",\"finished_at\":\"Voltooid\",\"job\":\"Taak\"},\"builds\":{\"allowed_failures\":\"Toegestane mislukkingen\",\"author\":\"Auteur\",\"branch\":\"Tak\",\"build_matrix\":\"Bouw Matrix\",\"compare\":\"Vergelijk\",\"config\":\"Configuratie\",\"duration\":\"Duur\",\"finished_at\":\"Voltooid\",\"message\":\"Bericht\",\"messages\":{\"sponsored_by\":\"Deze tests zijn gedraaid op een machine gesponsord door\"},\"name\":\"Bouw\",\"started_at\":\"Gestart\",\"commit\":\"Commit\",\"committer\":\"Committer\"},\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} uur\",\"other\":\"%{count} uren\"},\"minutes_exact\":{\"one\":\"%{count} minuut\",\"other\":\"%{count} minuten\"},\"seconds_exact\":{\"one\":\"%{count} seconde\",\"other\":\"%{count} seconden\"}}},\"devise\":{\"confirmations\":{\"confirmed\":\"Uw account is bevestigd. U wordt nu ingelogd.\",\"send_instructions\":\"Binnen enkele minuten zal u een email ontvangen met instructies om uw account te bevestigen.\"},\"failure\":{\"inactive\":\"Uw account is nog niet geactiveerd.\",\"invalid\":\"Ongeldig email adres of wachtwoord.\",\"invalid_token\":\"Ongeldig authenticatie token.\",\"locked\":\"Uw account is vergrendeld.\",\"timeout\":\"Uw sessie is verlopen, gelieve opnieuw in te loggen om verder te gaan.\",\"unauthenticated\":\"U moet inloggen of u registeren voordat u verder gaat.\",\"unconfirmed\":\"U moet uw account bevestigen voordat u verder gaat.\"},\"mailer\":{\"confirmation_instructions\":{\"subject\":\"Bevestigings-instructies\"},\"reset_password_instructions\":{\"subject\":\"Wachtwoord herstel instructies\"},\"unlock_instructions\":{\"subject\":\"Ontgrendel-instructies\"}},\"passwords\":{\"send_instructions\":\"Binnen enkele minuten zal u een email krijgen met instructies om uw wachtwoord opnieuw in te stellen.\",\"updated\":\"Uw wachtwoord is veranderd. U wordt nu ingelogd.\"},\"registrations\":{\"destroyed\":\"Dag! Uw account is geannuleerd. We hopen u vlug terug te zien.\",\"signed_up\":\"Uw registratie is voltooid. Als het ingeschakeld is wordt een bevestiging naar uw email adres verzonden.\",\"updated\":\"Het bijwerken van uw account is gelukt.\"},\"sessions\":{\"signed_in\":\"Inloggen gelukt.\",\"signed_out\":\"Uitloggen gelukt.\"},\"unlocks\":{\"send_instructions\":\"Binnen enkele minuten zal u een email krijgen met instructies om uw account te ontgrendelen.\",\"unlocked\":\"Uw account is ontgrendeld. U wordt nu ingelogd.\"}},\"errors\":{\"messages\":{\"already_confirmed\":\"was al bevestigd\",\"not_found\":\"niet gevonden\",\"not_locked\":\"was niet vergrendeld\"}},\"jobs\":{\"allowed_failures\":\"Toegestane mislukkingen\",\"author\":\"Auteur\",\"branch\":\"Tak\",\"build_matrix\":\"Bouw matrix\",\"compare\":\"Vergelijk\",\"config\":\"Configuratie\",\"duration\":\"Duur\",\"finished_at\":\"Voltooid\",\"message\":\"Bericht\",\"messages\":{\"sponsored_by\":\"Deze testen zijn uitgevoerd op een machine gesponsord door\"},\"started_at\":\"Gestart\",\"commit\":\"Commit\",\"committer\":\"Committer\"},\"layouts\":{\"about\":{\"alpha\":\"Dit is in alfa-stadium.\",\"join\":\"Doe met ons mee en help!\",\"mailing_list\":\"Mailing lijst\",\"messages\":{\"alpha\":\"Gelieve deze service <strong>niet</strong> te beschouwen als stabiel. Daar zijn we nog lang niet! Meer info <a href='https://github.com/travis-ci'>hier.</a>\"},\"repository\":\"Repository\",\"twitter\":\"Twitter\"},\"application\":{\"fork_me\":\"Maak een fork op Github\",\"my_repositories\":\"Mijn repositories\",\"recent\":\"Recent\",\"search\":\"Zoeken\",\"sponsers\":\"Sponsors\",\"sponsors_link\":\"Bekijk al onze geweldige sponsors &rarr;\"},\"mobile\":{\"author\":\"Auteur\",\"build\":\"Bouw\",\"build_matrix\":\"Bouw matrix\",\"compare\":\"Vergelijk\",\"config\":\"Configuratie\",\"duration\":\"Duur\",\"finished_at\":\"Voltooid op\",\"job\":\"Taak\",\"commit\":\"Commit\",\"committer\":\"Committer\",\"log\":\"Logboek\"},\"top\":{\"admin\":\"Administratie\",\"blog\":\"Blog\",\"docs\":\"Documentatie\",\"github_login\":\"Inloggen met Github\",\"home\":\"Home\",\"profile\":\"Profiel\",\"sign_out\":\"Uitloggen\",\"stats\":\"Statistieken\"}},\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"fr\":\"Français\",\"ja\":\"日本語\",\"nb\":\"Norsk Bokmål\",\"nl\":\"Nederlands\",\"pl\":\"Polski\",\"ru\":\"Русский\",\"pt-BR\":\"português brasileiro\"},\"no_job\":\"Er zijn geen taken\",\"profiles\":{\"show\":{\"email\":\"Email adres\",\"github\":\"Github\",\"message\":{\"config\":\"hoe eigen bouw-opties in te stellen\",\"your_repos\":\"Zet de schakelaars hieronder aan om de Travis hook voor uw projecten te activeren en push daarna naar Github<br />\\nOm te testen tegen meerdere rubies, zie\"},\"messages\":{\"notice\":\"Om te beginnen kunt u onze <a href=\\\\\\\"http://about.travis-ci.org/docs/user/getting-started/\\\\\\\">startersgids</a> lezen.\\\\n  <small>Het zal maar enkele minuten van uw tijd vergen.</small>\"},\"update\":\"Bijwerken\",\"update_locale\":\"Bijwerken\",\"your_locale\":\"Uw taal\",\"your_repos\":\"Uw repositories\",\"token\":\"Token\"}},\"queue\":\"Wachtrij\",\"repositories\":{\"branch\":\"Tak\",\"duration\":\"Duur\",\"finished_at\":\"Voltooid\",\"image_url\":\"Afbeeldings URL\",\"message\":\"Bericht\",\"started_at\":\"Gestart\",\"tabs\":{\"branches\":\"Tak samenvatting\",\"build\":\"Bouw\",\"build_history\":\"Bouw geschiedenis\",\"current\":\"Huidig\",\"job\":\"Taak\"},\"commit\":\"Commit\",\"markdown\":\"Markdown\",\"rdoc\":\"RDOC\",\"textile\":\"Textile\"},\"repository\":{\"duration\":\"Duur\"},\"statistics\":{\"index\":{\"build_count\":\"Bouw aantal\",\"count\":\"Aantal\",\"last_month\":\"voorbije maand\",\"repo_growth\":\"Repository groei\",\"total_builds\":\"Bouw totaal\",\"total_projects\":\"Projecten/Repository totaal\"}},\"workers\":\"Machines\",\"home\":{\"name\":\"Hoofdpagina\"}},\"pl\":{\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} godzina\",\"other\":\"%{count} godziny\"},\"minutes_exact\":{\"one\":\"%{count} minuta\",\"other\":\"%{count} minuty\"},\"seconds_exact\":{\"one\":\"%{count} sekunda\",\"other\":\"%{count} sekundy\"}}},\"workers\":\"Workers\",\"queue\":\"Kolejka\",\"no_job\":\"Brak zadań\",\"repositories\":{\"branch\":\"Gałąź\",\"image_url\":\"URL obrazka\",\"markdown\":\"Markdown\",\"textile\":\"Textile\",\"rdoc\":\"RDOC\",\"commit\":\"Commit\",\"message\":\"Opis\",\"started_at\":\"Rozpoczęto\",\"duration\":\"Czas trwania\",\"finished_at\":\"Zakończono\",\"tabs\":{\"current\":\"Aktualny\",\"build_history\":\"Historia Buildów\",\"branches\":\"Wszystkie Gałęzie\",\"build\":\"Build\",\"job\":\"Zadanie\"}},\"build\":{\"job\":\"Zadanie\",\"duration\":\"Czas trwania\",\"finished_at\":\"Zakończono\"},\"jobs\":{\"messages\":{\"sponsored_by\":\"Te testy zostały uruchomione na maszynie sponsorowanej przez\"},\"build_matrix\":\"Macierz Buildów\",\"allowed_failures\":\"Dopuszczalne Niepowodzenia\",\"author\":\"Autor\",\"config\":\"Konfiguracja\",\"compare\":\"Porównanie\",\"committer\":\"Committer\",\"branch\":\"Gałąź\",\"commit\":\"Commit\",\"message\":\"Opis\",\"started_at\":\"Rozpoczęto\",\"duration\":\"Czas trwania\",\"finished_at\":\"Zakończono\",\"sponsored_by\":\"Te testy zostały uruchomione na maszynie sponsorowanej przez\"},\"builds\":{\"name\":\"Build\",\"messages\":{\"sponsored_by\":\"Te testy zostały uruchomione na maszynie sponsorowanej przez\"},\"build_matrix\":\"Macierz Buildów\",\"allowed_failures\":\"Dopuszczalne Niepowodzenia\",\"author\":\"Autor\",\"config\":\"Konfiguracja\",\"compare\":\"Porównanie\",\"committer\":\"Komitujący\",\"branch\":\"Gałąź\",\"commit\":\"Commit\",\"message\":\"Opis\",\"started_at\":\"Rozpoczęto\",\"duration\":\"Czas trwania\",\"finished_at\":\"Zakończono\"},\"layouts\":{\"top\":{\"home\":\"Start\",\"blog\":\"Blog\",\"docs\":\"Dokumentacja\",\"stats\":\"Statystki\",\"github_login\":\"Zaloguj się przy pomocy Githuba\",\"profile\":\"Profil\",\"sign_out\":\"Wyloguj się\"},\"application\":{\"fork_me\":\"Fork me on Github\",\"recent\":\"Ostatnie\",\"search\":\"Wyniki\",\"sponsers\":\"Sponsorzy\",\"sponsors_link\":\"Zobacz naszych wszystkich wspaniałych sponsorów &rarr;\",\"my_repositories\":\"Moje repozytoria\"},\"about\":{\"alpha\":\"To wciąż jest wersja alpha.\",\"messages\":{\"alpha\":\"Proszę <strong>nie</strong> traktuj tego jako stabilnej usługi. Wciąż nam wiele do tego brakuje! Więcej informacji znajdziesz <a href='https://github.com/travis-ci'>tutaj.</a>\"},\"join\":\"Pomóż i dołącz do nas!\",\"mailing_list\":\"Lista mailingowa\",\"repository\":\"Repozytorium\",\"twitter\":\"Twitter\"},\"mobile\":{\"author\":\"Autor\",\"build\":\"Build\",\"build_matrix\":\"Macierz Buildów\",\"commit\":\"Commit\",\"committer\":\"Komitujący\",\"compare\":\"Porównianie\",\"config\":\"Konfiguracja\",\"duration\":\"Czas trwania\",\"finished_at\":\"Zakończono\",\"job\":\"Zadanie\",\"log\":\"Log\"}},\"profiles\":{\"show\":{\"email\":\"Email\",\"github\":\"Github\",\"message\":{\"your_repos\":\"  Przesuń suwak poniżej, aby włączyć Travisa, dla twoich projektów, a następnie umieść swój kod na GitHubie.<br />\\n Aby testować swój kod przy użyciu wielu wersji Rubiego, zobacz\",\"config\":\"jak skonfigurować niestandardowe opcje builda\"},\"messages\":{\"notice\":\"Aby zacząć, przeczytaj nasz <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">Przewodnik </a>.\\n  <small>Zajmie ci to tylko kilka minut.</small>\"},\"token\":\"Token\",\"your_repos\":\"Twoje repozytoria\"}},\"statistics\":{\"index\":{\"count\":\"Ilość\",\"repo_growth\":\"Przyrost repozytoriów\",\"total_projects\":\"Łącznie projektów/repozytoriów\",\"build_count\":\"Liczba buildów\",\"last_month\":\"ostatni miesiąc\",\"total_builds\":\"Łącznie Buildów\"}},\"date\":{\"abbr_day_names\":[\"nie\",\"pon\",\"wto\",\"śro\",\"czw\",\"pią\",\"sob\"],\"abbr_month_names\":[\"sty\",\"lut\",\"mar\",\"kwi\",\"maj\",\"cze\",\"lip\",\"sie\",\"wrz\",\"paź\",\"lis\",\"gru\"],\"day_names\":[\"niedziela\",\"poniedziałek\",\"wtorek\",\"środa\",\"czwartek\",\"piątek\",\"sobota\"],\"formats\":{\"default\":\"%d-%m-%Y\",\"long\":\"%B %d, %Y\",\"short\":\"%d %b\"},\"month_names\":[\"styczeń\",\"luty\",\"marzec\",\"kwiecień\",\"maj\",\"czerwiec\",\"lipiec\",\"sierpień\",\"wrzesień\",\"październik\",\"listopad\",\"grudzień\"],\"order\":[\"day\",\"month\",\"year\"]},\"errors\":{\"format\":\"%{attribute} %{message}\",\"messages\":{\"accepted\":\"musi zostać zaakceptowane\",\"blank\":\"nie może być puste\"}},\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"ja\":\"日本語\",\"ru\":\"Русский\",\"fr\":\"Français\",\"nb\":\"Norsk Bokmål\",\"pl\":\"Polski\",\"nl\":\"Nederlands\",\"pt-BR\":\"português brasileiro\"}},\"pt-BR\":{\"admin\":{\"actions\":{\"create\":\"criar\",\"created\":\"criado\",\"delete\":\"deletar\",\"deleted\":\"deletado\",\"update\":\"atualizar\",\"updated\":\"atualizado\"},\"credentials\":{\"log_out\":\"Deslogar\"},\"dashboard\":{\"add_new\":\"Adicionar novo\",\"ago\":\"atrás\",\"last_used\":\"Última utilização\",\"model_name\":\"Nome do modelo\",\"modify\":\"Modificar\",\"name\":\"Dashboard\",\"pagename\":\"Administração do site\",\"records\":\"Registros\",\"show\":\"Mostrar\"},\"delete\":{\"confirmation\":\"Sim, tenho certeza\",\"flash_confirmation\":\"%{name} foi destruído com sucesso\"},\"flash\":{\"error\":\"%{name} falhou ao %{action}\",\"noaction\":\"Nenhuma ação foi tomada\",\"successful\":\"%{name} foi %{action} com sucesso\"},\"history\":{\"name\":\"Histórico\",\"no_activity\":\"Nenhuma Atividade\",\"page_name\":\"Histórico para %{name}\"},\"list\":{\"add_new\":\"Adicionar novo\",\"delete_action\":\"Deletar\",\"delete_selected\":\"Deletar selecionados\",\"edit_action\":\"Editar\",\"search\":\"Buscar\",\"select\":\"Selecionar %{name} para editar\",\"select_action\":\"Selecionar\",\"show_all\":\"Mostrar todos\"},\"new\":{\"basic_info\":\"Informações básicas\",\"cancel\":\"Cancelar\",\"chosen\":\"Escolhido %{name}\",\"chose_all\":\"Escolher todos\",\"clear_all\":\"Limpar todos\",\"many_chars\":\"caracteres ou menos.\",\"one_char\":\"caractere.\",\"optional\":\"Opcional\",\"required\":\"Requerido\",\"save\":\"Salvar\",\"save_and_add_another\":\"Salvar e adicionar outro\",\"save_and_edit\":\"Salvar e alterar\",\"select_choice\":\"Selecione e clique\"}},\"build\":{\"duration\":\"Duração\",\"finished_at\":\"Concluído em\",\"job\":\"Trabalho\"},\"builds\":{\"allowed_failures\":\"Falhas Permitidas\",\"author\":\"Autor\",\"branch\":\"Branch\",\"build_matrix\":\"Matriz de Build\",\"commit\":\"Commit\",\"committer\":\"Committer\",\"compare\":\"Comparar\",\"config\":\"Config\",\"duration\":\"Duração\",\"finished_at\":\"Concluído em\",\"message\":\"Mensagem\",\"messages\":{\"sponsored_by\":\"Esta série de testes foi executada em uma caixa de processos patrocinada por\"},\"name\":\"Build\",\"started_at\":\"Iniciou em\"},\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} hora\",\"other\":\"%{count} horas\"},\"minutes_exact\":{\"one\":\"%{count} minuto\",\"other\":\"%{count} minutos\"},\"seconds_exact\":{\"one\":\"%{count} segundo\",\"other\":\"%{count} segundos\"}}},\"devise\":{\"confirmations\":{\"confirmed\":\"Sua conta foi confirmada com sucesso. Você agora está logado.\",\"send_instructions\":\"Você receberá um email com instruções de como confirmar sua conta em alguns minutos.\"},\"failure\":{\"inactive\":\"Sua conta ainda não foi ativada.\",\"invalid\":\"Email ou senha inválidos.\",\"invalid_token\":\"Token de autenticação inválido.\",\"locked\":\"Sua conta está trancada.\",\"timeout\":\"Sua sessão expirou, por favor faça seu login novamente.\",\"unauthenticated\":\"Você precisa fazer o login ou cadastrar-se antes de continuar.\",\"unconfirmed\":\"Você precisa confirmar sua conta antes de continuar.\"},\"mailer\":{\"confirmation_instructions\":{\"subject\":\"Instruções de confirmação\"},\"reset_password_instructions\":{\"subject\":\"Instruções de atualização de senha\"},\"unlock_instructions\":{\"subject\":\"Instruções de destrancamento\"}},\"passwords\":{\"send_instructions\":\"Você receberá um email com instruções de como atualizar sua senha em alguns minutos.\",\"updated\":\"Sua senha foi alterada com sucesso. Você agora está logado.\"},\"registrations\":{\"destroyed\":\"Tchau! Sua conta foi cancelada com sucesso. Esperamos vê-lo novamente em breve!\",\"signed_up\":\"Você se cadastrou com sucesso. Se ativada, uma confirmação foi enviada para seu email.\",\"updated\":\"Você atualizou sua conta com sucesso.\"},\"sessions\":{\"signed_in\":\"Logado com sucesso.\",\"signed_out\":\"Deslogado com sucesso.\"},\"unlocks\":{\"send_instructions\":\"Você receberá um email com instruções de como destrancar sua conta em alguns minutos.\",\"unlocked\":\"Sua conta foi destrancada com sucesso. Você agora está logado.\"}},\"errors\":{\"messages\":{\"already_confirmed\":\"já foi confirmado\",\"not_found\":\"não encontrado\",\"not_locked\":\"não estava trancado\"}},\"home\":{\"name\":\"home\"},\"jobs\":{\"allowed_failures\":\"Falhas Permitidas\",\"author\":\"Autor\",\"branch\":\"Branch\",\"build_matrix\":\"Matriz de Build\",\"commit\":\"Commit\",\"committer\":\"Committer\",\"compare\":\"Comparar\",\"config\":\"Config\",\"duration\":\"Duração\",\"finished_at\":\"Concluído em\",\"message\":\"Mensagem\",\"messages\":{\"sponsored_by\":\"Esta série de testes foi executada em uma caixa de processos patrocinada por\"},\"started_at\":\"Iniciou em\"},\"layouts\":{\"about\":{\"alpha\":\"Isto é um alpha.\",\"join\":\"Junte-se à nós e ajude!\",\"mailing_list\":\"Lista de email\",\"messages\":{\"alpha\":\"Por favor, <strong>não</strong> considere isto um serviço estável. Estamos muito longe disso! Mais informações <a href='https://github.com/travis-ci'>aqui.</a>\"},\"repository\":\"Repositório\",\"twitter\":\"Twitter\"},\"application\":{\"fork_me\":\"Faça fork no Github\",\"my_repositories\":\"Meus Repositórios\",\"recent\":\"Recentes\",\"search\":\"Buscar\",\"sponsers\":\"Patrocinadores\",\"sponsors_link\":\"Conheça todos os nossos patrocinadores &rarr;\"},\"mobile\":{\"author\":\"Autor\",\"build\":\"Build\",\"build_matrix\":\"Matriz de Build\",\"commit\":\"Commit\",\"committer\":\"Committer\",\"compare\":\"Comparar\",\"config\":\"Config\",\"duration\":\"Duração\",\"finished_at\":\"Concluído em\",\"job\":\"Trabalho\",\"log\":\"Log\"},\"top\":{\"admin\":\"Admin\",\"blog\":\"Blog\",\"docs\":\"Documentação\",\"github_login\":\"Logue com o Github\",\"home\":\"Home\",\"profile\":\"Perfil\",\"sign_out\":\"Sair\",\"stats\":\"Estatísticas\"}},\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"fr\":\"Français\",\"ja\":\"日本語\",\"nb\":\"Norsk Bokmål\",\"nl\":\"Nederlands\",\"pl\":\"Polski\",\"ru\":\"Русский\",\"pt-BR\":\"português brasileiro\"},\"no_job\":\"Não há trabalhos\",\"profiles\":{\"show\":{\"email\":\"Email\",\"github\":\"Github\",\"message\":{\"config\":\"como configurar opções de build\",\"your_repos\":\"Use os botões abaixo para ligar ou desligar o hook de serviço do Travis para seus projetos, e então, faça um push para o Github.<br />Para testar com múltiplas versões do Ruby, leia\"},\"messages\":{\"notice\":\"Para começar, leia nosso <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">Guia de início</a>. <small>Só leva alguns minutinhos.</small>\"},\"token\":\"Token\",\"update\":\"Atualizar\",\"update_locale\":\"Atualizar\",\"your_locale\":\"Sua língua\",\"your_repos\":\"Seus Repositórios\"}},\"queue\":\"Fila\",\"repositories\":{\"branch\":\"Branch\",\"commit\":\"Commit\",\"duration\":\"Duração\",\"finished_at\":\"Concluído em\",\"image_url\":\"URL da imagem\",\"markdown\":\"Markdown\",\"message\":\"Mensagem\",\"rdoc\":\"RDOC\",\"started_at\":\"Iniciou em\",\"tabs\":{\"branches\":\"Sumário do Branch\",\"build\":\"Build\",\"build_history\":\"Histórico de Build\",\"current\":\"Atual\",\"job\":\"Trabalho\"},\"textile\":\"Textile\"},\"repository\":{\"duration\":\"Duração\"},\"statistics\":{\"index\":{\"build_count\":\"Número de Builds\",\"count\":\"Número\",\"last_month\":\"último mês\",\"repo_growth\":\"Crescimento de Repositório\",\"total_builds\":\"Total de Builds\",\"total_projects\":\"Total de Projetos/Repositórios\"}},\"workers\":\"Processos\"},\"ru\":{\"admin\":{\"actions\":{\"create\":\"создать\",\"created\":\"создано\",\"delete\":\"удалить\",\"deleted\":\"удалено\",\"update\":\"обновить\",\"updated\":\"обновлено\"},\"credentials\":{\"log_out\":\"Выход\"},\"dashboard\":{\"add_new\":\"Добавить\",\"ago\":\"назад\",\"last_used\":\"Использовалось в последний раз\",\"model_name\":\"Имя модели\",\"modify\":\"Изменить\",\"name\":\"Панель управления\",\"pagename\":\"Управление сайтом\",\"records\":\"Записи\",\"show\":\"Показать\"},\"delete\":{\"confirmation\":\"Да, я уверен\",\"flash_confirmation\":\"%{name} успешно удалено\"},\"history\":{\"name\":\"История\",\"no_activity\":\"Нет активности\",\"page_name\":\"История %{name}\"},\"list\":{\"add_new\":\"Добавить\",\"delete_action\":\"Удалить\",\"delete_selected\":\"Удалить выбранные\",\"edit_action\":\"Редактировать\",\"search\":\"Поиск\",\"select\":\"Для редактирования выберите %{name}\",\"select_action\":\"Выбрать\",\"show_all\":\"Показать все\"},\"new\":{\"basic_info\":\"Основная информация\",\"cancel\":\"Отмена\",\"chosen\":\"Выбрано %{name}\",\"chose_all\":\"Выбрать все\",\"clear_all\":\"Очистить все\",\"one_char\":\"символ.\",\"optional\":\"Необязательно\",\"required\":\"Обязательно\",\"save\":\"Сохранить\",\"save_and_add_another\":\"Сохранить и добавить другое\",\"save_and_edit\":\"Сохранить и продолжить редактирование\",\"select_choice\":\"Выберите и кликните\",\"many_chars\":\"символов или меньше.\"},\"flash\":{\"error\":\"%{name} не удалось %{action}\",\"noaction\":\"Никаких действий не произведено\",\"successful\":\"%{name} было успешно %{action}\"}},\"build\":{\"duration\":\"Длительность\",\"finished_at\":\"Завершен\",\"job\":\"Задача\"},\"builds\":{\"allowed_failures\":\"Допустимые неудачи\",\"author\":\"Автор\",\"branch\":\"Ветка\",\"build_matrix\":\"Матрица\",\"commit\":\"Коммит\",\"committer\":\"Коммитер\",\"compare\":\"Дифф\",\"config\":\"Конфигурация\",\"duration\":\"Длительность\",\"finished_at\":\"Завершен\",\"message\":\"Комментарий\",\"messages\":{\"sponsored_by\":\"Эта серия тестов была запущена на машине, спонсируемой\"},\"name\":\"Билд\",\"started_at\":\"Начало\"},\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} час\",\"few\":\"%{count} часа\",\"many\":\"%{count} часов\",\"other\":\"%{count} часа\"},\"minutes_exact\":{\"one\":\"%{count} минута\",\"few\":\"%{count} минуты\",\"many\":\"%{count} минут\",\"other\":\"%{count} минуты\"},\"seconds_exact\":{\"one\":\"%{count} секунда\",\"few\":\"%{count} секунды\",\"many\":\"%{count} секунд\",\"other\":\"%{count} секунды\"}}},\"devise\":{\"confirmations\":{\"confirmed\":\"Ваш аккаунт успешно подтвержден. Приветствуем!\",\"send_instructions\":\"В течении нескольких минут вы получите электронное письмо с инструкциями для прохождения процедуры подтверждения аккаунта.\"},\"failure\":{\"inactive\":\"Ваш аккаунт еще не активирован.\",\"invalid\":\"Ошибка в адресе почты или пароле.\",\"invalid_token\":\"Неправильный токен аутентификации.\",\"locked\":\"Ваш аккаунт заблокирован.\",\"timeout\":\"Сессия окончена. Для продолжения работы войдите снова.\",\"unauthenticated\":\"Вам нужно войти или зарегистрироваться.\",\"unconfirmed\":\"Вы должны сначала подтвердить свой аккаунт.\"},\"mailer\":{\"confirmation_instructions\":{\"subject\":\"Инструкции для подтверждению аккаунта\"},\"reset_password_instructions\":{\"subject\":\"Инструкции для сброса пароля\"},\"unlock_instructions\":{\"subject\":\"Инструкции для разблокирования аккаунта\"}},\"passwords\":{\"send_instructions\":\"В течении нескольких минут вы получите электронное письмо с инструкциями для сброса пароля.\",\"updated\":\"Ваш пароль успешно изменен. Приветствуем!\"},\"registrations\":{\"destroyed\":\"Ваш аккаунт был успешно удален. Живите долго и процветайте!\",\"signed_up\":\"Вы успешно прошли регистрацию. Инструкции для подтверждения аккаунта отправлены на ваш электронный адрес.\",\"updated\":\"Аккаунт успешно обновлен.\"},\"sessions\":{\"signed_in\":\"Приветствуем!\",\"signed_out\":\"Удачи!\"},\"unlocks\":{\"send_instructions\":\"В течении нескольких минут вы получите электронное письмо с инструкциям для разблокировния аккаунта.\",\"unlocked\":\"Ваш аккаунт успешно разблокирован. Приветствуем!\"}},\"errors\":{\"messages\":{\"already_confirmed\":\"уже подтвержден\",\"not_found\":\"не найден\",\"not_locked\":\"не заблокирован\"}},\"home\":{\"name\":\"Главная\"},\"jobs\":{\"allowed_failures\":\"Допустимые неудачи\",\"author\":\"Автор\",\"branch\":\"Ветка\",\"build_matrix\":\"Матрица\",\"commit\":\"Коммит\",\"committer\":\"Коммитер\",\"compare\":\"Сравнение\",\"config\":\"Конфигурация\",\"duration\":\"Длительность\",\"finished_at\":\"Завершен\",\"message\":\"Комментарий\",\"messages\":{\"sponsored_by\":\"Эта серия тестов была запущена на машине спонсируемой\"},\"started_at\":\"Начало\"},\"layouts\":{\"about\":{\"alpha\":\"Это альфа-версия\",\"join\":\"Присоединяйтесь к нам и помогайте!\",\"mailing_list\":\"Лист рассылки\",\"messages\":{\"alpha\":\"Пожалуйста, <strong>не</strong> считайте данный сервис стабильным. Мы еще очень далеки от стабильности! <a href='https://github.com/travis-ci'>Подробности</a>\"},\"repository\":\"Репозиторий\",\"twitter\":\"Twitter\"},\"application\":{\"fork_me\":\"Fork me on Github\",\"my_repositories\":\"Мои репозитории\",\"recent\":\"Недавние\",\"search\":\"Поиск\",\"sponsers\":\"Спонсоры\",\"sponsors_link\":\"Список всех наших замечательных спонсоров &rarr;\"},\"mobile\":{\"author\":\"Автор\",\"build\":\"Сборка\",\"build_matrix\":\"Матрица сборок\",\"commit\":\"Коммит\",\"committer\":\"Коммитер\",\"compare\":\"Сравнение\",\"config\":\"Конфигурация\",\"duration\":\"Длительность\",\"finished_at\":\"Завершен\",\"job\":\"Задача\",\"log\":\"Журнал\"},\"top\":{\"admin\":\"Управление\",\"blog\":\"Блог\",\"docs\":\"Документация\",\"github_login\":\"Войти через Github\",\"home\":\"Главная\",\"profile\":\"Профиль\",\"sign_out\":\"Выход\",\"stats\":\"Статистика\"}},\"no_job\":\"Очередь пуста\",\"profiles\":{\"show\":{\"email\":\"Электронная почта\",\"github\":\"Github\",\"message\":{\"config\":\"как настроить специальные опции билда\",\"your_repos\":\"Используйте переключатели, чтобы включить Travis service hook для вашего проекта, а потом отправьте код на GitHub.<br />\\nДля тестирования на нескольких версиях Ruby смотрите\"},\"messages\":{\"notice\":\"Перед началом, пожалуйста, прочтите <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">Руководство для быстрого старта</a>. <small>Это займет всего несколько минут.</small>\"},\"token\":\"Токен\",\"update\":\"Обновить\",\"update_locale\":\"Обновить\",\"your_locale\":\"Ваш язык\",\"your_repos\":\"Ваши репозитории\"}},\"queue\":\"Очередь\",\"repositories\":{\"branch\":\"Ветка\",\"commit\":\"Коммит\",\"duration\":\"Длительность\",\"finished_at\":\"Завершен\",\"image_url\":\"URL изображения\",\"markdown\":\"Markdown\",\"message\":\"Комментарий\",\"rdoc\":\"RDOC\",\"started_at\":\"Начало\",\"tabs\":{\"branches\":\"Статус веток\",\"build\":\"Билд\",\"build_history\":\"История\",\"current\":\"Текущий\",\"job\":\"Задача\"},\"textile\":\"Textile\"},\"repository\":{\"duration\":\"Длительность\"},\"statistics\":{\"index\":{\"build_count\":\"Количество билдов\",\"count\":\"Количество\",\"last_month\":\"прошлый месяц\",\"repo_growth\":\"Рост числа репозиториев\",\"total_builds\":\"Всего билдов\",\"total_projects\":\"Всего проектов/репозиториев\"}},\"workers\":\"Машины\",\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"ja\":\"日本語\",\"ru\":\"Русский\",\"fr\":\"Français\",\"nb\":\"Norsk Bokmål\",\"pl\":\"Polski\",\"nl\":\"Nederlands\",\"pt-BR\":\"português brasileiro\"}}};\n\n\n})();\n//@ sourceURL=config/locales");minispade.register('ext/ember/bound_helper', "(function() {// https://gist.github.com/2018185\n// For reference: https://github.com/wagenet/ember.js/blob/ac66dcb8a1cbe91d736074441f853e0da474ee6e/packages/ember-handlebars/lib/views/bound_property_view.js\nvar BoundHelperView = Ember.View.extend(Ember._Metamorph, {\n\n  context: null,\n  options: null,\n  property: null,\n  // paths of the property that are also observed\n  propertyPaths: [],\n\n  value: Ember.K,\n\n  valueForRender: function() {\n    var value = this.value(Ember.get(this.context, this.property), this.options);\n    if (this.options.escaped) { value = Handlebars.Utils.escapeExpression(value); }\n    return value;\n  },\n\n  render: function(buffer) {\n    buffer.push(this.valueForRender());\n  },\n\n  valueDidChange: function() {\n    if (this.morph.isRemoved()) { return; }\n    this.morph.html(this.valueForRender());\n  },\n\n  didInsertElement: function() {\n    this.valueDidChange();\n  },\n\n  init: function() {\n    this._super();\n    Ember.addObserver(this.context, this.property, this, 'valueDidChange');\n    this.get('propertyPaths').forEach(function(propName) {\n        Ember.addObserver(this.context, this.property + '.' + propName, this, 'valueDidChange');\n    }, this);\n  },\n\n  destroy: function() {\n    Ember.removeObserver(this.context, this.property, this, 'valueDidChange');\n    this.get('propertyPaths').forEach(function(propName) {\n        this.context.removeObserver(this.property + '.' + propName, this, 'valueDidChange');\n    }, this);\n    this._super();\n  }\n\n});\n\nEmber.registerBoundHelper = function(name, func) {\n  var propertyPaths = Array.prototype.slice.call(arguments, 2);\n  Ember.Handlebars.registerHelper(name, function(property, options) {\n    var data = options.data,\n        view = data.view,\n        ctx  = this;\n\n    var bindView = view.createChildView(BoundHelperView, {\n      property: property,\n      propertyPaths: propertyPaths,\n      context: ctx,\n      options: options.hash,\n      value: func\n    });\n\n    view.appendChild(bindView);\n  });\n};\n\n\n})();\n//@ sourceURL=ext/ember/bound_helper");minispade.register('ext/ember/namespace', "(function() {Em.Namespace.reopen = Em.Namespace.reopenClass\n\n\n\n})();\n//@ sourceURL=ext/ember/namespace");
\ No newline at end of file
+minispade.register('templates', "(function() {Ember.TEMPLATES['builds/list']=Ember.Handlebars.compile(\"{{#if builds.isLoaded}}\\n  <table id=\\\"builds\\\" class=\\\"list\\\">\\n    <thead>\\n      <tr>\\n        <th>{{t builds.name}}</th>\\n        <th>{{t builds.commit}}</th>\\n        <th>{{t builds.message}}</th>\\n        <th>{{t builds.duration}}</th>\\n        <th>{{t builds.finished_at}}</th>\\n      </tr>\\n    </thead>\\n\\n    <tbody>\\n      {{#each build in builds}}\\n        {{#view Travis.BuildsItemView contextBinding=\\\"build\\\"}}\\n          <tr {{bindAttr class=\\\"view.color\\\"}}>\\n            <td class=\\\"number\\\">\\n              <span class=\\\"status\\\"></span>\\n              <a {{bindAttr href=\\\"view.urlBuild\\\"}} {{action route}}>\\n                {{number}}\\n              </a>\\n            </td>\\n            <td class=\\\"commit\\\">\\n              <a {{bindAttr href=\\\"view.urlGithubCommit\\\"}}>\\n                {{formatCommit commit}}\\n              </a>\\n            </td>\\n            <td class=\\\"message\\\">\\n              {{{formatMessage commit.message short=\\\"true\\\"}}}\\n            </td>\\n            <td class=\\\"duration\\\" {{bindAttr title=\\\"duration\\\"}}>\\n              {{formatDuration duration}}\\n            </td>\\n            <td class=\\\"finished_at timeago\\\" {{bindAttr title=\\\"finishedAt\\\"}}>\\n              {{formatTime finishedAt}}\\n            </td>\\n          </tr>\\n        {{/view}}\\n      {{/each}}\\n    </tbody>\\n  </table>\\n\\n  <p>\\n    <button {{action showMore on=\\\"click\\\" target=\\\"this\\\" isVisibleBinding=\\\"hasMore\\\"}}>\\n      {{t builds.show_more}}\\n    </button>\\n  </p>\\n{{else}}\\n  <div class=\\\"loading\\\"><span>Loading</span></div>\\n{{/if}}\\n\");Ember.TEMPLATES['builds/show']=Ember.Handlebars.compile(\"{{#with view}}\\n  {{#if build.isLoaded}}\\n    <div id=\\\"build\\\" {{bindAttr class=\\\"color\\\"}}>\\n      <dl id=\\\"summary\\\">\\n        <div class=\\\"left\\\">\\n          <dt>{{t builds.name}}</dt>\\n          <dd class=\\\"number\\\">\\n            <span class=\\\"status\\\"></span>\\n            <a {{bindAttr href=\\\"urlBuild\\\"}} {{action route}}>\\n              {{build.number}}\\n            </a>\\n          </dd>\\n          <dt class=\\\"finished_at_label\\\">{{t builds.finished_at}}</dt>\\n          <dd class=\\\"finished_at timeago\\\" {{bindAttr title=\\\"finishedAt\\\"}}>{{formatTime build.finishedAt}}</dd>\\n          <dt>{{t builds.duration}}</dt>\\n          <dd class=\\\"duration\\\" {{bindAttr title=\\\"startedAt\\\"}}>{{formatDuration build.duration}}</dd>\\n        </div>\\n\\n        <div class=\\\"right\\\">\\n          <dt>{{t builds.commit}}</dt>\\n          <dd class=\\\"commit\\\"><a {{bindAttr href=\\\"urlGithubCommit\\\"}}>{{formatCommit build.commit}}</a></dd>\\n          {{#if commit.compareUrl}}\\n            <dt>{{t builds.compare}}</dt>\\n            <dd class=\\\"compare\\\"><a {{bindAttr href=\\\"commit.compareUrl\\\"}}>{{pathFrom build.commit.compareUrl}}</a></dd>\\n          {{/if}}\\n          {{#if commit.authorName}}\\n            <dt>{{t builds.author}}</dt>\\n            <dd class=\\\"author\\\"><a {{bindAttr href=\\\"urlAuthor\\\"}}>{{build.commit.authorName}}</a></dd>\\n          {{/if}}\\n          {{#if commit.committerName}}\\n            <dt>{{t builds.committer}}</dt>\\n            <dd class=\\\"committer\\\"><a {{bindAttr href=\\\"urlCommitter\\\"}}>{{build.commit.committerName}}</a></dd>\\n          {{/if}}\\n        </div>\\n\\n        <dt>{{t builds.message}}</dt>\\n        <dd class=\\\"message\\\">{{{formatMessage build.commit.message}}}</dd>\\n\\n        {{#unless isMatrix}}\\n          <dt>{{t builds.config}}</dt>\\n          <dd class=\\\"config\\\">{{formatConfig build.config}}</dd>\\n        {{/unless}}\\n      </dl>\\n    </div>\\n\\n    {{#if build.isMatrix}}\\n      {{view Travis.JobsView jobsBinding=\\\"build.requiredJobs\\\" required=\\\"true\\\"}}\\n      {{view Travis.JobsView jobsBinding=\\\"build.allowedFailureJobs\\\"}}\\n    {{else}}\\n      {{view Travis.LogView contextBinding=\\\"build.jobs.firstObject\\\"}}\\n    {{/if}}\\n  {{else}}\\n    <div id=\\\"build\\\" class=\\\"loading\\\">\\n      <span>Loading</span>\\n    </div>\\n  {{/if}}\\n{{/with}}\\n\");Ember.TEMPLATES['jobs/list']=Ember.Handlebars.compile(\"{{#if view.jobs.length}}\\n  {{#if view.required}}\\n    <table id=\\\"jobs\\\" class=\\\"list\\\">\\n      <caption>\\n        {{t jobs.build_matrix}}\\n      </caption>\\n  {{else}}\\n    <table id=\\\"allowed_failure_jobs\\\" class=\\\"list\\\">\\n      <caption>\\n        {{t jobs.allowed_failures}}\\n        <a title=\\\"What's this?\\\" class=\\\"help\\\" name=\\\"help-allowed_failures\\\" {{action popup}}></a>\\n      </caption>\\n  {{/if}}\\n    <thead>\\n      <tr>\\n        {{#each key in view.build.configKeys}}\\n          <th>{{key}}</th>\\n        {{/each}}\\n      </tr>\\n    </thead>\\n    <tbody>\\n      {{#each job in view.jobs}}\\n        {{#view Travis.JobsItemView contextBinding=\\\"job\\\"}}\\n          <td class=\\\"number\\\">\\n            <span class=\\\"status\\\"></span>\\n            <a {{bindAttr href=\\\"view.urlJob\\\"}} {{action route}}>\\n              {{number}}\\n            </a>\\n          </td>\\n          <td class=\\\"duration\\\" {{bindAttr title=\\\"startedAt\\\"}}>\\n            {{formatDuration duration}}\\n          </td>\\n          <td class=\\\"finished_at timeago\\\" {{bindAttr title=\\\"finishedAt\\\"}}>\\n            {{formatTime finishedAt}}\\n          </td>\\n          {{#each value in configValues}}\\n            <td>{{value}}</td>\\n          {{/each}}\\n        {{/view}}\\n      {{/each}}\\n    </tbody>\\n  </table>\\n\\n  {{#unless view.required}}\\n    <div id=\\\"help-allowed_failures\\\" class=\\\"popup\\\">\\n      <h4>{{t \\\"jobs.allowed_failures\\\"}}</h4>\\n      <p>\\n        Allowed Failures are items in your build matrix that are allowed to\\n        fail without causing the entire build to be shown as failed.\\n      </p>\\n      <p>\\n        You can define allowed failures in the build matrix as follows:\\n      </p>\\n      <pre>matrix:\\n  allow_failures:\\n    - rvm: ruby-head</pre>\\n      <p>\\n        This lets you add in experimental and preparatory builds to test against versions or\\n        configurations that you are not ready to officially support.\\n      </p>\\n    </div>\\n  {{/unless}}\\n{{/if}}\\n\");Ember.TEMPLATES['jobs/log']=Ember.Handlebars.compile(\"{{view.logSubscriber}}\\n\\n{{#if log.isLoaded}}\\n  <pre id=\\\"log\\\" class=\\\"ansi\\\"><a href=\\\"#\\\" id=\\\"tail\\\" {{action toggleTailing}}>\\n    <span class=\\\"status\\\"></span>\\n    <label>Follow logs</label>\\n  </a>{{{formatLog log.body}}}</pre>\\n\\n  {{#if sponsor.name}}\\n    <p class=\\\"sponsor\\\">\\n    {{t builds.messages.sponsored_by}}\\n      <a {{bindAttr href=\\\"sponsor.url\\\"}}>{{sponsor.name}}</a>\\n    </p>\\n  {{/if}}\\n\\n  <a href='#' class=\\\"to-top\\\" {{action toTop}}>To top</a>\\n{{else}}\\n  <div id=\\\"log\\\" class=\\\"loading\\\">\\n    <span>Loading</span>\\n  </div>\\n{{/if}}\\n\");Ember.TEMPLATES['jobs/show']=Ember.Handlebars.compile(\"{{#with view}}\\n  {{#if job.isLoaded}}\\n    <div {{bindAttr class=\\\"view.color\\\"}}>\\n      <dl id=\\\"summary\\\">\\n        <div class=\\\"left\\\">\\n          <dt>Job</dt>\\n          <dd class=\\\"number\\\"><a {{bindAttr href=\\\"view.urlJob\\\"}} {{action route}}>{{job.number}}</a></dd>\\n          <dt class=\\\"finished_at_label\\\">{{t jobs.finished_at}}</dt>\\n          <dd class=\\\"finished_at timeago\\\" {{bindAttr title=\\\"finishedAt\\\"}}>{{formatTime job.finishedAt}}</dd>\\n          <dt>{{t jobs.duration}}</dt>\\n          <dd class=\\\"duration\\\" {{bindAttr title=\\\"startedAt\\\"}}>{{formatDuration job.duration}}</dd>\\n        </div>\\n\\n        <div class=\\\"right\\\">\\n          <dt>{{t jobs.commit}}</dt>\\n          <dd class=\\\"commit\\\"><a {{bindAttr href=\\\"urlGithubCommit\\\"}}>{{formatCommit commit}}</a></dd>\\n          {{#if commit.compareUrl}}\\n            <dt>{{t jobs.compare}}</dt>\\n            <dd class=\\\"compare\\\"><a {{bindAttr href=\\\"commit.compareUrl\\\"}}>{{pathFrom commit.compareUrl}}</a></dd>\\n          {{/if}}\\n          {{#if commit.authorName}}\\n            <dt>{{t jobs.author}}</dt>\\n            <dd class=\\\"author\\\"><a {{bindAttr href=\\\"urlAuthor\\\"}}>{{commit.authorName}}</a></dd>\\n          {{/if}}\\n          {{#if commit.committerName}}\\n            <dt>{{t jobs.committer}}</dt>\\n            <dd class=\\\"committer\\\"><a {{bindAttr href=\\\"urlCommitter\\\"}}>{{commit.committerName}}</a></dd>\\n          {{/if}}\\n        </div>\\n\\n        <dt>{{t jobs.message}}</dt>\\n        <dd class=\\\"message\\\">{{formatMessage commit.message}}</dd>\\n        <dt>{{t jobs.config}}</dt>\\n        <dd class=\\\"config\\\">{{formatConfig job.config}}</dd>\\n      </dl>\\n\\n      {{view Travis.LogView contextBinding=\\\"job\\\"}}}\\n    </div>\\n  {{else}}\\n    <div id=\\\"job\\\" class=\\\"loading\\\">\\n      <span>Loading</span>\\n    </div>\\n  {{/if}}\\n{{/with}}\\n\");Ember.TEMPLATES['layouts/home']=Ember.Handlebars.compile(\"<div id=\\\"top\\\">\\n  {{outlet top}}\\n</div>\\n\\n<div id=\\\"left\\\">\\n  {{outlet left}}\\n</div>\\n\\n<div id=\\\"main\\\">\\n  {{outlet main}}\\n</div>\\n\\n<div id=\\\"right\\\">\\n  {{outlet right}}\\n</div>\\n\");Ember.TEMPLATES['layouts/profile']=Ember.Handlebars.compile(\"<div id=\\\"top\\\">\\n  {{outlet top}}\\n</div>\\n\\n<div id=\\\"left\\\">\\n  {{outlet left}}\\n</div>\\n\\n<div id=\\\"main\\\">\\n  {{outlet main}}\\n</div>\\n\\n<div id=\\\"right\\\">\\n  <div id=\\\"slider\\\" {{action toggle target=\\\"Travis.app.slider\\\"}}>\\n    <div class='icon'></div>&nbsp;\\n  </div>\\n\\n  <div class=\\\"box\\\">\\n    <h4>Getting started?</h4>\\n    <p>\\n      Please read our <a href=\\\"http://about.travis-ci.org/docs/user/getting-started\\\">guide</a>.\\n      It will only take a few minutes :)\\n    </p>\\n    <p>\\n      You can find detailled docs on our <a href=\\\"http://about.travis-ci.org/\\\">about</a> site.\\n    </p>\\n    <p>\\n      If you need help please don't hesitate to join\\n      <a href=\\\"irc://irc.freenode.net#travis\\\">#travis</a> on irc.freenode.net\\n      or our <a href=\\\"http://groups.google.com/group/travis-ci\\\">mailinglist</a>.\\n    </p>\\n  </div>\\n</div>\\n\");Ember.TEMPLATES['layouts/sidebar']=Ember.Handlebars.compile(\"<a id=\\\"github\\\" href=\\\"https://github.com/travis-ci\\\" title=\\\"Fork me on GitHub\\\">\\n  {{t layouts.application.fork_me}}\\n</a>\\n\\n<div id=\\\"slider\\\" {{action toggle target=\\\"Travis.app.slider\\\"}}>\\n  <div class='icon'></div>&nbsp;\\n</div>\\n\\n{{outlet decks}}\\n{{outlet workers}}\\n{{outlet queues}}\\n{{outlet links}}\\n\\n<div id=\\\"about\\\" class=\\\"box\\\">\\n  <h4>{{t layouts.about.join}}</h4>\\n  <ul>\\n    <li>{{t layouts.about.repository}}: <a href=\\\"http://github.com/travis-ci\\\">Github</a></li>\\n    <li>{{t layouts.about.twitter}}: <a href=\\\"http://twitter.com/travisci\\\">@travisci</a></li>\\n    <li>{{t layouts.about.mailing_list}}: <a href=\\\"http://groups.google.com/group/travis-ci\\\">travis-ci</a></li>\\n    <li><a href=\\\"irc://irc.freenode.net#travis\\\">irc.freenode.net#travis</a></li>\\n  </ul>\\n</div>\\n\");Ember.TEMPLATES['layouts/simple']=Ember.Handlebars.compile(\"<div id=\\\"top\\\">\\n  {{outlet top}}\\n</div>\\n\\n<div id=\\\"main\\\">\\n  {{outlet main}}\\n</div>\\n\\n\");Ember.TEMPLATES['layouts/top']=Ember.Handlebars.compile(\"<a href=\\\"#\\\" {{action route}}>\\n  <h1>Travis</h1>\\n</a>\\n\\n<ul id=\\\"navigation\\\">\\n  <li {{bindAttr class=\\\"view.classHome\\\"}}>\\n    <a href=\\\"/\\\" {{action route}}>Home</a>\\n  </li>\\n  <li {{bindAttr class=\\\"view.classStats\\\"}}>\\n    <a href=\\\"/stats\\\" {{action route}}>Stats</a>\\n  </li>\\n  <li>\\n    <a href=\\\"http://about.travis-ci.org/blog\\\">Blog</a>\\n  </li>\\n  <li>\\n    <a href=\\\"http://about.travis-ci.org/docs\\\">Docs</a>\\n  </li>\\n  <li {{bindAttr class=\\\"view.classProfile\\\"}}>\\n    <p class=\\\"handle\\\">\\n      <a class=\\\"signed-out\\\" href=\\\"#\\\" {{action signIn target=\\\"Travis.app\\\"}}>{{t layouts.top.github_login}}</a>\\n      <a class=\\\"signed-in\\\"  href=\\\"#\\\" class=\\\"name\\\"><img {{bindAttr src=\\\"view.gravatarUrl\\\"}}>{{user.name}}</a>\\n      <span class=\\\"signing-in\\\">Signing in</span>\\n    </p>\\n    <ul>\\n      <li>\\n        <a href=\\\"/profile\\\" class=\\\"profile\\\" {{action route}}>{{t layouts.top.profile}}</a>\\n      </li>\\n      <li>\\n        <a href=\\\"/\\\" class=\\\"signout\\\" {{action signOut target=\\\"Travis.app\\\"}}>{{t layouts.top.sign_out}}</a>\\n      </li>\\n    </ul>\\n  </li>\\n</ul>\\n\");Ember.TEMPLATES['profile/accounts']=Ember.Handlebars.compile(\"<div id=\\\"search_box\\\">\\n</div>\\n\\n<ul class=\\\"tabs\\\">\\n  <li id=\\\"tab_accounts\\\" {{bindAttr class=\\\"view.classAccounts\\\"}}>\\n    <h5><a name=\\\"accounts\\\" href=\\\"\\\">Accounts</a></h5>\\n  </li>\\n</ul>\\n\\n<div class=\\\"tab\\\">\\n  {{#collection Travis.AccountsListView contentBinding=\\\"controller\\\"}}\\n    <a {{bindAttr href=\\\"view.urlAccount\\\"}} {{action route}} class=\\\"name\\\">{{view.name}}</a>\\n    <p class=\\\"summary\\\">\\n      <span class=\\\"repos_label\\\">Repositories:</span>\\n      <abbr class=\\\"repos\\\">{{view.content.reposCount}}</abbr>\\n    </p>\\n  {{/collection}}\\n</div>\\n\");Ember.TEMPLATES['profile/show']=Ember.Handlebars.compile(\"<h3>{{account.name}}</h3>\\n\\n{{view Travis.ProfileTabsView}}\\n\\n<div class=\\\"tab\\\">\\n  {{outlet pane}}\\n</div>\\n\\n\\n\");Ember.TEMPLATES['profile/tabs']=Ember.Handlebars.compile(\"<ul class=\\\"tabs\\\">\\n  <li id=\\\"tab_hooks\\\" {{bindAttr class=\\\"view.classHooks\\\"}}>\\n    <h5><a name=\\\"hooks\\\" {{action activate}}>Repositories</a></h5>\\n  </li>\\n  {{#if view.displayUser}}\\n    <li id=\\\"tab_user\\\" {{bindAttr class=\\\"view.classUser\\\"}}>\\n      <h5><a name=\\\"user\\\" {{action activate}}>Profile</a></h5>\\n    </li>\\n  {{/if}}\\n</ul>\\n\");Ember.TEMPLATES['profile/tabs/hooks']=Ember.Handlebars.compile(\"<p class=\\\"tip\\\">\\n  {{{t profiles.show.message.your_repos}}}\\n</p>\\n\\n{{#if hooks.isLoaded}}\\n  {{#if user.isSyncing}}\\n    <p class=\\\"message loading\\\">\\n      <span>Please wait while we sync from GitHub</span>\\n    </p>\\n  {{else}}\\n    <p class=\\\"message\\\">\\n      Last synchronized from GitHub: {{formatTime user.syncedAt}}\\n      <button class=\\\"sync_now\\\" {{action sync target=\\\"user\\\"}}>\\n        Sync now\\n      </button>\\n    </p>\\n\\n    <ul id=\\\"hooks\\\">\\n      {{#each hook in hooks}}\\n        <li {{bindAttr class=\\\"hook.active:active\\\"}}>\\n          <a {{bindAttr href=\\\"hook.urlGithub\\\"}} rel=\\\"nofollow\\\">{{hook.slug}}</a>\\n          <p class=\\\"description\\\">{{hook.description}}</p>\\n\\n          <div class=\\\"controls\\\">\\n            <a {{bindAttr href=\\\"hook.urlGithubAdmin\\\"}} class=\\\"github-admin tool-tip\\\" title=\\\"Github service hooks admin page\\\"></a>\\n            <a {{action toggle target=\\\"hook\\\"}} class=\\\"switch\\\"></a>\\n          </div>\\n        </li>\\n      {{else}}\\n        <li>\\n          You do not seem to have any repositories that we could sync.\\n        </li>\\n      {{/each}}\\n    </ul>\\n  {{/if}}\\n{{else}}\\n  <p class=\\\"message loading\\\">\\n    <span>Loading</span>\\n  </p>\\n{{/if}}\\n\\n\\n\");Ember.TEMPLATES['profile/tabs/user']=Ember.Handlebars.compile(\"<img {{bindAttr src=\\\"view.gravatarUrl\\\"}}>\\n\\n<dl class=\\\"profile\\\">\\n  <dt>\\n    {{t profiles.show.github}}:\\n  </dt>\\n  <dd>\\n    <a {{bindAttr href=\\\"urlGithub\\\"}}>{{user.login}}</a>\\n  </dd>\\n  <dt>\\n    {{t profiles.show.email}}:\\n  </dt>\\n  <dd>\\n    {{user.email}}\\n  </dd>\\n  <dt>\\n    {{t profiles.show.token}}:\\n  </dt>\\n  <dd>\\n    {{user.token}}\\n  </dd>\\n</dl>\\n\\n<form>\\n  {{view Ember.Select\\n     contentBinding=\\\"view.locales\\\"\\n     selectionBinding=\\\"user.locale\\\"\\n     optionLabelPath=\\\"content.name\\\"\\n     optionValuePath=\\\"content.key\\\"}}\\n\\n  <button name=\\\"commit\\\" {{action saveLocale}}>\\n    {{t profiles.show.update_locale}}\\n  </button>\\n</form>\\n\\n\\n\");Ember.TEMPLATES['queues/list']=Ember.Handlebars.compile(\"<ul id=\\\"queues\\\">\\n{{#each queue in controller}}\\n  <li class=\\\"queue\\\">\\n    <h4>{{t queue}}: {{queue.name}}</h4>\\n    <ul {{bindAttr id=\\\"queue.id\\\"}}>\\n      {{#each job in queue}}\\n        {{#view Travis.QueueItemView jobBinding=\\\"job\\\"}}\\n          <li>\\n            <a {{bindAttr href=\\\"view.urlJob\\\"}} {{action route}}>\\n              <span class=\\\"slug\\\">\\n                {{job.repository.slug}}\\n              </span>\\n              #{{job.number}}\\n            </a>\\n          </li>\\n        {{/view}}\\n      {{else}}\\n        {{t no_job}}\\n      {{/each}}\\n    </ul>\\n  </li>\\n{{/each}}\\n</ul>\\n\");Ember.TEMPLATES['repos/list']=Ember.Handlebars.compile(\"<div id=\\\"search_box\\\">\\n  {{view Ember.TextField valueBinding=\\\"controller.search\\\"}}\\n</div>\\n\\n{{view Travis.ReposListTabsView}}\\n\\n<a {{action toggleInfo}} class=\\\"toggle-info\\\"></a>\\n\\n<div class=\\\"tab\\\">\\n  {{#collection Travis.RepositoriesListView contentBinding=\\\"controller\\\"}}\\n    {{#with view.repository}}\\n      <div class=\\\"slug-and-status\\\">\\n        <span class=\\\"status\\\"></span>\\n        <a {{bindAttr href=\\\"view.urlRepository\\\"}} {{action route}} class=\\\"slug\\\">{{slug}}</a>\\n      </div>\\n      <a {{bindAttr href=\\\"view.urlLastBuild\\\"}} {{action route}} class=\\\"last_build\\\">{{lastBuildNumber}}</a>\\n\\n      <p class=\\\"summary\\\">\\n        <span class=\\\"duration_label\\\">{{t repositories.duration}}:</span>\\n        <abbr class=\\\"duration\\\" {{bindAttr title=\\\"lastBuildStartedAt\\\"}}>{{formatDuration lastBuildDuration}}</abbr>,\\n        <span class=\\\"finished_at_label\\\">{{t repositories.finished_at}}:</span>\\n        <abbr class=\\\"finished_at timeago\\\" {{bindAttr title=\\\"lastBuildFinishedAt\\\"}}>{{formatTime lastBuildFinishedAt}}</abbr>\\n      </p>\\n\\n      <span class=\\\"indicator\\\"></span>\\n\\n      {{#if description}}\\n        <div class=\\\"info\\\">\\n          <p class=\\\"description\\\">{{description}}</p>\\n        </div>\\n      {{/if}}\\n    {{/with}}\\n  {{/collection}}\\n</div>\\n\");Ember.TEMPLATES['repos/list/tabs']=Ember.Handlebars.compile(\"<ul class=\\\"tabs\\\">\\n  <li id=\\\"tab_recent\\\" {{bindAttr class=\\\"view.classRecent\\\"}}>\\n    <h5><a name=\\\"recent\\\" {{action activate}}>{{t layouts.application.recent}}</a></h5>\\n  </li>\\n  <li id=\\\"tab_owned\\\" {{bindAttr class=\\\"view.classOwned\\\"}}>\\n    <h5><a name=\\\"owned\\\" {{action activate}}>{{t layouts.application.my_repositories}}</a></h5>\\n  </li>\\n  <li id=\\\"tab_search\\\" {{bindAttr class=\\\"view.classSearch\\\"}}>\\n    <h5><a name=\\\"search\\\" {{action activate}}>{{t layouts.application.search}}</a></h5>\\n  </li>\\n</ul>\\n\\n\");Ember.TEMPLATES['repos/show']=Ember.Handlebars.compile(\"<div id=\\\"repository\\\" {{bindAttr class=\\\"view.class\\\"}}>\\n  {{#if view.repository.isLoaded}}\\n    {{#with view.repository}}\\n      <h3>\\n        <a {{bindAttr href=\\\"view.urlGithub\\\"}}>{{slug}}</a>\\n      </h3>\\n\\n      <p class=\\\"description\\\">{{description}}</p>\\n\\n      <ul class=\\\"github-stats\\\">\\n        <li class=\\\"language\\\">\\n          {{lastBuildLanguage}}\\n        </li>\\n        <li>\\n          <a class=\\\"watchers\\\" title=\\\"Watchers\\\" {{bindAttr href=\\\"view.urlGithubWatchers\\\"}}>\\n            {{stats.watchers}}\\n          </a>\\n        </li>\\n        <li>\\n          <a class=\\\"forks\\\" title=\\\"Forks\\\" {{bindAttr href=\\\"view.urlGithubNetwork\\\"}}>\\n            {{stats.forks}}\\n          </a>\\n        </li>\\n      </ul>\\n\\n      {{view Travis.RepoShowTabsView}}\\n      {{view Travis.RepoShowToolsView}}\\n    {{/with}}\\n\\n  {{else}}\\n    <span>Loading</span>\\n  {{/if}}\\n\\n  <div class=\\\"tab\\\">\\n    {{outlet pane}}\\n  </div>\\n</div>\\n\\n\");Ember.TEMPLATES['repos/show/tabs']=Ember.Handlebars.compile(\"<ul class=\\\"tabs\\\">\\n  <li id=\\\"tab_current\\\" {{bindAttr class=\\\"view.classCurrent\\\"}}>\\n    <h5>\\n      <a {{bindAttr href=\\\"view.urlRepository\\\"}} {{action route}}>\\n        {{t repositories.tabs.current}}\\n      </a>\\n    </h5>\\n  </li>\\n  <li id=\\\"tab_builds\\\" {{bindAttr class=\\\"view.classBuilds\\\"}}>\\n    <h5>\\n      <a {{bindAttr href=\\\"view.urlBuilds\\\"}} {{action route}}>\\n        {{t repositories.tabs.build_history}}\\n      </a>\\n    </h5>\\n  </li>\\n  <li id=\\\"tab_pull_requests\\\" {{bindAttr class=\\\"view.classPullRequests\\\"}}>\\n    <h5>\\n      <a {{bindAttr href=\\\"view.urlPullRequests\\\"}} {{action route}}>\\n        {{t repositories.tabs.pull_requests}}\\n      </a>\\n    </h5>\\n  </li>\\n  <li id=\\\"tab_branches\\\" {{bindAttr class=\\\"view.classBranches\\\"}}>\\n    <h5>\\n      <a {{bindAttr href=\\\"view.urlBranches\\\"}} {{action route}}>\\n        {{t repositories.tabs.branches}}\\n      </a>\\n    </h5>\\n  </li>\\n  <li id=\\\"tab_build\\\" {{bindAttr class=\\\"view.classBuild\\\"}}>\\n    <h5>\\n      <a {{bindAttr href=\\\"view.urlBuild\\\"}} {{action route}}>\\n        {{t repositories.tabs.build}} {{view.build.number}}\\n      </a>\\n    </h5>\\n  </li>\\n  <li id=\\\"tab_job\\\" {{bindAttr class=\\\"view.classJob\\\"}}>\\n    <h5>\\n      <a {{bindAttr href=\\\"view.urlJob\\\"}} {{action route}}>\\n        {{t repositories.tabs.job}} {{view.job.number}}\\n      </a>\\n    </h5>\\n  </li>\\n</ul>\\n\");Ember.TEMPLATES['repos/show/tools']=Ember.Handlebars.compile(\"<div id=\\\"tools\\\">\\n  <a href=\\\"#\\\" {{action toggle}}></a>\\n  <div class=\\\"pane\\\">\\n    <p>\\n      <label>{{t repositories.branch}}:</label>\\n      {{#if view.branches.isLoaded}}\\n        {{view Ember.Select contentBinding=\\\"view.branches\\\" selectionBinding=\\\"view.branch\\\" optionLabelPath=\\\"content.commit.branch\\\" optionValuePath=\\\"content.commit.branch\\\"}}\\n      {{else}}\\n        <span class=\\\"loading\\\"></span>\\n      {{/if}}\\n    </p>\\n    <p>\\n      <label>{{t repositories.image_url}}:</label>\\n      <input type=\\\"text\\\" class=\\\"url\\\" {{bindAttr value=\\\"view.urlStatusImage\\\"}}></input>\\n    </p>\\n    <p>\\n      <label>{{t repositories.markdown}}:</label>\\n      <input type=\\\"text\\\" class=\\\"markdown\\\" {{bindAttr value=\\\"view.markdownStatusImage\\\"}}></input>\\n    </p>\\n    <p>\\n      <label>{{t repositories.textile}}:</label>\\n      <input type=\\\"text\\\" class=\\\"textile\\\" {{bindAttr value=\\\"view.textileStatusImage\\\"}}></input>\\n    </p>\\n    <p>\\n      <label>{{t repositories.rdoc}}:</label>\\n      <input type=\\\"text\\\" class=\\\"rdoc\\\" {{bindAttr value=\\\"view.rdocStatusImage\\\"}}></input>\\n    </p>\\n  </div>\\n</div>\\n\");Ember.TEMPLATES['sponsors/decks']=Ember.Handlebars.compile(\"<h4>{{t layouts.application.sponsers}}</h4>\\n\\n<ul class=\\\"sponsors top\\\">\\n  {{#each deck in controller}}\\n    {{#each deck}}\\n      <li {{bindAttr class=\\\"type\\\"}}>\\n        <a {{bindAttr href=\\\"url\\\"}}>\\n          <img {{bindAttr src=\\\"image\\\"}}>\\n        </a>\\n      </li>\\n    {{/each}}\\n  {{/each}}\\n</ul>\\n\\n<p class=\\\"hint\\\">\\n  <a href=\\\"https://love.travis-ci.org/sponsors\\\">\\n    {{{t layouts.application.sponsors_link}}}\\n  </a>\\n</p>\\n\");Ember.TEMPLATES['sponsors/links']=Ember.Handlebars.compile(\"<div class=\\\"box\\\">\\n  <h4>{{t layouts.application.sponsers}}</h4>\\n\\n  <ul class=\\\"sponsors bottom\\\">\\n    {{#each controller}}\\n      <li>\\n        {{{link}}}\\n      </li>\\n    {{/each}}\\n  </ul>\\n\\n  <p class=\\\"hint\\\">\\n    <a href=\\\"https://love.travis-ci.org/sponsors\\\">\\n      {{{t layouts.application.sponsors_link}}}\\n    </a>\\n  </p>\\n</div>\\n\\n\");Ember.TEMPLATES['stats/show']=Ember.Handlebars.compile(\"<div id=\\\"repos_stats\\\"></div>\\n<div id=\\\"tests_stats\\\"></div>\\n\");Ember.TEMPLATES['workers/list']=Ember.Handlebars.compile(\"{{#view Travis.WorkersView}}\\n  <h4>\\n    {{t workers}}\\n    <a id=\\\"toggle-workers\\\" {{action toggleWorkers target=\\\"parentView.parentView\\\"}}></a>\\n  </h4>\\n  <ul id=\\\"workers\\\">\\n    {{#each group in controller.groups}}\\n      {{#view Travis.WorkersListView}}\\n        <li class=\\\"group\\\">\\n          <h5 {{action toggle}}>\\n            {{group.firstObject.host}}\\n          </h5>\\n          <ul>\\n          {{#each worker in group}}\\n            {{#view Travis.WorkersItemView workerBinding=\\\"worker\\\"}}\\n              <li class=\\\"worker\\\">\\n                <div class=\\\"status\\\"></div>\\n                {{#if worker.isWorking}}\\n                  <a {{bindAttr href=\\\"worker.urlJob\\\"}} {{bindAttr title=\\\"worker.lastSeenAt\\\"}} {{action route}}>\\n                    {{view.display}}\\n                  </a>\\n                {{else}}\\n                  {{view.display}}\\n                {{/if}}\\n              </li>\\n            {{/view}}\\n          {{/each}}\\n          </ul>\\n        </li>\\n      {{/view}}\\n    {{else}}\\n      No workers\\n    {{/each}}\\n  </ul>\\n{{/view}}\\n\");\n})();\n//@ sourceURL=templates");minispade.register('app', "(function() {(function() {\nminispade.require('travis');\nminispade.require('auth');\nminispade.require('controllers');\nminispade.require('helpers');\nminispade.require('models');\nminispade.require('pusher');\nminispade.require('routes');\nminispade.require('slider');\nminispade.require('store');\nminispade.require('tailing');\nminispade.require('templates');\nminispade.require('views');\nminispade.require('config/locales');\nminispade.require('data/sponsors');\n\n  Travis.reopen({\n    App: Em.Application.extend({\n      currentUserBinding: 'auth.user',\n      accessTokenBinding: 'auth.user.accessToken',\n      authStateBinding: 'auth.state',\n      init: function() {\n        this._super();\n        this.connect();\n        this.store = Travis.Store.create();\n        this.store.loadMany(Travis.Sponsor, Travis.SPONSORS);\n        this.set('auth', Travis.Auth.create({\n          store: this.store,\n          endpoint: Travis.config.api_endpoint\n        }));\n        this.slider = new Travis.Slider();\n        this.routes = new Travis.Routes();\n        this.pusher = new Travis.Pusher();\n        return this.tailing = new Travis.Tailing();\n      },\n      signIn: function() {\n        return this.get('auth').signIn();\n      },\n      signOut: function() {\n        this.get('auth').signOut();\n        return this.routes.route('');\n      },\n      render: function(name, action, params) {\n        var layout;\n        layout = this.connectLayout(name);\n        layout.activate(action, params || {});\n        return $('body').attr('id', name);\n      },\n      receive: function() {\n        return this.store.receive.apply(this.store, arguments);\n      },\n      connectLayout: function(name) {\n        var viewClass;\n        if (this.get('layout.name') !== name) {\n          name = $.camelize(name);\n          viewClass = Travis[\"\" + name + \"Layout\"];\n          this.layout = Travis[\"\" + name + \"Controller\"].create({\n            parent: this.controller\n          });\n          this.controller.connectOutlet({\n            outletName: 'layout',\n            controller: this.layout,\n            viewClass: viewClass\n          });\n        }\n        return this.layout;\n      },\n      connect: function() {\n        var view;\n        this.controller = Em.Controller.create();\n        view = Em.View.create({\n          template: Em.Handlebars.compile('{{outlet layout}}'),\n          controller: this.controller\n        });\n        return view.appendTo(this.get('rootElement') || 'body');\n      }\n    })\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=app");minispade.register('auth', "(function() {(function() {\n\n  this.Travis.Auth = Ember.Object.extend({\n    iframe: $('<iframe id=\"auth-frame\" />').hide(),\n    timeout: 5000,\n    state: 'signed-out',\n    receivingEnd: \"\" + location.protocol + \"//\" + location.host,\n    init: function() {\n      var _this = this;\n      this.iframe.appendTo('body');\n      window.addEventListener('message', function(e) {\n        return _this.receiveMessage(e);\n      });\n      return Ember.run.next(this, this.loadUser);\n    },\n    loadUser: function() {\n      var user;\n      if (user = typeof sessionStorage !== \"undefined\" && sessionStorage !== null ? sessionStorage.getItem('travis.user') : void 0) {\n        return this.setUser(user);\n      } else if (typeof localStorage !== \"undefined\" && localStorage !== null ? localStorage.getItem('travis.auto_signin') : void 0) {\n        return this.trySignIn();\n      }\n    },\n    signIn: function() {\n      this.set('state', 'signing-in');\n      this.trySignIn();\n      return Ember.run.later(this, this.checkSignIn.bind(this), this.timeout);\n    },\n    trySignIn: function() {\n      return this.iframe.attr('src', \"\" + this.endpoint + \"/auth/post_message?origin=\" + this.receivingEnd);\n    },\n    checkSignIn: function() {\n      if (this.get('state') === 'signing-in') {\n        return this.forceSignIn();\n      }\n    },\n    forceSignIn: function() {\n      if (typeof localStorage !== \"undefined\" && localStorage !== null) {\n        localStorage.setItem('travis.auto_signin', 'true');\n      }\n      return window.location = \"\" + this.endpoint + \"/auth/handshake?redirect_uri=\" + location;\n    },\n    signOut: function() {\n      if (typeof localStorage !== \"undefined\" && localStorage !== null) {\n        localStorage.clear();\n      }\n      if (typeof sessionStorage !== \"undefined\" && sessionStorage !== null) {\n        sessionStorage.clear();\n      }\n      return this.setUser();\n    },\n    setUser: function(data) {\n      var user;\n      if (typeof data === 'string') {\n        data = JSON.parse(data);\n      }\n      if (data) {\n        user = this.storeUser(data);\n      }\n      this.set('state', user ? 'signed-in' : 'signed-out');\n      return this.set('user', user ? user : void 0);\n    },\n    storeUser: function(data) {\n      if (typeof localStorage !== \"undefined\" && localStorage !== null) {\n        localStorage.setItem('travis.auto_signin', 'true');\n      }\n      if (typeof sessionStorage !== \"undefined\" && sessionStorage !== null) {\n        sessionStorage.setItem('travis.user', JSON.stringify(data));\n      }\n      data.user.access_token = data.token;\n      this.store.load(Travis.User, data.user);\n      this.store.loadMany(Travis.Account, data.accounts);\n      return Travis.User.find(data.user.id);\n    },\n    receiveMessage: function(event) {\n      if (event.origin === this.expectedOrigin()) {\n        this.setUser(event.data);\n        return console.log(\"signed in as \" + event.data.user.login);\n      } else {\n        return console.log(\"unexpected message \" + event.origin + \": \" + event.data);\n      }\n    },\n    expectedOrigin: function() {\n      if (this.endpoint[0] === '/') {\n        return this.receivingEnd;\n      } else {\n        return this.endpoint;\n      }\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=auth");minispade.register('controllers', "(function() {(function() {\nminispade.require('helpers');\nminispade.require('travis/ticker');\n\n  Travis.reopen({\n    Controller: Em.Controller.extend({\n      init: function() {\n        var klass, name, _i, _len, _ref, _results;\n        _ref = Array.prototype.slice.apply(arguments);\n        _results = [];\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          name = _ref[_i];\n          name = \"\" + ($.camelize(name, false)) + \"Controller\";\n          klass = Travis[$.camelize(name)] || Em.Controller;\n          _results.push(this[name] = klass.create({\n            parent: this,\n            namespace: Travis,\n            controllers: this\n          }));\n        }\n        return _results;\n      },\n      connectTop: function() {\n        this.connectOutlet({\n          outletName: 'top',\n          controller: this.topController,\n          viewClass: Travis.TopView\n        });\n        return this.topController.set('tab', this.get('name'));\n      },\n      connectOutlet: function() {\n        var view, _connectedOutletViews;\n        view = this._super.apply(this, arguments);\n        if (view) {\n          _connectedOutletViews = Travis.app.get('_connectedOutletViews');\n          if (!_connectedOutletViews) {\n            _connectedOutletViews = [];\n          }\n          _connectedOutletViews.pushObject(view);\n          Travis.app.set('_connectedOutletViews', _connectedOutletViews);\n        }\n        return view;\n      }\n    }),\n    TopController: Em.Controller.extend({\n      userBinding: 'Travis.app.currentUser'\n    })\n  });\nminispade.require('controllers/accounts');\nminispade.require('controllers/builds');\nminispade.require('controllers/home');\nminispade.require('controllers/profile');\nminispade.require('controllers/repositories');\nminispade.require('controllers/repository');\nminispade.require('controllers/sidebar');\nminispade.require('controllers/stats');\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers");minispade.register('controllers/accounts', "(function() {(function() {\n\n  Travis.AccountsController = Ember.ArrayController.extend({\n    defaultTab: 'accounts',\n    init: function() {\n      return this.activate(this.defaultTab);\n    },\n    activate: function(tab, params) {\n      this.set('tab', tab);\n      return this[\"view\" + ($.camelize(tab))](params);\n    },\n    viewAccounts: function() {\n      return this.set('content', Travis.Account.filter());\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers/accounts");minispade.register('controllers/builds', "(function() {(function() {\n\n  Travis.BuildsController = Em.ArrayController.extend({\n    repositoryBinding: 'parent.repository',\n    contentBinding: 'parent.builds'\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers/builds");minispade.register('controllers/home', "(function() {(function() {\n\n  Travis.HomeController = Travis.Controller.extend({\n    name: 'home',\n    init: function() {\n      this._super('top', 'repositories', 'repository', 'sidebar');\n      this.connectTop();\n      this.connectOutlet({\n        outletName: 'left',\n        controller: this.repositoriesController,\n        viewClass: Travis.RepositoriesView\n      });\n      this.connectOutlet({\n        outletName: 'main',\n        controller: this.repositoryController,\n        viewClass: Travis.RepositoryView\n      });\n      return this.connectOutlet({\n        outletName: 'right',\n        controller: this.sidebarController,\n        viewClass: Travis.SidebarView\n      });\n    },\n    activate: function(action, params) {\n      return this.repositoryController.activate(action, params);\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers/home");minispade.register('controllers/profile', "(function() {(function() {\n\n  Travis.ProfileController = Travis.Controller.extend({\n    name: 'profile',\n    userBinding: 'Travis.app.currentUser',\n    init: function() {\n      this._super('top', 'accounts');\n      this.connectTop();\n      this.connectOutlet({\n        outletName: 'left',\n        controller: this.accountsController,\n        viewClass: Travis.AccountsView\n      });\n      this.connectOutlet({\n        outletName: 'main',\n        controller: this,\n        viewClass: Travis.ProfileView\n      });\n      return this.accounts = this.accountsController.get('content');\n    },\n    account: (function() {\n      var login;\n      login = this.get('params.login') || Travis.app.get('currentUser.login');\n      return this.accounts.toArray().filter(function(account) {\n        if (account.get('login') === login) {\n          return account;\n        }\n      })[0];\n    }).property('accounts.length', 'params.login'),\n    activate: function(action, params) {\n      this.setParams(params || this.get('params'));\n      return this[\"view\" + ($.camelize(action))]();\n    },\n    viewHooks: function() {\n      this.connectTab('hooks');\n      return this.set('hooks', Travis.Hook.find({\n        owner_name: this.get('params.login') || Travis.app.get('currentUser.login')\n      }));\n    },\n    viewUser: function() {\n      return this.connectTab('user');\n    },\n    connectTab: function(tab) {\n      var viewClass;\n      viewClass = Travis[\"\" + ($.camelize(tab)) + \"View\"];\n      this.set('tab', tab);\n      return this.connectOutlet({\n        outletName: 'pane',\n        controller: this,\n        viewClass: viewClass\n      });\n    },\n    setParams: function(params) {\n      var key, value, _results;\n      this.set('params', {});\n      _results = [];\n      for (key in params) {\n        value = params[key];\n        _results.push(this.set(\"params.\" + key, params[key]));\n      }\n      return _results;\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers/profile");minispade.register('controllers/repositories', "(function() {(function() {\n\n  Travis.RepositoriesController = Ember.ArrayController.extend({\n    defaultTab: 'recent',\n    sortProperties: ['sortOrder'],\n    init: function() {\n      this.activate(this.defaultTab);\n      return Ember.run.later(this.updateTimes.bind(this), Travis.INTERVALS.updateTimes);\n    },\n    updateTimes: function() {\n      var content;\n      if (content = this.get('content')) {\n        content.forEach(function(r) {\n          return r.updateTimes();\n        });\n      }\n      return Ember.run.later(this.updateTimes.bind(this), Travis.INTERVALS.updateTimes);\n    },\n    activate: function(tab, params) {\n      this.set('tab', tab);\n      return this[\"view\" + ($.camelize(tab))](params);\n    },\n    viewRecent: function() {\n      return this.set('content', Travis.Repository.find());\n    },\n    viewOwned: function() {\n      return this.set('content', Travis.Repository.ownedBy(Travis.app.get('currentUser.login')));\n    },\n    viewSearch: function(params) {\n      return this.set('content', Travis.Repository.search(params.search));\n    },\n    searchObserver: (function() {\n      var search, tab;\n      search = this.get('search');\n      tab = search ? 'search' : 'recent';\n      return this.activate(tab, {\n        search: search\n      });\n    }).observes('search')\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers/repositories");minispade.register('controllers/repository', "(function() {(function() {\n\n  Travis.RepositoryController = Travis.Controller.extend({\n    bindings: [],\n    params: {},\n    init: function() {\n      this._super('builds', 'build', 'job');\n      return Ember.run.later(this.updateTimes.bind(this), Travis.INTERVALS.updateTimes);\n    },\n    updateTimes: function() {\n      var build, builds;\n      if (builds = this.get('builds')) {\n        builds.forEach(function(b) {\n          return b.updateTimes();\n        });\n      }\n      if (build = this.get('build')) {\n        build.updateTimes();\n        build.get('jobs').forEach(function(j) {\n          return j.updateTimes();\n        });\n      }\n      return Ember.run.later(this.updateTimes.bind(this), Travis.INTERVALS.updateTimes);\n    },\n    activate: function(action, params) {\n      this._unbind();\n      this.setParams(params);\n      return this[\"view\" + ($.camelize(action))]();\n    },\n    viewIndex: function() {\n      this._bind('repository', 'controllers.repositoriesController.firstObject');\n      this._bind('build', 'repository.lastBuild');\n      return this.connectTab('current');\n    },\n    viewCurrent: function() {\n      this.connectTab('current');\n      this._bind('repository', 'repositoriesByParams.firstObject');\n      return this._bind('build', 'repository.lastBuild');\n    },\n    viewBuilds: function() {\n      this.connectTab('builds');\n      this._bind('repository', 'repositoriesByParams.firstObject');\n      return this._bind('builds', 'repository.builds');\n    },\n    viewPullRequests: function() {\n      this.connectTab('pull_requests');\n      this._bind('repository', 'repositoriesByParams.firstObject');\n      return this._bind('builds', 'repository.pullRequests');\n    },\n    viewBranches: function() {\n      this.connectTab('branches');\n      this._bind('repository', 'repositoriesByParams.firstObject');\n      return this._bind('builds', 'repository.branches');\n    },\n    viewBuild: function() {\n      this._bind('repository', 'repositoriesByParams.firstObject');\n      this._bind('build', 'buildById');\n      return this.connectTab('build');\n    },\n    viewJob: function() {\n      this._bind('repository', 'repositoriesByParams.firstObject');\n      this._bind('build', 'job.build');\n      this._bind('job', 'jobById');\n      return this.connectTab('job');\n    },\n    repositoriesByParams: (function() {\n      return Travis.Repository.bySlug(\"\" + (this.get('params.owner')) + \"/\" + (this.get('params.name')));\n    }).property('params.owner', 'params.name'),\n    buildById: (function() {\n      var id;\n      if (id = this.get('params.id')) {\n        return Travis.Build.find(id);\n      }\n    }).property('params.id'),\n    jobById: (function() {\n      var id;\n      if (id = this.get('params.id')) {\n        return Travis.Job.find(id);\n      }\n    }).property('params.id'),\n    repositoryObserver: (function() {\n      var repository;\n      repository = this.get('repository');\n      if (repository) {\n        return repository.select();\n      }\n    }).observes('repository.id'),\n    connectTab: function(tab) {\n      var name, viewClass;\n      name = tab === 'current' ? 'build' : tab;\n      viewClass = name === 'builds' || name === 'branches' || name === 'pull_requests' ? Travis.BuildsView : Travis[\"\" + ($.camelize(name)) + \"View\"];\n      this.set('tab', tab);\n      return this.connectOutlet({\n        outletName: 'pane',\n        controller: this,\n        viewClass: viewClass\n      });\n    },\n    setParams: function(params) {\n      var key, value, _results;\n      _results = [];\n      for (key in params) {\n        value = params[key];\n        _results.push(this.set(\"params.\" + key, params[key]));\n      }\n      return _results;\n    },\n    _bind: function(to, from) {\n      return this.bindings.push(Ember.oneWay(this, to, from));\n    },\n    _unbind: function() {\n      var binding, _i, _len, _ref;\n      _ref = this.bindings;\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        binding = _ref[_i];\n        binding.disconnect(this);\n      }\n      return this.bindings.length = 0;\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers/repository");minispade.register('controllers/sidebar', "(function() {(function() {\n\n  Travis.reopen({\n    SidebarController: Em.ArrayController.extend({\n      init: function() {\n        this.tickables = [];\n        Travis.Ticker.create({\n          target: this,\n          interval: Travis.INTERVALS.sponsors\n        });\n        this.connectWorkers(Travis.Worker.find());\n        this.connectQueues(Travis.QUEUES);\n        this.connectSponsors('decks', Travis.Sponsor.decks(), 1);\n        return this.connectSponsors('links', Travis.Sponsor.links(), 6);\n      },\n      connectSponsors: function(name, sponsors, perPage) {\n        var controller, viewClass;\n        controller = Travis.SponsorsController.create({\n          perPage: perPage,\n          content: sponsors\n        });\n        viewClass = Em.View.extend({\n          templateName: \"sponsors/\" + name\n        });\n        this.connectOutlet({\n          outletName: name,\n          controller: controller,\n          viewClass: viewClass\n        });\n        return this.tickables.push(controller);\n      },\n      connectWorkers: function(workers) {\n        var controller, viewClass;\n        controller = Travis.WorkersController.create({\n          content: workers\n        });\n        viewClass = Em.View.extend({\n          templateName: 'workers/list'\n        });\n        return this.connectOutlet({\n          outletName: 'workers',\n          controller: controller,\n          viewClass: viewClass\n        });\n      },\n      connectQueues: function(queues) {\n        var controller, queue, viewClass;\n        queues = (function() {\n          var _i, _len, _results;\n          _results = [];\n          for (_i = 0, _len = queues.length; _i < _len; _i++) {\n            queue = queues[_i];\n            _results.push(Em.ArrayController.create({\n              content: Travis.Job.queued(queue.name),\n              id: \"queue_\" + queue.name,\n              name: queue.display\n            }));\n          }\n          return _results;\n        })();\n        controller = Travis.QueuesController.create({\n          content: queues\n        });\n        viewClass = Em.View.extend({\n          templateName: 'queues/list'\n        });\n        return this.connectOutlet({\n          outletName: 'queues',\n          controller: controller,\n          viewClass: viewClass\n        });\n      },\n      tick: function() {\n        var tickable, _i, _len, _ref, _results;\n        _ref = this.tickables;\n        _results = [];\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          tickable = _ref[_i];\n          _results.push(tickable.tick());\n        }\n        return _results;\n      }\n    }),\n    QueuesController: Em.ArrayController.extend(),\n    WorkersController: Em.ArrayController.extend({\n      groups: (function() {\n        var groups, host, worker, _i, _len, _ref;\n        groups = {};\n        _ref = this.get('content').toArray();\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          worker = _ref[_i];\n          host = worker.get('host');\n          if (!groups[host]) {\n            groups[host] = Em.ArrayProxy.create({\n              content: []\n            });\n          }\n          groups[host].pushObject(worker);\n        }\n        return $.values(groups);\n      }).property('content.length')\n    }),\n    SponsorsController: Em.ArrayController.extend({\n      page: 0,\n      arrangedContent: (function() {\n        return this.get('shuffled').slice(this.start(), this.end());\n      }).property('shuffled.length', 'page'),\n      shuffled: (function() {\n        var content;\n        if (content = this.get('content')) {\n          return $.shuffle(content);\n        } else {\n          return [];\n        }\n      }).property('content.length'),\n      tick: function() {\n        return this.set('page', this.isLast() ? 0 : this.get('page') + 1);\n      },\n      pages: (function() {\n        var length;\n        length = this.get('content.length');\n        if (length) {\n          return parseInt(length / this.get('perPage') + 1);\n        } else {\n          return 1;\n        }\n      }).property('length'),\n      isLast: function() {\n        return this.get('page') === this.get('pages') - 1;\n      },\n      start: function() {\n        return this.get('page') * this.get('perPage');\n      },\n      end: function() {\n        return this.start() + this.get('perPage');\n      }\n    })\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers/sidebar");minispade.register('controllers/stats', "(function() {(function() {\n\n  Travis.StatsController = Travis.Controller.extend({\n    name: 'stats',\n    init: function() {\n      this._super('top');\n      this.connectTop();\n      return this.connectOutlet({\n        outletName: 'main',\n        controller: this,\n        viewClass: Travis.StatsView\n      });\n    },\n    activate: function(action, params) {}\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers/stats");minispade.register('helpers', "(function() {(function() {\nminispade.require('helpers/handlebars');\nminispade.require('helpers/helpers');\nminispade.require('helpers/urls');\n\n}).call(this);\n\n})();\n//@ sourceURL=helpers");minispade.register('helpers/handlebars', "(function() {(function() {\n  var safe;\nminispade.require('ext/ember/bound_helper');\n\n  safe = function(string) {\n    return new Handlebars.SafeString(string);\n  };\n\n  Handlebars.registerHelper('tipsy', function(text, tip) {\n    return safe('<span class=\"tool-tip\" original-title=\"' + tip + '\">' + text + '</span>');\n  });\n\n  Handlebars.registerHelper('t', function(key) {\n    return safe(I18n.t(key));\n  });\n\n  Ember.registerBoundHelper('formatTime', function(value, options) {\n    return safe(Travis.Helpers.timeAgoInWords(value) || '-');\n  });\n\n  Ember.registerBoundHelper('formatDuration', function(duration, options) {\n    return safe(Travis.Helpers.timeInWords(duration));\n  });\n\n  Ember.registerBoundHelper('formatCommit', function(commit, options) {\n    if (commit) {\n      return safe(Travis.Helpers.formatCommit(commit.get('sha'), commit.get('branch')));\n    }\n  });\n\n  Ember.registerBoundHelper('formatSha', function(sha, options) {\n    return safe(Travis.Helpers.formatSha(sha));\n  });\n\n  Ember.registerBoundHelper('pathFrom', function(url, options) {\n    return safe(Travis.Helpers.pathFrom(url));\n  });\n\n  Ember.registerBoundHelper('formatMessage', function(message, options) {\n    return safe(Travis.Helpers.formatMessage(message, options));\n  });\n\n  Ember.registerBoundHelper('formatConfig', function(config, options) {\n    return safe(Travis.Helpers.formatConfig(config));\n  });\n\n  Ember.registerBoundHelper('formatLog', function(log, options) {\n    return Travis.Helpers.formatLog(log) || '';\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=helpers/handlebars");minispade.register('helpers/helpers', "(function() {(function() {\nminispade.require('travis/log');\nminispade.require('emoij');\n\n  this.Travis.Helpers = {\n    compact: function(object) {\n      var key, result, value, _ref;\n      result = {};\n      _ref = object || {};\n      for (key in _ref) {\n        value = _ref[key];\n        if (!$.isEmpty(value)) {\n          result[key] = value;\n        }\n      }\n      return result;\n    },\n    safe: function(string) {\n      return new Handlebars.SafeString(string);\n    },\n    colorForResult: function(result) {\n      if (result === 0) {\n        return 'green';\n      } else {\n        if (result === 1) {\n          return 'red';\n        } else {\n          return null;\n        }\n      }\n    },\n    formatCommit: function(sha, branch) {\n      return Travis.Helpers.formatSha(sha) + (branch ? \" (\" + branch + \")\" : '');\n    },\n    formatSha: function(sha) {\n      return (sha || '').substr(0, 7);\n    },\n    formatConfig: function(config) {\n      var values;\n      config = $.only(config, 'rvm', 'gemfile', 'env', 'otp_release', 'php', 'node_js', 'scala', 'jdk', 'python', 'perl');\n      values = $.map(config, function(value, key) {\n        value = (value && value.join ? value.join(', ') : value) || '';\n        return '%@: %@'.fmt($.camelize(key), value);\n      });\n      if (values.length === 0) {\n        return '-';\n      } else {\n        return values.join(', ');\n      }\n    },\n    formatMessage: function(message, options) {\n      message = message || '';\n      if (options.short) {\n        message = message.split(/\\n/)[0];\n      }\n      return this._emojize(this._escape(message)).replace(/\\n/g, '<br/>');\n    },\n    formatLog: function(log) {\n      return Travis.Log.filter(log);\n    },\n    pathFrom: function(url) {\n      return (url || '').split('/').pop();\n    },\n    timeAgoInWords: function(date) {\n      return $.timeago.distanceInWords(date);\n    },\n    durationFrom: function(started, finished) {\n      started = started && this._toUtc(new Date(this._normalizeDateString(started)));\n      finished = finished ? this._toUtc(new Date(this._normalizeDateString(finished))) : this._nowUtc();\n      if (started && finished) {\n        return Math.round((finished - started) / 1000);\n      } else {\n        return 0;\n      }\n    },\n    timeInWords: function(duration) {\n      var days, hours, minutes, result, seconds;\n      days = Math.floor(duration / 86400);\n      hours = Math.floor(duration % 86400 / 3600);\n      minutes = Math.floor(duration % 3600 / 60);\n      seconds = duration % 60;\n      if (days > 0) {\n        return 'more than 24 hrs';\n      } else {\n        result = [];\n        if (hours === 1) {\n          result.push(hours + ' hr');\n        }\n        if (hours > 1) {\n          result.push(hours + ' hrs');\n        }\n        if (minutes > 0) {\n          result.push(minutes + ' min');\n        }\n        if (seconds > 0) {\n          result.push(seconds + ' sec');\n        }\n        if (result.length > 0) {\n          return result.join(' ');\n        } else {\n          return '-';\n        }\n      }\n    },\n    _normalizeDateString: function(string) {\n      if (window.JHW) {\n        string = string.replace('T', ' ').replace(/-/g, '/');\n        string = string.replace('Z', '').replace(/\\..*$/, '');\n      }\n      return string;\n    },\n    _nowUtc: function() {\n      return this._toUtc(new Date());\n    },\n    _toUtc: function(date) {\n      return Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\n    },\n    _emojize: function(text) {\n      var emojis;\n      emojis = text.match(/:\\S+?:/g);\n      if (emojis !== null) {\n        $.each(emojis.uniq(), function(ix, emoji) {\n          var image, strippedEmoji;\n          strippedEmoji = emoji.substring(1, emoji.length - 1);\n          if (EmojiDictionary.indexOf(strippedEmoji) !== -1) {\n            image = '<img class=\\'emoji\\' title=\\'' + emoji + '\\' alt=\\'' + emoji + '\\' src=\\'' + '/images/emoji/' + strippedEmoji + '.png\\'/>';\n            return text = text.replace(new RegExp(emoji, 'g'), image);\n          }\n        });\n      }\n      return text;\n    },\n    _escape: function(text) {\n      return text.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\n    }\n  };\n\n}).call(this);\n\n})();\n//@ sourceURL=helpers/helpers");minispade.register('helpers/urls', "(function() {(function() {\n\n  this.Travis.Urls = {\n    repository: function(slug) {\n      return \"/\" + slug;\n    },\n    builds: function(slug) {\n      return \"/\" + slug + \"/builds\";\n    },\n    pullRequests: function(slug) {\n      return \"/\" + slug + \"/pull_requests\";\n    },\n    branches: function(slug) {\n      return \"/\" + slug + \"/branches\";\n    },\n    build: function(slug, id) {\n      return \"/\" + slug + \"/builds/\" + id;\n    },\n    job: function(slug, id) {\n      return \"/\" + slug + \"/jobs/\" + id;\n    },\n    githubCommit: function(slug, sha) {\n      return \"http://github.com/\" + slug + \"/commit/\" + sha;\n    },\n    githubRepository: function(slug) {\n      return \"http://github.com/\" + slug;\n    },\n    githubWatchers: function(slug) {\n      return \"http://github.com/\" + slug + \"/watchers\";\n    },\n    githubNetwork: function(slug) {\n      return \"http://github.com/\" + slug + \"/network\";\n    },\n    githubAdmin: function(slug) {\n      return \"http://github.com/\" + slug + \"/admin/hooks#travis_minibucket\";\n    },\n    statusImage: function(slug, branch) {\n      return (\"https://secure.travis-ci.org/\" + slug + \".png\") + (branch ? \"?branch=\" + branch : '');\n    },\n    email: function(email) {\n      return \"mailto:\" + email;\n    },\n    account: function(login) {\n      return \"/profile/\" + login;\n    }\n  };\n\n}).call(this);\n\n})();\n//@ sourceURL=helpers/urls");minispade.register('models', "(function() {(function() {\nminispade.require('models/extensions');\nminispade.require('models/account');\nminispade.require('models/artifact');\nminispade.require('models/branch');\nminispade.require('models/build');\nminispade.require('models/commit');\nminispade.require('models/hook');\nminispade.require('models/job');\nminispade.require('models/repository');\nminispade.require('models/sponsor');\nminispade.require('models/user');\nminispade.require('models/worker');\n\n}).call(this);\n\n})();\n//@ sourceURL=models");minispade.register('models/account', "(function() {(function() {\nminispade.require('travis/model');\n\n  this.Travis.Account = Travis.Model.extend({\n    primaryKey: 'login',\n    login: DS.attr('string'),\n    name: DS.attr('string'),\n    type: DS.attr('string'),\n    reposCount: DS.attr('number'),\n    urlGithub: (function() {\n      return \"http://github.com/\" + (this.get('login'));\n    }).property()\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/account");minispade.register('models/artifact', "(function() {(function() {\nminispade.require('travis/model');\n\n  this.Travis.Artifact = Travis.Model.extend({\n    body: DS.attr('string'),\n    append: function(body) {\n      return this.set('body', this.get('body') + body);\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/artifact");minispade.register('models/branch', "(function() {(function() {\nminispade.require('travis/model');\n\n  this.Travis.Branch = Travis.Model.extend(Travis.Helpers, {\n    repositoryId: DS.attr('number'),\n    commitId: DS.attr('number'),\n    number: DS.attr('number'),\n    branch: DS.attr('string'),\n    message: DS.attr('string'),\n    result: DS.attr('number'),\n    duration: DS.attr('number'),\n    startedAt: DS.attr('string'),\n    finishedAt: DS.attr('string'),\n    commit: DS.belongsTo('Travis.Commit'),\n    repository: (function() {\n      if (this.get('repositoryId')) {\n        return Travis.Repository.find(this.get('repositoryId'));\n      }\n    }).property('repositoryId'),\n    updateTimes: function() {\n      this.notifyPropertyChange('started_at');\n      return this.notifyPropertyChange('finished_at');\n    }\n  });\n\n  this.Travis.Branch.reopenClass({\n    byRepositoryId: function(id) {\n      return this.find({\n        repository_id: id\n      });\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/branch");minispade.register('models/build', "(function() {(function() {\nminispade.require('travis/model');\n\n  this.Travis.Build = Travis.Model.extend(Travis.DurationCalculations, {\n    eventType: DS.attr('string'),\n    repositoryId: DS.attr('number'),\n    commitId: DS.attr('number'),\n    state: DS.attr('string'),\n    number: DS.attr('number'),\n    branch: DS.attr('string'),\n    message: DS.attr('string'),\n    result: DS.attr('number'),\n    _duration: DS.attr('number', {\n      key: 'duration'\n    }),\n    startedAt: DS.attr('string', {\n      key: 'started_at'\n    }),\n    finishedAt: DS.attr('string', {\n      key: 'finished_at'\n    }),\n    repository: DS.belongsTo('Travis.Repository'),\n    commit: DS.belongsTo('Travis.Commit'),\n    jobs: DS.hasMany('Travis.Job', {\n      key: 'job_ids'\n    }),\n    config: (function() {\n      return Travis.Helpers.compact(this.get('data.config'));\n    }).property('data.config'),\n    isMatrix: (function() {\n      return this.get('data.job_ids.length') > 1;\n    }).property('data.job_ids.length'),\n    requiredJobs: (function() {\n      return this.get('jobs').filter(function(data) {\n        return !data.get('allowFailure');\n      });\n    }).property('jobs.@each.allowFailure'),\n    allowedFailureJobs: (function() {\n      return this.get('jobs').filter(function(data) {\n        return data.get('allowFailure');\n      });\n    }).property('jobs.@each.allowFailure'),\n    configKeys: (function() {\n      var config, headers, key, keys;\n      if (!(config = this.get('config'))) {\n        return [];\n      }\n      keys = $.intersect($.keys(config), Travis.CONFIG_KEYS);\n      headers = (function() {\n        var _i, _len, _ref, _results;\n        _ref = ['build.job', 'build.duration', 'build.finished_at'];\n        _results = [];\n        for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n          key = _ref[_i];\n          _results.push(I18n.t(key));\n        }\n        return _results;\n      })();\n      return $.map(headers.concat(keys), function(key) {\n        return $.camelize(key);\n      });\n    }).property('config')\n  });\n\n  this.Travis.Build.reopenClass({\n    byRepositoryId: function(id, parameters) {\n      return this.find($.extend(parameters || {}, {\n        repository_id: id,\n        orderBy: 'number DESC'\n      }));\n    },\n    olderThanNumber: function(id, build_number) {\n      return this.find({\n        url: \"/builds\",\n        repository_id: id,\n        after: build_number\n      });\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/build");minispade.register('models/commit', "(function() {(function() {\nminispade.require('travis/model');\n\n  this.Travis.Commit = Travis.Model.extend({\n    buildId: DS.attr('number'),\n    sha: DS.attr('string'),\n    branch: DS.attr('string'),\n    message: DS.attr('string'),\n    compareUrl: DS.attr('string'),\n    authorName: DS.attr('string'),\n    authorEmail: DS.attr('string'),\n    committerName: DS.attr('string'),\n    committerEmail: DS.attr('string'),\n    build: DS.belongsTo('Travis.Build', {\n      key: 'buildId'\n    })\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/commit");minispade.register('models/extensions', "(function() {(function() {\n\n  Travis.DurationCalculations = Ember.Mixin.create({\n    duration: (function() {\n      var duration;\n      if (duration = this.get('_duration')) {\n        return duration;\n      } else {\n        return Travis.Helpers.durationFrom(this.get('startedAt'), this.get('finishedAt'));\n      }\n    }).property('_duration', 'finishedAt', 'startedAt'),\n    updateTimes: function() {\n      this.notifyPropertyChange('_duration');\n      return this.notifyPropertyChange('finished_at');\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/extensions");minispade.register('models/hook', "(function() {(function() {\nminispade.require('travis/model');\n\n  this.Travis.Hook = Travis.Model.extend({\n    name: DS.attr('string'),\n    ownerName: DS.attr('string'),\n    description: DS.attr('string'),\n    active: DS.attr('boolean'),\n    account: (function() {\n      return this.get('slug').split('/')[0];\n    }).property('slug'),\n    slug: (function() {\n      return \"\" + (this.get('ownerName')) + \"/\" + (this.get('name'));\n    }).property('ownerName', 'name'),\n    urlGithub: (function() {\n      return \"http://github.com/\" + (this.get('slug'));\n    }).property(),\n    urlGithubAdmin: (function() {\n      return \"http://github.com/\" + (this.get('slug')) + \"/admin/hooks#travis_minibucket\";\n    }).property(),\n    toggle: function() {\n      this.set('active', !this.get('active'));\n      return Travis.app.store.commit();\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/hook");minispade.register('models/job', "(function() {(function() {\nminispade.require('travis/model');\n\n  this.Travis.Job = Travis.Model.extend(Travis.DurationCalculations, {\n    repositoryId: DS.attr('number'),\n    buildId: DS.attr('number'),\n    commitId: DS.attr('number'),\n    logId: DS.attr('number'),\n    queue: DS.attr('string'),\n    state: DS.attr('string'),\n    number: DS.attr('string'),\n    result: DS.attr('number'),\n    _duration: DS.attr('number', {\n      key: 'duration'\n    }),\n    startedAt: DS.attr('string'),\n    finishedAt: DS.attr('string'),\n    allowFailure: DS.attr('boolean', {\n      key: 'allow_failure'\n    }),\n    repository: DS.belongsTo('Travis.Repository', {\n      key: 'repository_id'\n    }),\n    build: DS.belongsTo('Travis.Build', {\n      key: 'build_id'\n    }),\n    commit: DS.belongsTo('Travis.Commit', {\n      key: 'commit_id'\n    }),\n    log: DS.belongsTo('Travis.Artifact', {\n      key: 'log_id'\n    }),\n    isQueued: (function() {\n      return console.log(this.get('state'));\n    }).property('state'),\n    config: (function() {\n      return Travis.Helpers.compact(this.get('data.config'));\n    }).property('data.config'),\n    sponsor: (function() {\n      return this.get('data.sponsor');\n    }).property('data.sponsor'),\n    configValues: (function() {\n      var config;\n      if (config = this.get('config')) {\n        return $.values($.only.apply(config, Travis.CONFIG_KEYS));\n      } else {\n        return [];\n      }\n    }).property('config'),\n    appendLog: function(text) {\n      var log;\n      if (log = this.get('log')) {\n        return log.append(text);\n      }\n    },\n    subscribe: function() {\n      var id;\n      if (id = this.get('id')) {\n        return Travis.app.pusher.subscribe(\"job-\" + id);\n      }\n    },\n    onStateChange: (function() {\n      if (this.get('state') === 'finished') {\n        return Travis.app.pusher.unsubscribe(\"job-\" + (this.get('id')));\n      }\n    }).observes('state')\n  });\n\n  this.Travis.Job.reopenClass({\n    queued: function(queue) {\n      this.find();\n      return Travis.app.store.filter(this, function(job) {\n        var queued;\n        queued = ['created', 'queued'].indexOf(job.get('state')) !== -1;\n        return queued && job.get('queue') === (\"builds.\" + queue);\n      });\n    },\n    findMany: function(ids) {\n      return Travis.app.store.findMany(this, ids);\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/job");minispade.register('models/repository', "(function() {(function() {\nminispade.require('travis/model');\n\n  this.Travis.Repository = Travis.Model.extend({\n    slug: DS.attr('string'),\n    description: DS.attr('string'),\n    lastBuildId: DS.attr('number'),\n    lastBuildNumber: DS.attr('string'),\n    lastBuildResult: DS.attr('number'),\n    lastBuildStartedAt: DS.attr('string'),\n    lastBuildFinishedAt: DS.attr('string'),\n    lastBuild: DS.belongsTo('Travis.Build'),\n    builds: (function() {\n      return Travis.Build.byRepositoryId(this.get('id'), {\n        event_type: 'push'\n      });\n    }).property(),\n    pullRequests: (function() {\n      return Travis.Build.byRepositoryId(this.get('id'), {\n        event_type: 'pull_request'\n      });\n    }).property(),\n    branches: (function() {\n      return Travis.Branch.byRepositoryId(this.get('id'));\n    }).property(),\n    owner: (function() {\n      return (this.get('slug') || '').split('/')[0];\n    }).property('slug'),\n    name: (function() {\n      return (this.get('slug') || '').split('/')[1];\n    }).property('slug'),\n    lastBuildDuration: (function() {\n      var duration;\n      duration = this.get('data.last_build_duration');\n      if (!duration) {\n        duration = Travis.Helpers.durationFrom(this.get('lastBuildStartedAt'), this.get('lastBuildFinishedAt'));\n      }\n      return duration;\n    }).property('data.last_build_duration', 'lastBuildStartedAt', 'lastBuildFinishedAt'),\n    sortOrder: (function() {\n      var lastBuildFinishedAt;\n      if (lastBuildFinishedAt = this.get('lastBuildFinishedAt')) {\n        return -new Date(lastBuildFinishedAt).getTime();\n      } else {\n        return -new Date('9999').getTime() - parseInt(this.get('lastBuildId'));\n      }\n    }).property('lastBuildFinishedAt', 'lastBuildId'),\n    stats: (function() {\n      var _this = this;\n      return this.get('_stats') || $.get(\"https://api.github.com/repos/\" + (this.get('slug')), function(data) {\n        _this.set('_stats', data);\n        return _this.notifyPropertyChange('stats');\n      }) && {};\n    }).property(),\n    select: function() {\n      return Travis.Repository.select(this.get('id'));\n    },\n    updateTimes: function() {\n      return this.notifyPropertyChange('lastBuildDuration');\n    }\n  });\n\n  this.Travis.Repository.reopenClass({\n    recent: function() {\n      return this.find();\n    },\n    ownedBy: function(login) {\n      return this.find({\n        owner_name: login,\n        orderBy: 'name'\n      });\n    },\n    search: function(query) {\n      return this.find({\n        search: query,\n        orderBy: 'name'\n      });\n    },\n    bySlug: function(slug) {\n      var repo;\n      repo = $.select(this.find().toArray(), function(repo) {\n        return repo.get('slug') === slug;\n      });\n      if (repo.length > 0) {\n        return repo;\n      } else {\n        return this.find({\n          slug: slug\n        });\n      }\n    },\n    select: function(id) {\n      return this.find().forEach(function(repository) {\n        return repository.set('selected', repository.get('id') === id);\n      });\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/repository");minispade.register('models/sponsor', "(function() {(function() {\nminispade.require('travis/model');\n\n  this.Travis.Sponsor = Travis.Model.extend({\n    type: DS.attr('string'),\n    url: DS.attr('string'),\n    link: DS.attr('string'),\n    image: (function() {\n      return \"/images/sponsors/\" + (this.get('data.image'));\n    }).property('data.image')\n  });\n\n  Travis.Sponsor.reopenClass({\n    decks: function() {\n      return this.platinum().concat(this.gold());\n    },\n    platinum: function() {\n      var platinum, sponsor, _i, _len, _results;\n      platinum = this.byType('platinum').toArray();\n      _results = [];\n      for (_i = 0, _len = platinum.length; _i < _len; _i++) {\n        sponsor = platinum[_i];\n        _results.push([sponsor]);\n      }\n      return _results;\n    },\n    gold: function() {\n      var gold, _results;\n      gold = this.byType('gold').toArray();\n      _results = [];\n      while (gold.length > 0) {\n        _results.push(gold.splice(0, 2));\n      }\n      return _results;\n    },\n    links: function() {\n      return this.byType('silver');\n    },\n    byType: function() {\n      var types;\n      types = Array.prototype.slice.apply(arguments);\n      return Travis.Sponsor.filter(function(sponsor) {\n        return types.indexOf(sponsor.get('type')) !== -1;\n      });\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/sponsor");minispade.register('models/user', "(function() {(function() {\nminispade.require('travis/ajax');\nminispade.require('travis/model');\n\n  this.Travis.User = Travis.Model.extend(Travis.Ajax, {\n    name: DS.attr('string'),\n    email: DS.attr('string'),\n    login: DS.attr('string'),\n    token: DS.attr('string'),\n    locale: DS.attr('string'),\n    gravatarId: DS.attr('string'),\n    isSyncing: DS.attr('boolean'),\n    syncedAt: DS.attr('string'),\n    repoCount: DS.attr('number'),\n    accessToken: DS.attr('string'),\n    init: function() {\n      if (this.get('isSyncing')) {\n        this.poll();\n      }\n      return this._super();\n    },\n    urlGithub: (function() {\n      return \"https://github.com/\" + (this.get('login'));\n    }).property(),\n    updateLocale: function(locale) {\n      this.set('locale', locale);\n      return Travis.app.store.commit();\n    },\n    type: (function() {\n      return 'user';\n    }).property(),\n    sync: function() {\n      this.post('/profile/sync');\n      this.set('isSyncing', true);\n      return this.poll();\n    },\n    poll: function() {\n      var _this = this;\n      return this.ajax('/profile', 'get', {\n        success: function(data) {\n          if (data.user.is_syncing) {\n            return Ember.run.later(_this, _this.poll.bind(_this), 3000);\n          } else if (_this.get('isSyncing')) {\n            Travis.app.store.load(Travis.User, data.user);\n            return Travis.app.store.loadMany(Travis.Account, data.accounts);\n          }\n        }\n      });\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/user");minispade.register('models/worker', "(function() {(function() {\nminispade.require('travis/model');\n\n  this.Travis.Worker = Travis.Model.extend({\n    state: DS.attr('string'),\n    name: DS.attr('string'),\n    host: DS.attr('string'),\n    lastSeenAt: DS.attr('string'),\n    payload: (function() {\n      return this.get('data.payload');\n    }).property('data.payload'),\n    number: (function() {\n      return this.get('name').match(/\\d+$/)[0];\n    }).property('name'),\n    isWorking: (function() {\n      return this.get('state') === 'working';\n    }).property('state'),\n    urlJob: (function() {\n      if (this.get('state') === 'working') {\n        return \"/\" + (this.get('repository')) + \"/jobs/\" + (this.get('job_id'));\n      }\n    }).property('repository', 'job_id', 'state'),\n    repository: (function() {\n      return this.get('payload.repository.slug');\n    }).property('payload.repository.slug'),\n    job_id: (function() {\n      return this.get('payload.job.id');\n    }).property('payload.job.id')\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/worker");minispade.register('pusher', "(function() {(function() {\n\n  Travis.Pusher = function() {\n    var channel, _i, _len, _ref, _ref1;\n    this.active_channels = [];\n    if (((_ref = Travis.config.pusher) != null ? _ref.key : void 0) != null) {\n      this.pusher = new Pusher(Travis.config.pusher.key);\n      _ref1 = Travis.Pusher.CHANNELS;\n      for (_i = 0, _len = _ref1.length; _i < _len; _i++) {\n        channel = _ref1[_i];\n        this.subscribe(channel);\n      }\n    }\n    return this;\n  };\n\n  $.extend(Travis.Pusher, {\n    CHANNELS: ['common'],\n    CHANNEL_PREFIX: ''\n  });\n\n  $.extend(Travis.Pusher.prototype, {\n    subscribe: function(channel) {\n      var _this = this;\n      if (this.pusher && this.active_channels.indexOf(channel) === -1) {\n        this.active_channels.push(channel);\n        return this.pusher.subscribe(this.prefix(channel)).bind_all(function(event, data) {\n          return _this.receive(event, data);\n        });\n      }\n    },\n    unsubscribe: function(channel) {\n      var ix;\n      ix = this.active_channels.indexOf(channel);\n      if (this.pusher && ix === -1) {\n        this.active_channels.splice(ix, 1);\n        return this.pusher.unsubscribe(this.prefix(channel));\n      }\n    },\n    prefix: function(channel) {\n      return \"\" + Travis.Pusher.CHANNEL_PREFIX + channel;\n    },\n    receive: function(event, data) {\n      if (data.id) {\n        data = this.normalize(event, data);\n      }\n      return Ember.run.next(function() {\n        return Travis.app.store.receive(event, data);\n      });\n    },\n    normalize: function(event, data) {\n      switch (event) {\n        case 'build:started':\n        case 'build:finished':\n          return data;\n        case 'job:created':\n        case 'job:started':\n        case 'job:finished':\n        case 'job:log':\n          if (data.queue) {\n            data.queue = data.queue.replace('builds.', '');\n          }\n          return {\n            job: data\n          };\n        case 'worker:added':\n        case 'worker:updated':\n        case 'worker:removed':\n          return {\n            worker: data\n          };\n      }\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=pusher");minispade.register('routes', "(function() {(function() {\n\n  Travis.Routes = function() {\n    var _this = this;\n    if (!Travis.Routes.initialized) {\n      return Ember.run.next(function() {\n        var route, target, _ref;\n        Em.routes.set('usesHistory', true);\n        Em.routes.set('wantsHistory', true);\n        Em.routes.set('baseURI', _this.base_uri);\n        _ref = Travis.ROUTES;\n        for (route in _ref) {\n          target = _ref[route];\n          _this.add(route, target[0], target[1]);\n        }\n        return Travis.Routes.initialized = true;\n      });\n    }\n  };\n\n  $.extend(Travis.Routes.prototype, {\n    base_uri: \"\" + document.location.protocol + \"//\" + document.location.host,\n    add: function(route, layout, action) {\n      var _this = this;\n      return Em.routes.add(route, function(params) {\n        return _this.action(layout, action, params);\n      });\n    },\n    route: function(location) {\n      if (typeof location !== 'string') {\n        location = $(event.target).closest('a')[0].href.replace(\"\" + this.base_uri + \"/\", '');\n      }\n      return Em.routes.set('location', location);\n    },\n    action: function(name, action, params) {\n      if (this.before(name, action, params)) {\n        return Travis.app.render(name, action, params);\n      }\n    },\n    before: function(name, action, params) {\n      if (this.requiresAuth(name, action, params)) {\n        return this.requireAuth(name, action, params);\n      } else {\n        return true;\n      }\n    },\n    signedIn: function() {\n      return !!Travis.app.get('currentUser');\n    },\n    requiresAuth: function(name, action, params) {\n      return name === 'profile' && !this.signedIn();\n    },\n    requireAuth: function(name, action, params) {\n      Travis.app.set('returnTo', [name, action, params]);\n      this.route('');\n      return false;\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=routes");minispade.register('slider', "(function() {(function() {\n\n  this.Travis.Slider = function() {\n    if ((typeof localStorage !== \"undefined\" && localStorage !== null ? localStorage.getItem('travis.maximized') : void 0) === 'true') {\n      this.minimize();\n    }\n    return this;\n  };\n\n  $.extend(Travis.Slider.prototype, {\n    persist: function() {\n      return typeof localStorage !== \"undefined\" && localStorage !== null ? localStorage.setItem('travis.maximized', this.isMinimized()) : void 0;\n    },\n    isMinimized: function() {\n      return $('body').hasClass('maximized');\n    },\n    minimize: function() {\n      return $('body').addClass('maximized');\n    },\n    toggle: function() {\n      var element;\n      $('body').toggleClass('maximized');\n      this.persist();\n      element = $('<span></span>');\n      $('#top .profile').append(element);\n      return Em.run.later((function() {\n        return element.remove();\n      }), 10);\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=slider");minispade.register('store', "(function() {(function() {\n  var DATA_PROXY,\n    __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };\nminispade.require('store/rest_adapter');\n\n  DATA_PROXY = {\n    get: function(name) {\n      return this.savedData[name];\n    }\n  };\n\n  Travis.Store = DS.Store.extend({\n    revision: 4,\n    adapter: Travis.RestAdapter.create(),\n    merge: function(type, id, hash) {\n      var clientId, data, dataCache, primaryKey, record, recordCache, typeMap;\n      if (hash === void 0) {\n        hash = id;\n        primaryKey = type.proto().primaryKey;\n        Ember.assert(\"A data hash was loaded for a record of type \" + type.toString() + \" but no primary key '\" + primaryKey + \"' was provided.\", hash[primaryKey]);\n        id = hash[primaryKey];\n      }\n      typeMap = this.typeMapFor(type);\n      dataCache = typeMap.cidToHash;\n      clientId = typeMap.idToCid[id];\n      recordCache = this.get('recordCache');\n      if (clientId !== void 0) {\n        if (data = dataCache[clientId]) {\n          $.extend(data, hash);\n        } else {\n          dataCache[clientId] = hash;\n        }\n        if (record = recordCache[clientId]) {\n          record.send('didChangeData');\n        }\n      } else {\n        clientId = this.find(type, id).get('clientId');\n      }\n      if (clientId) {\n        DATA_PROXY.savedData = hash;\n        this.updateRecordArrays(type, clientId, DATA_PROXY);\n        return {\n          id: id,\n          clientId: clientId\n        };\n      }\n    },\n    receive: function(event, data) {\n      var job, mappings, name, type, _ref;\n      _ref = event.split(':'), name = _ref[0], type = _ref[1];\n      mappings = this.adapter.get('mappings');\n      type = mappings[name];\n      if (event === 'job:log') {\n        if (job = this.find(Travis.Job, data['job']['id'])) {\n          return job.appendLog(data['job']['_log']);\n        }\n      } else if (data[type.singularName()]) {\n        return this._loadOne(this, type, data);\n      } else if (data[type.pluralName()]) {\n        return this._loadMany(this, type, data);\n      } else {\n        if (!type) {\n          throw \"can't load data for \" + name;\n        }\n      }\n    },\n    _loadOne: function(store, type, json) {\n      var root;\n      root = type.singularName();\n      this.adapter.sideload(store, type, json, root);\n      this.merge(type, json[root]);\n      return this._updateAssociations(type, root, json[root]);\n    },\n    _loadMany: function(store, type, json) {\n      var root;\n      console.log('loadMany');\n      root = type.pluralName();\n      this.adapter.sideload(store, type, json, root);\n      return this.loadMany(type, json[root]);\n    },\n    _updateAssociations: function(type, name, data) {\n      var _this = this;\n      return Em.get(type, 'associationsByName').forEach(function(key, meta) {\n        var clientId, dataProxy, id, ids, parent, _ref;\n        if (meta.kind === 'belongsTo') {\n          id = data[\"\" + key + \"_id\"];\n          if (clientId = _this.typeMapFor(meta.type).idToCid[id]) {\n            if (parent = _this.findByClientId(meta.type, clientId, id)) {\n              dataProxy = parent.get('data');\n              if (ids = dataProxy.get(\"\" + name + \"_ids\")) {\n                if (_ref = data.id, __indexOf.call(ids, _ref) < 0) {\n                  ids.pushObject(data.id);\n                }\n                return parent.send('didChangeData');\n              }\n            }\n          }\n        }\n      });\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=store");minispade.register('store/fixture_adapter', "(function() {(function() {\n\n  this.Travis.FixtureAdapter = DS.Adapter.extend({\n    find: function(store, type, id) {\n      var fixtures;\n      fixtures = type.FIXTURES;\n      Ember.assert(\"Unable to find fixtures for model type \" + type.toString(), !!fixtures);\n      if (fixtures.hasLoaded) {\n        return;\n      }\n      return setTimeout((function() {\n        store.loadMany(type, fixtures);\n        return fixtures.hasLoaded = true;\n      }), 300);\n    },\n    findMany: function() {\n      return this.find.apply(this, arguments);\n    },\n    findAll: function(store, type) {\n      var fixtures, ids;\n      fixtures = type.FIXTURES;\n      Ember.assert(\"Unable to find fixtures for model type \" + type.toString(), !!fixtures);\n      ids = fixtures.map(function(item, index, self) {\n        return item.id;\n      });\n      return store.loadMany(type, ids, fixtures);\n    },\n    findQuery: function(store, type, params, array) {\n      var fixture, fixtures, hashes, key, matches, value;\n      fixtures = type.FIXTURES;\n      Ember.assert(\"Unable to find fixtures for model type \" + type.toString(), !!fixtures);\n      hashes = (function() {\n        var _i, _len, _results;\n        _results = [];\n        for (_i = 0, _len = fixtures.length; _i < _len; _i++) {\n          fixture = fixtures[_i];\n          matches = (function() {\n            var _results1;\n            _results1 = [];\n            for (key in params) {\n              value = params[key];\n              _results1.push(key === 'orderBy' || fixture[key] === value);\n            }\n            return _results1;\n          })();\n          if (matches.reduce(function(a, b) {\n            return a && b;\n          })) {\n            _results.push(fixture);\n          } else {\n            _results.push(null);\n          }\n        }\n        return _results;\n      })();\n      return array.load(hashes.compact());\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=store/fixture_adapter");minispade.register('store/rest_adapter', "(function() {(function() {\nminispade.require('travis/ajax');\nminispade.require('models');\n\n  this.Travis.RestAdapter = DS.RESTAdapter.extend(Travis.Ajax, {\n    mappings: {\n      repositories: Travis.Repository,\n      repository: Travis.Repository,\n      builds: Travis.Build,\n      build: Travis.Build,\n      commits: Travis.Commit,\n      commit: Travis.Commit,\n      jobs: Travis.Job,\n      job: Travis.Job,\n      account: Travis.Account,\n      accounts: Travis.Account,\n      worker: Travis.Worker,\n      workers: Travis.Worker\n    },\n    plurals: {\n      repository: 'repositories',\n      build: 'builds',\n      branch: 'branches',\n      job: 'jobs',\n      worker: 'workers'\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=store/rest_adapter");minispade.register('tailing', "(function() {(function() {\n\n  this.Travis.Tailing = function() {\n    this.position = $(window).scrollTop();\n    $(window).scroll(this.onScroll.bind(this));\n    return this;\n  };\n\n  $.extend(Travis.Tailing.prototype, {\n    options: {\n      timeout: 200\n    },\n    run: function() {\n      this.autoScroll();\n      this.positionButton();\n      if (this.active()) {\n        return Ember.run.later(this.run.bind(this), this.options.timeout);\n      }\n    },\n    toggle: function(event) {\n      if (this.active()) {\n        return this.stop();\n      } else {\n        return this.start();\n      }\n    },\n    active: function() {\n      return $('#tail').hasClass('active');\n    },\n    start: function() {\n      $('#tail').addClass('active');\n      return this.run();\n    },\n    stop: function() {\n      return $('#tail').removeClass('active');\n    },\n    autoScroll: function() {\n      var log, logBottom, win, winBottom;\n      if (!this.active()) {\n        return;\n      }\n      win = $(window);\n      log = $('#log');\n      logBottom = log.offset().top + log.outerHeight() + 40;\n      winBottom = win.scrollTop() + win.height();\n      if (logBottom - winBottom > 0) {\n        return win.scrollTop(logBottom - win.height());\n      }\n    },\n    onScroll: function() {\n      var position;\n      this.positionButton();\n      position = $(window).scrollTop();\n      if (position < this.position) {\n        this.stop();\n      }\n      return this.position = position;\n    },\n    positionButton: function() {\n      var max, offset, tail;\n      tail = $('#tail');\n      if (tail.length === 0) {\n        return;\n      }\n      offset = $(window).scrollTop() - $('#log').offset().top;\n      max = $('#log').height() - $('#tail').height() + 5;\n      if (offset > max) {\n        offset = max;\n      }\n      if (offset > 0) {\n        return tail.css({\n          top: offset - 2\n        });\n      } else {\n        return tail.css({\n          top: 0\n        });\n      }\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=tailing");minispade.register('views', "(function() {(function() {\nminispade.require('ext/ember/namespace');\n\n  this.Travis.reopen({\n    View: Em.View.extend({\n      route: function(event) {\n        return Travis.app.routes.route(event);\n      },\n      popup: function(event) {\n        return $(\"#\" + event.target.name).remove().appendTo('body').toggle();\n      }\n    })\n  });\n\n  this.Travis.reopen({\n    HomeLayout: Travis.View.extend({\n      templateName: 'layouts/home'\n    }),\n    ProfileLayout: Travis.View.extend({\n      templateName: 'layouts/profile'\n    }),\n    StatsLayout: Travis.View.extend({\n      templateName: 'layouts/simple'\n    })\n  });\nminispade.require('views/build');\nminispade.require('views/job');\nminispade.require('views/repo');\nminispade.require('views/profile');\nminispade.require('views/sidebar');\nminispade.require('views/stats');\nminispade.require('views/top');\n\n}).call(this);\n\n})();\n//@ sourceURL=views");minispade.register('views/build', "(function() {(function() {\n\n  this.Travis.reopen({\n    BuildsView: Travis.View.extend({\n      templateName: 'builds/list',\n      buildsBinding: 'controller',\n      showMore: function() {\n        var id, number;\n        id = this.get('controller.repository.id');\n        number = this.get('controller.builds.lastObject.number');\n        return Travis.Build.olderThanNumber(id, number);\n      }\n    }),\n    BuildsItemView: Travis.View.extend({\n      repositoryBinding: 'controller.repository',\n      buildBinding: 'context',\n      commitBinding: 'build.commit',\n      color: (function() {\n        return Travis.Helpers.colorForResult(this.get('build.result'));\n      }).property('build.result'),\n      urlBuild: (function() {\n        return Travis.Urls.build(this.get('repository.slug'), this.get('build.id'));\n      }).property('repository.slug', 'build.id'),\n      urlGithubCommit: (function() {\n        return Travis.Urls.githubCommit(this.get('repository.slug'), this.get('commit.sha'));\n      }).property('repository.slug', 'commit.sha')\n    }),\n    BuildView: Travis.View.extend({\n      templateName: 'builds/show',\n      repositoryBinding: 'controller.repository',\n      buildBinding: 'controller.build',\n      commitBinding: 'build.commit',\n      color: (function() {\n        return Travis.Helpers.colorForResult(this.get('build.result'));\n      }).property('build.result'),\n      urlBuild: (function() {\n        return Travis.Urls.build(this.get('repository.slug'), this.get('build.id'));\n      }).property('repository.slug', 'build.id'),\n      urlGithubCommit: (function() {\n        return Travis.Urls.githubCommit(this.get('repository.slug'), this.get('commit.sha'));\n      }).property('repository.slug', 'commit.sha'),\n      urlAuthor: (function() {\n        return Travis.Urls.email(this.get('commit.authorEmail'));\n      }).property('commit.authorEmail'),\n      urlCommitter: (function() {\n        return Travis.Urls.email(this.get('commit.committerEmail'));\n      }).property('commit.committerEmail')\n    })\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/build");minispade.register('views/job', "(function() {(function() {\n\n  this.Travis.reopen({\n    JobsView: Travis.View.extend({\n      templateName: 'jobs/list',\n      buildBinding: 'controller.build'\n    }),\n    JobsItemView: Travis.View.extend({\n      tagName: 'tr',\n      classNameBindings: ['color'],\n      repositoryBinding: 'context.repository',\n      jobBinding: 'context',\n      color: (function() {\n        return Travis.Helpers.colorForResult(this.get('job.result'));\n      }).property('job.result'),\n      urlJob: (function() {\n        return Travis.Urls.job(this.get('repository.slug'), this.get('job.id'));\n      }).property('repository.slug', 'job.id')\n    }),\n    JobView: Travis.View.extend({\n      templateName: 'jobs/show',\n      repositoryBinding: 'controller.repository',\n      jobBinding: 'controller.job',\n      commitBinding: 'job.commit',\n      color: (function() {\n        return Travis.Helpers.colorForResult(this.get('job.result'));\n      }).property('job.result'),\n      urlJob: (function() {\n        return Travis.Urls.job(this.get('repository.slug'), this.get('job.id'));\n      }).property('repository.slug', 'job.id'),\n      urlGithubCommit: (function() {\n        return Travis.Urls.githubCommit(this.get('repository.slug'), this.get('commit.sha'));\n      }).property('repository.slug', 'commit.sha'),\n      urlAuthor: (function() {\n        return Travis.Urls.email(this.get('commit.authorEmail'));\n      }).property('commit.authorEmail'),\n      urlCommitter: (function() {\n        return Travis.Urls.email(this.get('commit.committerEmail'));\n      }).property('commit.committerEmail')\n    }),\n    LogView: Travis.View.extend({\n      templateName: 'jobs/log',\n      logBinding: 'job.log',\n      click: function(event) {\n        return $(event.target).closest('.fold').toggleClass('open');\n      },\n      toTop: function() {\n        return $(window).scrollTop(0);\n      },\n      jobBinding: 'context',\n      toggleTailing: function(event) {\n        Travis.app.tailing.toggle();\n        return event.preventDefault();\n      },\n      logSubscriber: (function() {\n        var job, state;\n        job = this.get('job');\n        state = this.get('job.state');\n        if (job && state !== 'finished') {\n          job.subscribe();\n        }\n        return null;\n      }).property('job', 'job.state')\n    })\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/job");minispade.register('views/left', "(function() {(function() {\n\n  this.Travis.reopen({\n    ReposView: Travis.View.extend({\n      templateName: 'repos/list',\n      tabBinding: 'controller.tab',\n      classRecent: (function() {\n        if (this.get('tab') === 'recent') {\n          return 'active';\n        }\n      }).property('tab'),\n      classOwned: (function() {\n        var classes;\n        classes = [];\n        if (this.get('tab') === 'owned') {\n          classes.push('active');\n        }\n        if (Travis.app.get('currentUser')) {\n          classes.push('display');\n        }\n        return classes.join(' ');\n      }).property('tab', 'Travis.currentUser'),\n      classSearch: (function() {\n        if (this.get('tab') === 'search') {\n          return 'active';\n        }\n      }).property('tab')\n    })\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/left");minispade.register('views/profile', "(function() {(function() {\n\n  this.Travis.reopen({\n    AccountsView: Travis.View.extend({\n      tabBinding: 'controller.tab',\n      templateName: 'profile/accounts',\n      classAccounts: (function() {\n        if (this.get('tab') === 'accounts') {\n          return 'active';\n        }\n      }).property('tab')\n    }),\n    AccountsListView: Em.CollectionView.extend({\n      elementId: 'accounts',\n      accountBinding: 'content',\n      tagName: 'ul',\n      emptyView: Ember.View.extend({\n        template: Ember.Handlebars.compile('<div class=\"loading\"><span>Loading</span></div>')\n      }),\n      itemViewClass: Travis.View.extend({\n        accountBinding: 'content',\n        typeBinding: 'content.type',\n        selectedBinding: 'account.selected',\n        classNames: ['account'],\n        classNameBindings: ['type', 'selected'],\n        name: (function() {\n          return this.get('content.name') || this.get('content.login');\n        }).property('content.login', 'content.name'),\n        urlAccount: (function() {\n          return Travis.Urls.account(this.get('account.login'));\n        }).property('account.login')\n      })\n    }),\n    ProfileView: Travis.View.extend({\n      templateName: 'profile/show'\n    }),\n    ProfileTabsView: Travis.View.extend({\n      templateName: 'profile/tabs',\n      tabBinding: 'controller.tab',\n      activate: function(event) {\n        return this.get('controller').activate(event.target.name);\n      },\n      classHooks: (function() {\n        if (this.get('tab') === 'hooks') {\n          return 'active';\n        }\n      }).property('tab'),\n      classUser: (function() {\n        if (this.get('tab') === 'user') {\n          return 'active';\n        }\n      }).property('tab'),\n      displayUser: (function() {\n        return this.get('controller.account.login') === this.get('controller.user.login');\n      }).property('controller.account.login', 'controller.user.login')\n    }),\n    HooksView: Travis.View.extend({\n      templateName: 'profile/tabs/hooks',\n      userBinding: 'controller.user',\n      urlGithubAdmin: (function() {\n        return Travis.Urls.githubAdmin(this.get('hook.slug'));\n      }).property('hook.slug')\n    }),\n    UserView: Travis.View.extend({\n      templateName: 'profile/tabs/user',\n      userBinding: 'controller.user',\n      gravatarUrl: (function() {\n        return \"http://www.gravatar.com/avatar/\" + (this.get('user.gravatarId')) + \"?s=48&d=mm\";\n      }).property('user.gravatarId'),\n      locales: (function() {\n        return [\n          {\n            key: 'en',\n            name: 'English'\n          }, {\n            key: 'ca',\n            name: 'Catalan'\n          }, {\n            key: 'cs',\n            name: 'Čeština'\n          }, {\n            key: 'es',\n            name: 'Español'\n          }, {\n            key: 'fr',\n            name: 'Français'\n          }, {\n            key: 'ja',\n            name: '日本語'\n          }, {\n            key: 'nl',\n            name: 'Nederlands'\n          }, {\n            key: 'nb',\n            name: 'Norsk Bokmål'\n          }, {\n            key: 'pl',\n            name: 'Polski'\n          }, {\n            key: {\n              'pt-BR': {\n                name: 'Português brasileiro'\n              }\n            }\n          }, {\n            key: 'ru',\n            name: 'Русский'\n          }\n        ];\n      }).property(),\n      saveLocale: function(event) {\n        return this.get('user').updateLocale($('#locale').val());\n      }\n    })\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/profile");minispade.register('views/repo', "(function() {(function() {\nminispade.require('views/repo/list');\nminispade.require('views/repo/show');\n\n}).call(this);\n\n})();\n//@ sourceURL=views/repo");minispade.register('views/repo/list', "(function() {(function() {\n\n  this.Travis.reopen({\n    RepositoriesView: Travis.View.extend({\n      templateName: 'repos/list',\n      toggleInfo: function(event) {\n        return $('#repositories').toggleClass('open');\n      }\n    }),\n    RepositoriesListView: Em.CollectionView.extend({\n      elementId: 'repositories',\n      tagName: 'ul',\n      emptyView: Ember.View.extend({\n        template: Ember.Handlebars.compile('<div class=\"loading\"><span>Loading</span></div>')\n      }),\n      itemViewClass: Travis.View.extend({\n        repositoryBinding: 'content',\n        classNames: ['repository'],\n        classNameBindings: ['color', 'selected'],\n        selectedBinding: 'repository.selected',\n        color: (function() {\n          return Travis.Helpers.colorForResult(this.get('repository.lastBuildResult'));\n        }).property('repository.lastBuildResult'),\n        urlRepository: (function() {\n          return Travis.Urls.repository(this.get('repository.slug'));\n        }).property('repository.slug'),\n        urlLastBuild: (function() {\n          return Travis.Urls.build(this.get('repository.slug'), this.get('repository.lastBuildId'));\n        }).property('repository.slug', 'repository.lastBuildId')\n      })\n    }),\n    ReposListTabsView: Travis.View.extend({\n      templateName: 'repos/list/tabs',\n      tabBinding: 'controller.tab',\n      activate: function(event) {\n        return this.get('controller').activate(event.target.name);\n      },\n      classRecent: (function() {\n        if (this.get('tab') === 'recent') {\n          return 'active';\n        }\n      }).property('tab'),\n      classOwned: (function() {\n        var classes;\n        classes = [];\n        if (this.get('tab') === 'owned') {\n          classes.push('active');\n        }\n        if (Travis.app.get('currentUser')) {\n          classes.push('display');\n        }\n        return classes.join(' ');\n      }).property('tab', 'Travis.app.currentUser'),\n      classSearch: (function() {\n        if (this.get('tab') === 'search') {\n          return 'active';\n        }\n      }).property('tab')\n    })\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/repo/list");minispade.register('views/repo/show', "(function() {(function() {\n\n  this.Travis.reopen({\n    RepositoryView: Travis.View.extend({\n      templateName: 'repos/show',\n      repositoryBinding: 'controller.repository',\n      \"class\": (function() {\n        if (!this.get('repository.isLoaded')) {\n          return 'loading';\n        }\n      }).property('repository.isLoaded'),\n      urlGithub: (function() {\n        return Travis.Urls.githubRepository(this.get('repository.slug'));\n      }).property('repository.slug'),\n      urlGithubWatchers: (function() {\n        return Travis.Urls.githubWatchers(this.get('repository.slug'));\n      }).property('repository.slug'),\n      urlGithubNetwork: (function() {\n        return Travis.Urls.githubNetwork(this.get('repository.slug'));\n      }).property('repository.slug')\n    }),\n    RepoShowTabsView: Travis.View.extend({\n      templateName: 'repos/show/tabs',\n      repositoryBinding: 'controller.repository',\n      buildBinding: 'controller.build',\n      jobBinding: 'controller.job',\n      tabBinding: 'controller.tab',\n      classCurrent: (function() {\n        if (this.get('tab') === 'current') {\n          return 'active';\n        }\n      }).property('tab'),\n      classBuilds: (function() {\n        if (this.get('tab') === 'builds') {\n          return 'active';\n        }\n      }).property('tab'),\n      classPullRequests: (function() {\n        if (this.get('tab') === 'pull_requests') {\n          return 'active';\n        }\n      }).property('tab'),\n      classBranches: (function() {\n        if (this.get('tab') === 'branches') {\n          return 'active';\n        }\n      }).property('tab'),\n      classBuild: (function() {\n        var classes, tab;\n        tab = this.get('tab');\n        classes = [];\n        if (tab === 'build') {\n          classes.push('active');\n        }\n        if (tab === 'build' || tab === 'job') {\n          classes.push('display');\n        }\n        return classes.join(' ');\n      }).property('tab'),\n      classJob: (function() {\n        if (this.get('tab') === 'job') {\n          return 'active display';\n        }\n      }).property('tab'),\n      urlRepository: (function() {\n        return Travis.Urls.repository(this.get('repository.slug'));\n      }).property('repository.slug'),\n      urlBuilds: (function() {\n        return Travis.Urls.builds(this.get('repository.slug'));\n      }).property('repository.slug'),\n      urlPullRequests: (function() {\n        return Travis.Urls.pullRequests(this.get('repository.slug'));\n      }).property('repository.slug'),\n      urlBranches: (function() {\n        return Travis.Urls.branches(this.get('repository.slug'));\n      }).property('repository.slug'),\n      urlBuild: (function() {\n        return Travis.Urls.build(this.get('repository.slug'), this.get('build.id'));\n      }).property('repository.slug', 'build.id'),\n      urlJob: (function() {\n        return Travis.Urls.job(this.get('repository.slug'), this.get('job.id'));\n      }).property('repository.slug', 'job.id')\n    }),\n    RepoShowToolsView: Travis.View.extend({\n      templateName: 'repos/show/tools',\n      repositoryBinding: 'controller.repository',\n      buildBinding: 'controller.build',\n      jobBinding: 'controller.job',\n      tabBinding: 'controller.tab',\n      toggle: function() {\n        this.set('active', !this.get('active'));\n        return $('#tools .pane').toggle();\n      },\n      branches: (function() {\n        if (this.get('active')) {\n          return this.get('repository.branches');\n        }\n      }).property('active', 'repository.branches'),\n      urlRepository: (function() {\n        return 'https://' + location.host + Travis.Urls.repository(this.get('repository.slug'));\n      }).property('repository.slug'),\n      urlStatusImage: (function() {\n        return Travis.Urls.statusImage(this.get('repository.slug'), this.get('branch.commit.branch'));\n      }).property('repository.slug', 'branch'),\n      markdownStatusImage: (function() {\n        return \"[![Build Status](\" + (this.get('urlStatusImage')) + \")](\" + (this.get('urlRepository')) + \")\";\n      }).property('urlStatusImage'),\n      textileStatusImage: (function() {\n        return \"!\" + (this.get('urlStatusImage')) + \"!:\" + (this.get('urlRepository'));\n      }).property('urlStatusImage'),\n      rdocStatusImage: (function() {\n        return \"{<img src=\\\"\" + (this.get('urlStatusImage')) + \"\\\" alt=\\\"Build Status\\\" />}[\" + (this.get('urlRepository')) + \"]\";\n      }).property('urlStatusImage')\n    })\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/repo/show");minispade.register('views/sidebar', "(function() {(function() {\n\n  this.Travis.reopen({\n    SidebarView: Travis.View.extend({\n      templateName: 'layouts/sidebar'\n    }),\n    WorkersView: Travis.View.extend({\n      toggleWorkers: function(event) {\n        var handle;\n        handle = $(event.target).toggleClass('open');\n        if (handle.hasClass('open')) {\n          return $('#workers li').addClass('open');\n        } else {\n          return $('#workers li').removeClass('open');\n        }\n      }\n    }),\n    WorkersListView: Travis.View.extend({\n      toggle: function(event) {\n        return $(event.target).closest('li').toggleClass('open');\n      }\n    }),\n    WorkersItemView: Travis.View.extend({\n      display: (function() {\n        var name, number, payload, repo, state;\n        name = (this.get('worker.name') || '').replace('travis-', '');\n        state = this.get('worker.state');\n        payload = this.get('worker.payload');\n        if (state === 'working' && payload !== void 0) {\n          repo = payload.repository.slug;\n          number = ' #' + payload.build.number;\n          return (\"<span class='name'>\" + name + \": \" + repo + \"</span> \" + number).htmlSafe();\n        } else {\n          return \"\" + name + \": \" + state;\n        }\n      }).property('worker.state')\n    }),\n    QueueItemView: Travis.View.extend({\n      urlJob: (function() {\n        return Travis.Urls.job(this.get('job.repository.slug'), this.get('job.id'));\n      }).property('job.repository.slug', 'job.id')\n    })\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/sidebar");minispade.register('views/stats', "(function() {(function() {\n\n  this.Travis.reopen({\n    StatsView: Travis.View.extend({\n      templateName: 'stats/show',\n      didInsertElement: function() {},\n      renderChart: function(config) {\n        var chart;\n        chart = new Highcharts.Chart(config);\n        return this.fetch(config.source, function(data) {\n          var stats;\n          stats = (function() {\n            var _i, _len, _ref, _results;\n            _ref = data.stats;\n            _results = [];\n            for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n              stats = _ref[_i];\n              _results.push(config.map(stats));\n            }\n            return _results;\n          })();\n          return chart.series[0].setData(stats);\n        });\n      },\n      fetch: function(url, callback) {\n        return $.ajax({\n          type: 'GET',\n          url: url,\n          accepts: {\n            json: 'application/vnd.travis-ci.2+json'\n          },\n          success: callback\n        });\n      },\n      CHARTS: {\n        repos: {\n          source: '/api/stats/repos',\n          total: 0,\n          map: function(data) {\n            return [Date.parse(data.date), this.total += parseInt(data.count)];\n          },\n          chart: {\n            renderTo: \"repos_stats\"\n          },\n          title: {\n            text: \"Total Projects/Repositories\"\n          },\n          xAxis: {\n            type: \"datetime\",\n            dateTimeLabelFormats: {\n              month: \"%e. %b\",\n              year: \"%b\"\n            }\n          },\n          yAxis: {\n            title: {\n              text: \"Count\"\n            },\n            min: 0\n          },\n          tooltip: {\n            formatter: function() {\n              return Highcharts.dateFormat(\"%e. %b\", this.x) + \": \" + this.y + \" repos\";\n            }\n          },\n          series: [\n            {\n              name: \"Repository Growth\",\n              data: []\n            }\n          ]\n        },\n        builds: {\n          source: '/api/stats/tests',\n          map: function(data) {\n            return [Date.parse(data.date), parseInt(data.count)];\n          },\n          chart: {\n            renderTo: \"tests_stats\",\n            type: \"column\"\n          },\n          title: {\n            text: \"Build Count\"\n          },\n          subtitle: {\n            text: \"last month\"\n          },\n          xAxis: {\n            type: \"datetime\",\n            dateTimeLabelFormats: {\n              month: \"%e. %b\",\n              year: \"%b\"\n            }\n          },\n          yAxis: {\n            title: {\n              text: \"Count\"\n            },\n            min: 0\n          },\n          tooltip: {\n            formatter: function() {\n              return Highcharts.dateFormat(\"%e. %b\", this.x) + \": \" + this.y + \" builds\";\n            }\n          },\n          series: [\n            {\n              name: \"Total Builds\",\n              data: []\n            }\n          ]\n        }\n      }\n    })\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/stats");minispade.register('views/top', "(function() {(function() {\n\n  this.Travis.reopen({\n    TopView: Travis.View.extend({\n      templateName: 'layouts/top',\n      tabBinding: 'controller.tab',\n      userBinding: 'controller.user',\n      gravatarUrl: (function() {\n        return \"https://www.gravatar.com/avatar/\" + (this.get('user.gravatarId')) + \"?s=24&d=mm\";\n      }).property('user.gravatarId'),\n      classHome: (function() {\n        if (this.get('tab') === 'home') {\n          return 'active';\n        }\n      }).property('tab'),\n      classStats: (function() {\n        if (this.get('tab') === 'stats') {\n          return 'active';\n        }\n      }).property('tab'),\n      classProfile: (function() {\n        var classes;\n        classes = ['profile'];\n        if (this.get('tab') === 'profile') {\n          classes.push('active');\n        }\n        classes.push(Travis.app.get('authState'));\n        return classes.join(' ');\n      }).property('tab', 'Travis.app.authState'),\n      showProfile: function() {\n        return $('#top .profile ul').show();\n      },\n      hideProfile: function() {\n        return $('#top .profile ul').hide();\n      }\n    })\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/top");minispade.register('data/sponsors', "(function() {(function() {\n\n  this.Travis.SPONSORS = [\n    {\n      type: 'platinum',\n      url: \"http://www.wooga.com\",\n      image: \"wooga-205x130.png\"\n    }, {\n      type: 'platinum',\n      url: \"http://bendyworks.com\",\n      image: \"bendyworks-205x130.png\"\n    }, {\n      type: 'platinum',\n      url: \"http://cloudcontrol.com\",\n      image: \"cloudcontrol-205x130.png\"\n    }, {\n      type: 'platinum',\n      url: \"http://xing.de\",\n      image: \"xing-205x130.png\"\n    }, {\n      type: 'gold',\n      url: \"http://heroku.com\",\n      image: \"heroku-205x60.png\"\n    }, {\n      type: 'gold',\n      url: \"http://soundcloud.com\",\n      image: \"soundcloud-205x60.png\"\n    }, {\n      type: 'gold',\n      url: \"http://nedap.com\",\n      image: \"nedap-205x60.png\"\n    }, {\n      type: 'gold',\n      url: \"http://mongohq.com\",\n      image: \"mongohq-205x60.png\"\n    }, {\n      type: 'gold',\n      url: \"http://zweitag.de\",\n      image: \"zweitag-205x60.png\"\n    }, {\n      type: 'gold',\n      url: \"http://kanbanery.com\",\n      image: \"kanbanery-205x60.png\"\n    }, {\n      type: 'gold',\n      url: \"http://ticketevolution.com\",\n      image: \"ticketevolution-205x60.jpg\"\n    }, {\n      type: 'gold',\n      url: \"http://plan.io/travis\",\n      image: \"planio-205x60.png\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://cobot.me\\\">Cobot</a><span>: The one tool to run your coworking space</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://jumpstartlab.com\\\">JumpstartLab</a><span>: We build developers</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://evilmartians.com\\\">Evil Martians</a><span>: Agile Ruby on Rails development</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://zendesk.com\\\">Zendesk</a><span>: Love your helpdesk</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://stripe.com\\\">Stripe</a><span>: Payments for developers</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://basho.com\\\">Basho</a><span>: We make Riak!</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://thinkrelevance.com\\\">Relevance</a><span>: We deliver software solutions</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://mindmatters.de\\\">Mindmatters</a><span>: Software für Menschen</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://amenhq.com\\\">Amen</a><span>: The best and worst of everything</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://site5.com\\\">Site5</a><span>: Premium Web Hosting Solutions</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://www.crowdint.com\\\">Crowd Interactive</a><span>: Leading Rails consultancy in Mexico</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://www.atomicobject.com/detroit\\\">Atomic Object</a><span>: Work with really smart people</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://codeminer.com.br\\\">Codeminer</a><span>: smart services for your startup</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://cloudant.com\\\">Cloudant</a><span>: grow into your data layer, not out of it</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://gidsy.com\\\">Gidsy</a><span>: Explore, organize &amp; book unique things to do!</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://5apps.com\\\">5apps</a><span>: Package &amp; deploy HTML5 apps automatically</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://meltmedia.com\\\">Meltmedia</a><span>: We are Interactive Superheroes</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://www.fngtps.com\\\">Fingertips</a><span> offers design and development services</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://www.engineyard.com\\\">Engine Yard</a><span>: Build epic apps, let us handle the rest</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://malwarebytes.org\\\">Malwarebytes</a><span>: Defeat Malware once and for all.</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://readmill.com\\\">Readmill</a><span>: The best reading app on the iPad.</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://www.mdsol.com\\\">Medidata</a><span>: clinical tech improving quality of life</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://coderwall.com/teams/4f27194e973bf000040005f0\\\">ESM</a><span>: Japan's best agile Ruby/Rails consultancy</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://twitter.com\\\">Twitter</a><span>: instantly connects people everywhere</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://agileanimal.com\\\">AGiLE ANiMAL</a><span>: we <3 Travis CI.</span>\"\n    }, {\n      type: 'silver',\n      link: \"<a href=\\\"http://tupalo.com\\\">Tupalo</a><span>: Discover, review &amp; share local businesses.</span>\"\n    }\n  ];\n\n}).call(this);\n\n})();\n//@ sourceURL=data/sponsors");minispade.register('emoij', "(function() {(function() {\n\n  this.EmojiDictionary = ['-1', '0', '1', '109', '2', '3', '4', '5', '6', '7', '8', '8ball', '9', 'a', 'ab', 'airplane', 'alien', 'ambulance', 'angel', 'anger', 'angry', 'apple', 'aquarius', 'aries', 'arrow_backward', 'arrow_down', 'arrow_forward', 'arrow_left', 'arrow_lower_left', 'arrow_lower_right', 'arrow_right', 'arrow_up', 'arrow_upper_left', 'arrow_upper_right', 'art', 'astonished', 'atm', 'b', 'baby', 'baby_chick', 'baby_symbol', 'balloon', 'bamboo', 'bank', 'barber', 'baseball', 'basketball', 'bath', 'bear', 'beer', 'beers', 'beginner', 'bell', 'bento', 'bike', 'bikini', 'bird', 'birthday', 'black_square', 'blue_car', 'blue_heart', 'blush', 'boar', 'boat', 'bomb', 'book', 'boot', 'bouquet', 'bow', 'bowtie', 'boy', 'bread', 'briefcase', 'broken_heart', 'bug', 'bulb', 'bullettrain_front', 'bullettrain_side', 'bus', 'busstop', 'cactus', 'cake', 'calling', 'camel', 'camera', 'cancer', 'capricorn', 'car', 'cat', 'cd', 'chart', 'checkered_flag', 'cherry_blossom', 'chicken', 'christmas_tree', 'church', 'cinema', 'city_sunrise', 'city_sunset', 'clap', 'clapper', 'clock1', 'clock10', 'clock11', 'clock12', 'clock2', 'clock3', 'clock4', 'clock5', 'clock6', 'clock7', 'clock8', 'clock9', 'closed_umbrella', 'cloud', 'clubs', 'cn', 'cocktail', 'coffee', 'cold_sweat', 'computer', 'confounded', 'congratulations', 'construction', 'construction_worker', 'convenience_store', 'cool', 'cop', 'copyright', 'couple', 'couple_with_heart', 'couplekiss', 'cow', 'crossed_flags', 'crown', 'cry', 'cupid', 'currency_exchange', 'curry', 'cyclone', 'dancer', 'dancers', 'dango', 'dart', 'dash', 'de', 'department_store', 'diamonds', 'disappointed', 'dog', 'dolls', 'dolphin', 'dress', 'dvd', 'ear', 'ear_of_rice', 'egg', 'eggplant', 'egplant', 'eight_pointed_black_star', 'eight_spoked_asterisk', 'elephant', 'email', 'es', 'european_castle', 'exclamation', 'eyes', 'factory', 'fallen_leaf', 'fast_forward', 'fax', 'fearful', 'feelsgood', 'feet', 'ferris_wheel', 'finnadie', 'fire', 'fire_engine', 'fireworks', 'fish', 'fist', 'flags', 'flushed', 'football', 'fork_and_knife', 'fountain', 'four_leaf_clover', 'fr', 'fries', 'frog', 'fuelpump', 'gb', 'gem', 'gemini', 'ghost', 'gift', 'gift_heart', 'girl', 'goberserk', 'godmode', 'golf', 'green_heart', 'grey_exclamation', 'grey_question', 'grin', 'guardsman', 'guitar', 'gun', 'haircut', 'hamburger', 'hammer', 'hamster', 'hand', 'handbag', 'hankey', 'hash', 'headphones', 'heart', 'heart_decoration', 'heart_eyes', 'heartbeat', 'heartpulse', 'hearts', 'hibiscus', 'high_heel', 'horse', 'hospital', 'hotel', 'hotsprings', 'house', 'hurtrealbad', 'icecream', 'id', 'ideograph_advantage', 'imp', 'information_desk_person', 'iphone', 'it', 'jack_o_lantern', 'japanese_castle', 'joy', 'jp', 'key', 'kimono', 'kiss', 'kissing_face', 'kissing_heart', 'koala', 'koko', 'kr', 'leaves', 'leo', 'libra', 'lips', 'lipstick', 'lock', 'loop', 'loudspeaker', 'love_hotel', 'mag', 'mahjong', 'mailbox', 'man', 'man_with_gua_pi_mao', 'man_with_turban', 'maple_leaf', 'mask', 'massage', 'mega', 'memo', 'mens', 'metal', 'metro', 'microphone', 'minidisc', 'mobile_phone_off', 'moneybag', 'monkey', 'monkey_face', 'moon', 'mortar_board', 'mount_fuji', 'mouse', 'movie_camera', 'muscle', 'musical_note', 'nail_care', 'necktie', 'new', 'no_good', 'no_smoking', 'nose', 'notes', 'o', 'o2', 'ocean', 'octocat', 'octopus', 'oden', 'office', 'ok', 'ok_hand', 'ok_woman', 'older_man', 'older_woman', 'open_hands', 'ophiuchus', 'palm_tree', 'parking', 'part_alternation_mark', 'pencil', 'penguin', 'pensive', 'persevere', 'person_with_blond_hair', 'phone', 'pig', 'pill', 'pisces', 'plus1', 'point_down', 'point_left', 'point_right', 'point_up', 'point_up_2', 'police_car', 'poop', 'post_office', 'postbox', 'pray', 'princess', 'punch', 'purple_heart', 'question', 'rabbit', 'racehorse', 'radio', 'rage', 'rage1', 'rage2', 'rage3', 'rage4', 'rainbow', 'raised_hands', 'ramen', 'red_car', 'red_circle', 'registered', 'relaxed', 'relieved', 'restroom', 'rewind', 'ribbon', 'rice', 'rice_ball', 'rice_cracker', 'rice_scene', 'ring', 'rocket', 'roller_coaster', 'rose', 'ru', 'runner', 'sa', 'sagittarius', 'sailboat', 'sake', 'sandal', 'santa', 'satellite', 'satisfied', 'saxophone', 'school', 'school_satchel', 'scissors', 'scorpius', 'scream', 'seat', 'secret', 'shaved_ice', 'sheep', 'shell', 'ship', 'shipit', 'shirt', 'shit', 'shoe', 'signal_strength', 'six_pointed_star', 'ski', 'skull', 'sleepy', 'slot_machine', 'smile', 'smiley', 'smirk', 'smoking', 'snake', 'snowman', 'sob', 'soccer', 'space_invader', 'spades', 'spaghetti', 'sparkler', 'sparkles', 'speaker', 'speedboat', 'squirrel', 'star', 'star2', 'stars', 'station', 'statue_of_liberty', 'stew', 'strawberry', 'sunflower', 'sunny', 'sunrise', 'sunrise_over_mountains', 'surfer', 'sushi', 'suspect', 'sweat', 'sweat_drops', 'swimmer', 'syringe', 'tada', 'tangerine', 'taurus', 'taxi', 'tea', 'telephone', 'tennis', 'tent', 'thumbsdown', 'thumbsup', 'ticket', 'tiger', 'tm', 'toilet', 'tokyo_tower', 'tomato', 'tongue', 'top', 'tophat', 'traffic_light', 'train', 'trident', 'trophy', 'tropical_fish', 'truck', 'trumpet', 'tshirt', 'tulip', 'tv', 'u5272', 'u55b6', 'u6307', 'u6708', 'u6709', 'u6e80', 'u7121', 'u7533', 'u7a7a', 'umbrella', 'unamused', 'underage', 'unlock', 'up', 'us', 'v', 'vhs', 'vibration_mode', 'virgo', 'vs', 'walking', 'warning', 'watermelon', 'wave', 'wc', 'wedding', 'whale', 'wheelchair', 'white_square', 'wind_chime', 'wink', 'wink2', 'wolf', 'woman', 'womans_hat', 'womens', 'x', 'yellow_heart', 'zap', 'zzz'];\n\n}).call(this);\n\n})();\n//@ sourceURL=emoij");minispade.register('ext/jquery', "(function() {(function() {\n\n  $.fn.extend({\n    outerHtml: function() {\n      return $(this).wrap('<div></div>').parent().html();\n    },\n    outerElement: function() {\n      return $($(this).outerHtml()).empty();\n    },\n    flash: function() {\n      return Utils.flash(this);\n    },\n    unflash: function() {\n      return Utils.unflash(this);\n    },\n    filterLog: function() {\n      this.deansi();\n      return this.foldLog();\n    },\n    deansi: function() {\n      return this.html(Utils.deansi(this.html()));\n    },\n    foldLog: function() {\n      return this.html(Utils.foldLog(this.html()));\n    },\n    unfoldLog: function() {\n      return this.html(Utils.unfoldLog(this.html()));\n    },\n    updateTimes: function() {\n      return Utils.updateTimes(this);\n    },\n    activateTab: function(tab) {\n      return Utils.activateTab(this, tab);\n    },\n    timeInWords: function() {\n      return $(this).each(function() {\n        return $(this).text(Utils.timeInWords(parseInt($(this).attr('title'))));\n      });\n    },\n    updateGithubStats: function(repository) {\n      return Utils.updateGithubStats(repository, $(this));\n    }\n  });\n\n  $.extend({\n    isEmpty: function(obj) {\n      if ($.isArray(obj)) {\n        return !obj.length;\n      } else if ($.isObject(obj)) {\n        return !$.keys(obj).length;\n      } else {\n        return !obj;\n      }\n    },\n    isObject: function(obj) {\n      return Object.prototype.toString.call(obj) === '[object Object]';\n    },\n    keys: function(obj) {\n      var keys;\n      keys = [];\n      $.each(obj, function(key) {\n        return keys.push(key);\n      });\n      return keys;\n    },\n    values: function(obj) {\n      var values;\n      values = [];\n      $.each(obj, function(key, value) {\n        return values.push(value);\n      });\n      return values;\n    },\n    underscore: function(string) {\n      return string[0].toLowerCase() + string.substring(1).replace(/([A-Z])?/g, function(match, chr) {\n        if (chr) {\n          return \"_\" + (chr.toUpperCase());\n        } else {\n          return '';\n        }\n      });\n    },\n    camelize: function(string, uppercase) {\n      string = uppercase === false ? $.underscore(string) : $.capitalize(string);\n      return string.replace(/_(.)?/g, function(match, chr) {\n        if (chr) {\n          return chr.toUpperCase();\n        } else {\n          return '';\n        }\n      });\n    },\n    capitalize: function(string) {\n      return string[0].toUpperCase() + string.substring(1);\n    },\n    compact: function(object) {\n      return $.grep(object, function(value) {\n        return !!value;\n      });\n    },\n    all: function(array, callback) {\n      var args, i;\n      args = Array.prototype.slice.apply(arguments);\n      callback = args.pop();\n      array = args.pop() || this;\n      i = 0;\n      while (i < array.length) {\n        if (callback(array[i])) {\n          return false;\n        }\n        i++;\n      }\n      return true;\n    },\n    detect: function(array, callback) {\n      var args, i;\n      args = Array.prototype.slice.apply(arguments);\n      callback = args.pop();\n      array = args.pop() || this;\n      i = 0;\n      while (i < array.length) {\n        if (callback(array[i])) {\n          return array[i];\n        }\n        i++;\n      }\n    },\n    select: function(array, callback) {\n      var args, i, result;\n      args = Array.prototype.slice.apply(arguments);\n      callback = args.pop();\n      array = args.pop() || this;\n      result = [];\n      i = 0;\n      while (i < array.length) {\n        if (callback(array[i])) {\n          result.push(array[i]);\n        }\n        i++;\n      }\n      return result;\n    },\n    slice: function(object, key) {\n      var keys, result;\n      keys = Array.prototype.slice.apply(arguments);\n      object = (typeof keys[0] === 'object' ? keys.shift() : this);\n      result = {};\n      for (key in object) {\n        if (keys.indexOf(key) > -1) {\n          result[key] = object[key];\n        }\n      }\n      return result;\n    },\n    only: function(object) {\n      var key, keys, result;\n      keys = Array.prototype.slice.apply(arguments);\n      object = (typeof keys[0] === 'object' ? keys.shift() : this);\n      result = {};\n      for (key in object) {\n        if (keys.indexOf(key) !== -1) {\n          result[key] = object[key];\n        }\n      }\n      return result;\n    },\n    except: function(object) {\n      var key, keys, result;\n      keys = Array.prototype.slice.apply(arguments);\n      object = (typeof keys[0] === 'object' ? keys.shift() : this);\n      result = {};\n      for (key in object) {\n        if (keys.indexOf(key) === -1) {\n          result[key] = object[key];\n        }\n      }\n      return result;\n    },\n    intersect: function(array, other) {\n      return array.filter(function(element) {\n        return other.indexOf(element) !== -1;\n      });\n    },\n    map: function(elems, callback, arg) {\n      var i, isArray, key, length, ret, value;\n      value = void 0;\n      key = void 0;\n      ret = [];\n      i = 0;\n      length = elems.length;\n      isArray = elems instanceof jQuery || length !== void 0 && typeof length === 'number' && (length > 0 && elems[0] && elems[length - 1]) || length === 0 || jQuery.isArray(elems);\n      if (isArray) {\n        while (i < length) {\n          value = callback(elems[i], i, arg);\n          if (value != null) {\n            ret[ret.length] = value;\n          }\n          i++;\n        }\n      } else {\n        for (key in elems) {\n          value = callback(elems[key], key, arg);\n          if (value != null) {\n            ret[ret.length] = value;\n          }\n        }\n      }\n      return ret.concat.apply([], ret);\n    },\n    shuffle: function(array) {\n      var current, tmp, top;\n      array = array.slice();\n      top = array.length;\n      while (top && --top) {\n        current = Math.floor(Math.random() * (top + 1));\n        tmp = array[current];\n        array[current] = array[top];\n        array[top] = tmp;\n      }\n      return array;\n    },\n    truncate: function(string, length) {\n      if (string.length > length) {\n        return string.trim().substring(0, length) + '...';\n      } else {\n        return string;\n      }\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=ext/jquery");minispade.register('hax0rs', "(function() {(function() {\n\n\n\n}).call(this);\n\n})();\n//@ sourceURL=hax0rs");minispade.register('mocks', "(function() {(function() {\n  var artifact, artifacts, branches, build, builds, commits, data, hooks, id, job, jobs, repositories, repository, responseTime, workers, _i, _j, _k, _l, _len, _len1, _len2, _len3, _len4, _m;\nminispade.require('ext/jquery');\n\n  responseTime = 0;\n\n  repositories = [\n    {\n      id: 1,\n      owner: 'travis-ci',\n      name: 'travis-core',\n      slug: 'travis-ci/travis-core',\n      build_ids: [1, 2],\n      last_build_id: 1,\n      last_build_number: 1,\n      last_build_result: 0,\n      last_build_duration: 30,\n      last_build_started_at: '2012-07-02T00:00:00Z',\n      last_build_finished_at: '2012-07-02T00:00:30Z',\n      description: 'Description of travis-core'\n    }, {\n      id: 2,\n      owner: 'travis-ci',\n      name: 'travis-assets',\n      slug: 'travis-ci/travis-assets',\n      build_ids: [3],\n      last_build_id: 3,\n      last_build_number: 3,\n      last_build_result: 1,\n      last_build_duration: 30,\n      last_build_started_at: '2012-07-02T00:01:00Z',\n      last_build_finished_at: '2012-07-01T00:01:30Z',\n      description: 'Description of travis-assets'\n    }, {\n      id: 3,\n      owner: 'travis-ci',\n      name: 'travis-hub',\n      slug: 'travis-ci/travis-hub',\n      build_ids: [4],\n      last_build_id: 4,\n      last_build_number: 4,\n      last_build_result: void 0,\n      last_build_duration: void 0,\n      last_build_started_at: '2012-07-02T00:02:00Z',\n      last_build_finished_at: void 0,\n      description: 'Description of travis-hub'\n    }\n  ];\n\n  builds = [\n    {\n      id: 1,\n      repository_id: '1',\n      commit_id: 1,\n      job_ids: [1, 2, 3],\n      number: 1,\n      pull_request: false,\n      config: {\n        rvm: ['rbx', '1.9.3', 'jruby']\n      },\n      duration: 30,\n      started_at: '2012-07-02T00:00:00Z',\n      finished_at: '2012-07-02T00:00:30Z',\n      result: 0\n    }, {\n      id: 2,\n      repository_id: '1',\n      commit_id: 2,\n      job_ids: [4],\n      number: 2,\n      pull_request: false,\n      config: {\n        rvm: ['rbx']\n      }\n    }, {\n      id: 3,\n      repository_id: '2',\n      commit_id: 3,\n      job_ids: [5],\n      number: 3,\n      pull_request: false,\n      config: {\n        rvm: ['rbx']\n      },\n      duration: 30,\n      started_at: '2012-07-02T00:01:00Z',\n      finished_at: '2012-07-01T00:01:30Z',\n      result: 1\n    }, {\n      id: 4,\n      repository_id: '3',\n      commit_id: 4,\n      job_ids: [6],\n      number: 4,\n      pull_request: false,\n      config: {\n        rvm: ['rbx']\n      },\n      started_at: '2012-07-02T00:02:00Z'\n    }\n  ];\n\n  commits = [\n    {\n      id: 1,\n      sha: '1234567',\n      branch: 'master',\n      message: 'commit message 1',\n      author_name: 'author name',\n      author_email: 'author@email.com',\n      committer_name: 'committer name',\n      committer_email: 'committer@email.com',\n      compare_url: 'http://github.com/compare/0123456..1234567'\n    }, {\n      id: 2,\n      sha: '2345678',\n      branch: 'feature',\n      message: 'commit message 2',\n      author_name: 'author name',\n      author_email: 'author@email.com',\n      committer_name: 'committer name',\n      committer_email: 'committer@email.com',\n      compare_url: 'http://github.com/compare/0123456..2345678'\n    }, {\n      id: 3,\n      sha: '3456789',\n      branch: 'master',\n      message: 'commit message 3',\n      author_name: 'author name',\n      author_email: 'author@email.com',\n      committer_name: 'committer name',\n      committer_email: 'committer@email.com',\n      compare_url: 'http://github.com/compare/0123456..3456789'\n    }, {\n      id: 4,\n      sha: '4567890',\n      branch: 'master',\n      message: 'commit message 4',\n      author_name: 'author name',\n      author_email: 'author@email.com',\n      committer_name: 'committer name',\n      committer_email: 'committer@email.com',\n      compare_url: 'http://github.com/compare/0123456..4567890'\n    }\n  ];\n\n  jobs = [\n    {\n      id: 1,\n      repository_id: 1,\n      build_id: 1,\n      commit_id: 1,\n      log_id: 1,\n      number: '1.1',\n      config: {\n        rvm: 'rbx'\n      },\n      duration: 30,\n      started_at: '2012-07-02T00:00:00Z',\n      finished_at: '2012-07-02T00:00:30Z',\n      result: 0\n    }, {\n      id: 2,\n      repository_id: 1,\n      build_id: 1,\n      commit_id: 1,\n      log_id: 2,\n      number: '1.2',\n      config: {\n        rvm: '1.9.3'\n      },\n      duration: 40,\n      started_at: '2012-07-02T00:00:00Z',\n      finished_at: '2012-07-02T00:00:40Z',\n      result: 1\n    }, {\n      id: 3,\n      repository_id: 1,\n      build_id: 1,\n      commit_id: 1,\n      log_id: 3,\n      number: '1.3',\n      config: {\n        rvm: 'jruby'\n      },\n      allow_failure: true\n    }, {\n      id: 4,\n      repository_id: 1,\n      build_id: 2,\n      commit_id: 2,\n      log_id: 4,\n      number: '2.1',\n      config: {\n        rvm: 'rbx'\n      }\n    }, {\n      id: 5,\n      repository_id: 2,\n      build_id: 3,\n      commit_id: 3,\n      log_id: 5,\n      number: '3.1',\n      config: {\n        rvm: 'rbx'\n      },\n      duration: 30,\n      started_at: '2012-07-02T00:01:00Z',\n      finished_at: '2012-07-02T00:01:30Z',\n      result: 1\n    }, {\n      id: 6,\n      repository_id: 3,\n      build_id: 4,\n      commit_id: 4,\n      log_id: 6,\n      number: '4.1',\n      config: {\n        rvm: 'rbx'\n      },\n      started_at: '2012-07-02T00:02:00Z'\n    }, {\n      id: 7,\n      repository_id: 1,\n      build_id: 5,\n      commit_id: 5,\n      log_id: 7,\n      number: '5.1',\n      config: {\n        rvm: 'rbx'\n      },\n      state: 'created',\n      queue: 'common'\n    }, {\n      id: 8,\n      repository_id: 1,\n      build_id: 5,\n      commit_id: 5,\n      log_id: 8,\n      number: '5.2',\n      config: {\n        rvm: 'rbx'\n      },\n      state: 'created',\n      queue: 'common'\n    }\n  ];\n\n  artifacts = [\n    {\n      id: 1,\n      body: 'log 1'\n    }, {\n      id: 2,\n      body: 'log 2'\n    }, {\n      id: 3,\n      body: 'log 3'\n    }, {\n      id: 4,\n      body: 'log 4'\n    }, {\n      id: 5,\n      body: 'log 5'\n    }, {\n      id: 6,\n      body: 'log 6'\n    }, {\n      id: 7,\n      body: 'log 7'\n    }, {\n      id: 8,\n      body: 'log 8'\n    }\n  ];\n\n  branches = [\n    {\n      branches: [builds[0], builds[1]],\n      commits: [commits[0], commits[1]]\n    }, {\n      branches: [builds[2]],\n      commits: [commits[2]]\n    }, {\n      branches: [builds[3]],\n      commits: [commits[3]]\n    }\n  ];\n\n  workers = [\n    {\n      id: 1,\n      name: 'ruby-1',\n      host: 'worker.travis-ci.org',\n      state: 'ready'\n    }, {\n      id: 2,\n      name: 'ruby-2',\n      host: 'worker.travis-ci.org',\n      state: 'ready'\n    }\n  ];\n\n  hooks = [\n    {\n      slug: 'travis-ci/travis-core',\n      description: 'description of travis-core',\n      active: true,\n      \"private\": false\n    }, {\n      slug: 'travis-ci/travis-assets',\n      description: 'description of travis-assets',\n      active: false,\n      \"private\": false\n    }, {\n      slug: 'svenfuchs/minimal',\n      description: 'description of minimal',\n      active: true,\n      \"private\": false\n    }\n  ];\n\n  $.mockjax({\n    url: '/repositories',\n    responseTime: responseTime,\n    response: function(settings) {\n      var search, slug;\n      if (!settings.data) {\n        return this.responseText = {\n          repositories: repositories\n        };\n      } else if (slug = settings.data.slug) {\n        return this.responseText = {\n          repositories: [\n            $.detect(repositories, function(repository) {\n              return repository.slug === slug;\n            })\n          ]\n        };\n      } else if (search = settings.data.search) {\n        return this.responseText = {\n          repositories: $.select(repositories, function(repository) {\n            return repository.slug.indexOf(search) > -1;\n          }).toArray()\n        };\n      } else {\n        return raise(\"don't know this ditty\");\n      }\n    }\n  });\n\n  for (_i = 0, _len = repositories.length; _i < _len; _i++) {\n    repository = repositories[_i];\n    $.mockjax({\n      url: '/' + repository.slug,\n      responseTime: responseTime,\n      responseText: {\n        repository: repository\n      }\n    });\n    $.mockjax({\n      url: '/repositories',\n      data: {\n        slug: repository.slug\n      },\n      responseTime: responseTime,\n      responseText: {\n        repositories: [repository]\n      }\n    });\n    $.mockjax({\n      url: '/builds',\n      data: {\n        ids: repository.build_ids\n      },\n      responseTime: responseTime,\n      responseText: {\n        builds: $.select(builds, function(build) {\n          return repository.build_ids.indexOf(build.id) !== -1;\n        })\n      }\n    });\n    $.mockjax({\n      url: '/builds',\n      data: {\n        repository_id: repository.id,\n        event_type: 'push',\n        orderBy: 'number DESC'\n      },\n      responseTime: responseTime,\n      responseText: {\n        builds: (function() {\n          var _j, _len1, _ref, _results;\n          _ref = repository.build_ids;\n          _results = [];\n          for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {\n            id = _ref[_j];\n            _results.push(builds[id - 1]);\n          }\n          return _results;\n        })(),\n        commits: (function() {\n          var _j, _len1, _ref, _results;\n          _ref = repository.build_ids;\n          _results = [];\n          for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {\n            id = _ref[_j];\n            _results.push(commits[builds[id - 1].commit_id - 1]);\n          }\n          return _results;\n        })()\n      }\n    });\n  }\n\n  for (_j = 0, _len1 = builds.length; _j < _len1; _j++) {\n    build = builds[_j];\n    $.mockjax({\n      url: '/builds/' + build.id,\n      responseTime: responseTime,\n      responseText: {\n        build: build,\n        commit: commits[build.commit_id - 1],\n        jobs: (function() {\n          var _k, _len2, _ref, _results;\n          _ref = build.job_ids;\n          _results = [];\n          for (_k = 0, _len2 = _ref.length; _k < _len2; _k++) {\n            id = _ref[_k];\n            _results.push(jobs[id - 1]);\n          }\n          return _results;\n        })()\n      }\n    });\n  }\n\n  for (_k = 0, _len2 = jobs.length; _k < _len2; _k++) {\n    job = jobs[_k];\n    $.mockjax({\n      url: '/jobs/' + job.id,\n      responseTime: responseTime,\n      responseText: {\n        job: job,\n        commit: commits[job.commit_id - 1]\n      }\n    });\n  }\n\n  $.mockjax({\n    url: '/jobs',\n    responseTime: responseTime,\n    responseText: {\n      jobs: $.select(jobs, function(job) {\n        return job.state === 'created';\n      })\n    }\n  });\n\n  for (_l = 0, _len3 = branches.length; _l < _len3; _l++) {\n    data = branches[_l];\n    $.mockjax({\n      url: '/branches',\n      data: {\n        repository_id: data.branches[0].repository_id\n      },\n      responseTime: responseTime,\n      responseText: data\n    });\n  }\n\n  for (_m = 0, _len4 = artifacts.length; _m < _len4; _m++) {\n    artifact = artifacts[_m];\n    $.mockjax({\n      url: '/artifacts/' + artifact.id,\n      responseTime: responseTime,\n      responseText: {\n        artifact: artifact\n      }\n    });\n  }\n\n  $.mockjax({\n    url: '/workers',\n    responseTime: responseTime,\n    responseText: {\n      workers: workers\n    }\n  });\n\n  $.mockjax({\n    url: '/profile/hooks',\n    responseTime: responseTime,\n    responseText: {\n      hooks: hooks\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=mocks");minispade.register('travis/ajax', "(function() {(function() {\n\n  jQuery.support.cors = true;\n\n  this.Travis.Ajax = Ember.Mixin.create({\n    DEFAULT_OPTIONS: {\n      accepts: {\n        json: 'application/vnd.travis-ci.2+json'\n      }\n    },\n    post: function(url, data, callback) {\n      return this.ajax(url, 'post', {\n        data: data,\n        success: callback\n      });\n    },\n    ajax: function(url, method, options) {\n      var access_token, endpoint, _base, _ref;\n      endpoint = Travis.config.api_endpoint || '';\n      options = options || {};\n      if (access_token = (_ref = Travis.app) != null ? _ref.get('accessToken') : void 0) {\n        options.headers || (options.headers = {});\n        (_base = options.headers)['Authorization'] || (_base['Authorization'] = \"token \" + access_token);\n      }\n      options.url = \"\" + endpoint + url;\n      options.type = method;\n      options.dataType = 'json';\n      options.contentType = 'application/json; charset=utf-8';\n      options.context = this;\n      if (options.data && method !== 'GET' && method !== 'get') {\n        options.data = JSON.stringify(options.data);\n      }\n      return $.ajax($.extend(options, this.DEFAULT_OPTIONS));\n    }\n  });\n\n  this.Travis.Ajax.instance = Em.Object.create(this.Travis.Ajax);\n\n  $.extend(this.Travis, {\n    get: function(url, callback) {\n      return this.ajax(url, 'get', {\n        success: callback\n      });\n    },\n    post: function(url, data, callback) {\n      return this.Ajax.instance.post(url, data, callback);\n    },\n    ajax: function(url, method, options) {\n      return this.Ajax.instance.ajax(url, method, options);\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=travis/ajax");minispade.register('travis/log', "(function() {(function() {\n\n  this.Travis.Log = {\n    FOLDS: {\n      schema: /(<p.*?\\/a>\\$ (?:bundle exec )?rake( db:create)? db:schema:load[\\s\\S]*?<p.*?\\/a>-- assume_migrated_upto_version[\\s\\S]*?<\\/p>\\n<p.*?\\/a>.*<\\/p>)/g,\n      migrate: /(<p.*?\\/a>\\$ (?:bundle exec )?rake( db:create)? db:migrate[\\s\\S]*== +\\w+: migrated \\(.*\\) =+)/g,\n      bundle: /(<p.*?\\/a>\\$ bundle install.*<\\/p>\\n(<p.*?\\/a>(Updating|Using|Installing|Fetching|remote:|Receiving|Resolving).*?<\\/p>\\n|<p.*?\\/a><\\/p>\\n)*)/g,\n      exec: /(<p.*?\\/a>[\\/\\w]*.rvm\\/rubies\\/[\\S]*?\\/(ruby|rbx|jruby) .*?<\\/p>)/g\n    },\n    filter: function(log) {\n      log = this.escape(log);\n      log = this.deansi(log);\n      log = log.replace(/\\r/g, '');\n      log = this.number(log);\n      log = this.fold(log);\n      log = log.replace(/\\n/g, '');\n      return log;\n    },\n    stripPaths: function(log) {\n      return log.replace(/\\/home\\/vagrant\\/builds(\\/[^\\/\\n]+){2}\\//g, '');\n    },\n    escape: function(log) {\n      return Handlebars.Utils.escapeExpression(log);\n    },\n    escapeRuby: function(log) {\n      return log.replace(/#<(\\w+.*?)>/, '#&lt;$1&gt;');\n    },\n    number: function(log) {\n      var result;\n      result = '';\n      $.each(log.trim().split('\\n'), function(ix, line) {\n        var number, path;\n        number = ix + 1;\n        path = Travis.Log.location().substr(1).replace(/\\/L\\d+/, '') + '/L' + number;\n        return result += '<p><a href=\\'#%@\\' id=\\'%@\\' name=\\'L%@\\'>%@</a>%@</p>\\n'.fmt(path, path, number, number, line);\n      });\n      return result.trim();\n    },\n    deansi: function(log) {\n      var ansi, text;\n      log = log.replace(/\\r\\r/g, '\\r').replace(/\\033\\[K\\r/g, '\\r').replace(/^.*\\r(?!$)/g, '').replace(/\u001b\\[2K/g, '').replace(/\\033\\(B/g, '');\n      ansi = ansiparse(log);\n      text = '';\n      ansi.forEach(function(part) {\n        var classes;\n        classes = [];\n        part.foreground && classes.push(part.foreground);\n        part.background && classes.push('bg-' + part.background);\n        part.bold && classes.push('bold');\n        part.italic && classes.push('italic');\n        return text += (classes.length ? '<span class=\\'' + classes.join(' ') + '\\'>' + part.text + '</span>' : part.text);\n      });\n      return text.replace(/\\033/g, '');\n    },\n    fold: function(log) {\n      log = this.unfold(log);\n      $.each(Travis.Log.FOLDS, function(name, pattern) {\n        return log = log.replace(pattern, function() {\n          return '<div class=\\'fold ' + name + '\\'>' + arguments[1].trim() + '</div>';\n        });\n      });\n      return log;\n    },\n    unfold: function(log) {\n      return log.replace(/<div class='fold[^']*'>([\\s\\S]*?)<\\/div>/g, '$1\\n');\n    },\n    location: function() {\n      return window.location.hash;\n    }\n  };\n\n}).call(this);\n\n})();\n//@ sourceURL=travis/log");minispade.register('travis/model', "(function() {(function() {\n\n  this.Travis.Model = DS.Model.extend({\n    primaryKey: 'id',\n    id: DS.attr('number'),\n    refresh: function() {\n      var id;\n      id = this.get('id');\n      if (id) {\n        return Travis.app.store.adapter.find(Travis.app.store, this.constructor, id);\n      }\n    },\n    update: function(attrs) {\n      var _this = this;\n      $.each(attrs, function(key, value) {\n        if (key !== 'id') {\n          return _this.set(key, value);\n        }\n      });\n      return this;\n    }\n  });\n\n  this.Travis.Model.reopenClass({\n    find: function() {\n      if (arguments.length === 0) {\n        return Travis.app.store.findAll(this);\n      } else {\n        return this._super.apply(this, arguments);\n      }\n    },\n    filter: function(callback) {\n      return Travis.app.store.filter(this, callback);\n    },\n    load: function(attrs) {\n      return Travis.app.store.load(this, attrs);\n    },\n    buildURL: function(suffix) {\n      var base, url;\n      base = this.url || this.pluralName();\n      Ember.assert('Base URL (' + base + ') must not start with slash', !base || base.toString().charAt(0) !== '/');\n      Ember.assert('URL suffix (' + suffix + ') must not start with slash', !suffix || suffix.toString().charAt(0) !== '/');\n      url = [base];\n      if (suffix !== void 0) {\n        url.push(suffix);\n      }\n      return url.join('/');\n    },\n    singularName: function() {\n      var name, parts;\n      parts = this.toString().split('.');\n      name = parts[parts.length - 1];\n      return name.replace(/([A-Z])/g, '_$1').toLowerCase().slice(1);\n    },\n    pluralName: function() {\n      return Travis.app.store.adapter.pluralize(this.singularName());\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=travis/model");minispade.register('travis/ticker', "(function() {(function() {\n\n  this.Travis.Ticker = Ember.Object.extend({\n    init: function() {\n      if (this.get('interval') !== -1) {\n        return this.schedule();\n      }\n    },\n    tick: function() {\n      var context, target, targets, _i, _len;\n      context = this.get('context');\n      targets = this.get('targets') || [this.get('target')];\n      for (_i = 0, _len = targets.length; _i < _len; _i++) {\n        target = targets[_i];\n        if (context) {\n          target = context.get(target);\n        }\n        if (target) {\n          target.tick();\n        }\n      }\n      return this.schedule();\n    },\n    schedule: function() {\n      var _this = this;\n      return Ember.run.later((function() {\n        return _this.tick();\n      }), this.get('interval') || Travis.app.TICK_INTERVAL);\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=travis/ticker");minispade.register('travis', "(function() {(function() {\nminispade.require('ext/jquery');\nminispade.require('ext/ember/namespace');\n\n  this.Travis = Em.Namespace.create({\n    config: {\n      api_endpoint: $('meta[rel=\"travis.api_endpoint\"]').attr('href')\n    },\n    CONFIG_KEYS: ['rvm', 'gemfile', 'env', 'jdk', 'otp_release', 'php', 'node_js', 'perl', 'python', 'scala'],\n    ROUTES: {\n      'profile': ['profile', 'hooks'],\n      'profile/:login': ['profile', 'hooks'],\n      'profile/:login/profile': ['profile', 'user'],\n      'stats': ['stats', 'show'],\n      ':owner/:name/jobs/:id/:line': ['home', 'job'],\n      ':owner/:name/jobs/:id': ['home', 'job'],\n      ':owner/:name/builds/:id': ['home', 'build'],\n      ':owner/:name/builds': ['home', 'builds'],\n      ':owner/:name/pull_requests': ['home', 'pullRequests'],\n      ':owner/:name/branches': ['home', 'branches'],\n      ':owner/:name': ['home', 'current'],\n      '': ['home', 'index'],\n      '#': ['home', 'index']\n    },\n    QUEUES: [\n      {\n        name: 'common',\n        display: 'Common'\n      }, {\n        name: 'php',\n        display: 'PHP, Perl and Python'\n      }, {\n        name: 'node_js',\n        display: 'Node.js'\n      }, {\n        name: 'jvmotp',\n        display: 'JVM and Erlang'\n      }, {\n        name: 'rails',\n        display: 'Rails'\n      }, {\n        name: 'spree',\n        display: 'Spree'\n      }\n    ],\n    INTERVALS: {\n      sponsors: -1,\n      times: -1,\n      updateTimes: 1000\n    },\n    loadConfig: function(callback) {\n      return Travis.get('/config', function(data) {\n        $.extend(Travis.config, data.config);\n        return callback();\n      });\n    },\n    run: function(attrs) {\n      console.log(\"Connecting to \" + Travis.config.api_endpoint);\n      return this.app = Travis.App.create(attrs || {});\n    }\n  });\n\n}).call(this);\n\n})();\n//@ sourceURL=travis");minispade.register('config/i18n', "(function() {console.log('FOO')\nvar I18n = I18n || {};\nI18n.translations = {\"ca\":{\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"fr\":\"Français\",\"ja\":\"日本語\",\"nb\":\"Norsk Bokmål\",\"nl\":\"Nederlands\",\"pl\":\"Polski\",\"pt-BR\":\"português brasileiro\",\"ru\":\"Русский\"}},\"en\":{\"errors\":{\"messages\":{\"not_found\":\"not found\",\"already_confirmed\":\"was already confirmed\",\"not_locked\":\"was not locked\"}},\"devise\":{\"failure\":{\"unauthenticated\":\"You need to sign in or sign up before continuing.\",\"unconfirmed\":\"You have to confirm your account before continuing.\",\"locked\":\"Your account is locked.\",\"invalid\":\"Invalid email or password.\",\"invalid_token\":\"Invalid authentication token.\",\"timeout\":\"Your session expired, please sign in again to continue.\",\"inactive\":\"Your account was not activated yet.\"},\"sessions\":{\"signed_in\":\"Signed in successfully.\",\"signed_out\":\"Signed out successfully.\"},\"passwords\":{\"send_instructions\":\"You will receive an email with instructions about how to reset your password in a few minutes.\",\"updated\":\"Your password was changed successfully. You are now signed in.\"},\"confirmations\":{\"send_instructions\":\"You will receive an email with instructions about how to confirm your account in a few minutes.\",\"confirmed\":\"Your account was successfully confirmed. You are now signed in.\"},\"registrations\":{\"signed_up\":\"You have signed up successfully. If enabled, a confirmation was sent to your e-mail.\",\"updated\":\"You updated your account successfully.\",\"destroyed\":\"Bye! Your account was successfully cancelled. We hope to see you again soon.\"},\"unlocks\":{\"send_instructions\":\"You will receive an email with instructions about how to unlock your account in a few minutes.\",\"unlocked\":\"Your account was successfully unlocked. You are now signed in.\"},\"mailer\":{\"confirmation_instructions\":{\"subject\":\"Confirmation instructions\"},\"reset_password_instructions\":{\"subject\":\"Reset password instructions\"},\"unlock_instructions\":{\"subject\":\"Unlock Instructions\"}}},\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} hour\",\"other\":\"%{count} hours\"},\"minutes_exact\":{\"one\":\"%{count} minute\",\"other\":\"%{count} minutes\"},\"seconds_exact\":{\"one\":\"%{count} second\",\"other\":\"%{count} seconds\"}}},\"workers\":\"Workers\",\"queue\":\"Queue\",\"no_job\":\"There are no jobs\",\"repositories\":{\"branch\":\"Branch\",\"image_url\":\"Image URL\",\"markdown\":\"Markdown\",\"textile\":\"Textile\",\"rdoc\":\"RDOC\",\"commit\":\"Commit\",\"message\":\"Message\",\"started_at\":\"Started\",\"duration\":\"Duration\",\"finished_at\":\"Finished\",\"tabs\":{\"current\":\"Current\",\"build_history\":\"Build History\",\"branches\":\"Branch Summary\",\"pull_requests\":\"Pull Requests\",\"build\":\"Build\",\"job\":\"Job\"}},\"build\":{\"job\":\"Job\",\"duration\":\"Duration\",\"finished_at\":\"Finished\"},\"jobs\":{\"messages\":{\"sponsored_by\":\"This test suite was run on a worker box sponsored by\"},\"build_matrix\":\"Build Matrix\",\"allowed_failures\":\"Allowed Failures\",\"author\":\"Author\",\"config\":\"Config\",\"compare\":\"Compare\",\"committer\":\"Committer\",\"branch\":\"Branch\",\"commit\":\"Commit\",\"message\":\"Message\",\"started_at\":\"Started\",\"duration\":\"Duration\",\"finished_at\":\"Finished\"},\"builds\":{\"name\":\"Build\",\"messages\":{\"sponsored_by\":\"This test suite was run on a worker box sponsored by\"},\"build_matrix\":\"Build Matrix\",\"allowed_failures\":\"Allowed Failures\",\"author\":\"Author\",\"config\":\"Config\",\"compare\":\"Compare\",\"committer\":\"Committer\",\"branch\":\"Branch\",\"commit\":\"Commit\",\"message\":\"Message\",\"started_at\":\"Started\",\"duration\":\"Duration\",\"finished_at\":\"Finished\",\"show_more\":\"Show more\"},\"layouts\":{\"top\":{\"home\":\"Home\",\"blog\":\"Blog\",\"docs\":\"Docs\",\"stats\":\"Stats\",\"github_login\":\"Sign in with Github\",\"profile\":\"Profile\",\"sign_out\":\"Sign Out\",\"admin\":\"Admin\"},\"application\":{\"fork_me\":\"Fork me on Github\",\"recent\":\"Recent\",\"search\":\"Search\",\"sponsers\":\"Sponsors\",\"sponsors_link\":\"See all of our amazing sponsors &rarr;\",\"my_repositories\":\"My Repositories\"},\"about\":{\"alpha\":\"This stuff is alpha.\",\"messages\":{\"alpha\":\"Please do <strong>not</strong> consider this a stable service. We're still far from that! More info <a href='https://github.com/travis-ci'>here.</a>\"},\"join\":\"Join us and help!\",\"mailing_list\":\"Mailing List\",\"repository\":\"Repository\",\"twitter\":\"Twitter\"},\"mobile\":{\"author\":\"Author\",\"build\":\"Build\",\"build_matrix\":\"Build Matrix\",\"commit\":\"Commit\",\"committer\":\"Committer\",\"compare\":\"Compare\",\"config\":\"Config\",\"duration\":\"Duration\",\"finished_at\":\"Finished at\",\"job\":\"Job\",\"log\":\"Log\"}},\"profiles\":{\"show\":{\"email\":\"Email\",\"github\":\"Github\",\"message\":{\"your_repos\":\"  Flick the switches below to turn on the Travis service hook for your projects, then push to GitHub.<br />\\n  To test against multiple rubies, see\",\"config\":\"how to configure custom build options\"},\"messages\":{\"notice\":\"To get started, please read our <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">Getting Started guide</a>.\\n  <small>It will only take a couple of minutes.</small>\"},\"token\":\"Token\",\"your_repos\":\"Your Repositories\",\"update\":\"Update\",\"update_locale\":\"Update\",\"your_locale\":\"Your Locale\"}},\"statistics\":{\"index\":{\"count\":\"Count\",\"repo_growth\":\"Repository Growth\",\"total_projects\":\"Total Projects/Repositories\",\"build_count\":\"Build Count\",\"last_month\":\"last month\",\"total_builds\":\"Total Builds\"}},\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"fr\":\"Français\",\"ja\":\"日本語\",\"nb\":\"Norsk Bokmål\",\"pl\":\"Polski\",\"ru\":\"Русский\",\"nl\":\"Nederlands\",\"pt-BR\":\"português brasileiro\"}},\"es\":{\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} hora\",\"other\":\"%{count} horas\"},\"minutes_exact\":{\"one\":\"%{count} minuto\",\"other\":\"%{count} minutos\"},\"seconds_exact\":{\"one\":\"%{count} segundo\",\"other\":\"%{count} segundos\"}}},\"workers\":\"Procesos\",\"queue\":\"Cola\",\"no_job\":\"No hay trabajos\",\"repositories\":{\"branch\":\"Rama\",\"image_url\":\"Imagen URL\",\"markdown\":\"Markdown\",\"textile\":\"Textile\",\"rdoc\":\"RDOC\",\"commit\":\"Commit\",\"message\":\"Mensaje\",\"started_at\":\"Iniciado\",\"duration\":\"Duración\",\"finished_at\":\"Finalizado\",\"tabs\":{\"current\":\"Actual\",\"build_history\":\"Histórico\",\"branches\":\"Ramas\",\"build\":\"Builds\",\"job\":\"Trabajo\"}},\"build\":{\"job\":\"Trabajo\",\"duration\":\"Duración\",\"finished_at\":\"Finalizado\"},\"jobs\":{\"messages\":{\"sponsored_by\":\"Esta serie de tests han sido ejecutados en una caja de Proceso patrocinada por\"},\"build_matrix\":\"Matriz de Builds\",\"allowed_failures\":\"Fallos Permitidos\",\"author\":\"Autor\",\"config\":\"Configuración\",\"compare\":\"Comparar\",\"committer\":\"Committer\",\"branch\":\"Rama\",\"commit\":\"Commit\",\"message\":\"Mensaje\",\"started_at\":\"Iniciado\",\"duration\":\"Duración\",\"finished_at\":\"Finalizado\",\"sponsored_by\":\"Patrocinado por\"},\"builds\":{\"name\":\"Build\",\"messages\":{\"sponsored_by\":\"Esta serie de tests han sido ejecutados en una caja de Proceso patrocinada por\"},\"build_matrix\":\"Matriz de Builds\",\"allowed_failures\":\"Fallos Permitidos\",\"author\":\"Autor\",\"config\":\"Configuración\",\"compare\":\"Comparar\",\"committer\":\"Committer\",\"branch\":\"Rama\",\"commit\":\"Commit\",\"message\":\"Mensaje\",\"started_at\":\"Iniciado\",\"duration\":\"Duración\",\"finished_at\":\"Finalizado\"},\"layouts\":{\"top\":{\"home\":\"Inicio\",\"blog\":\"Blog\",\"docs\":\"Documentación\",\"stats\":\"Estadísticas\",\"github_login\":\"Iniciar sesión con Github\",\"profile\":\"Perfil\",\"sign_out\":\"Desconectar\",\"admin\":\"Admin\"},\"application\":{\"fork_me\":\"Hazme un Fork en Github\",\"recent\":\"Reciente\",\"search\":\"Buscar\",\"sponsers\":\"Patrocinadores\",\"sponsors_link\":\"Ver todos nuestros patrocinadores &rarr;\",\"my_repositories\":\"Mis Repositorios\"},\"about\":{\"alpha\":\"Esto es alpha.\",\"messages\":{\"alpha\":\"Por favor <strong>no</strong> considereis esto un servicio estable. Estamos estamos aún lejos de ello! Más información <a href='https://github.com/travis-ci'>aquí.</a>\"},\"join\":\"Únetenos y ayudanos!\",\"mailing_list\":\"Lista de Correos\",\"repository\":\"Repositorio\",\"twitter\":\"Twitter\"}},\"profiles\":{\"show\":{\"email\":\"Correo electrónico\",\"github\":\"Github\",\"message\":{\"your_repos\":\"  Activa los interruptores para inicial el  Travis service hook para tus proyectos, y haz un Push en GitHub.<br />\\n  Para probar varias versiones de ruby, mira\",\"config\":\"como configurar tus propias opciones para el Build\"},\"messages\":{\"notice\":\"Para comenzar, por favor lee nuestra <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">Guía de Inicio </a>.\\n  <small>Solo tomará unos pocos minutos.</small>\"},\"token\":\"Token\",\"your_repos\":\"Tus repositorios\",\"update\":\"Actualizar\",\"update_locale\":\"Actualizar\",\"your_locale\":\"Tu Idioma\"}},\"statistics\":{\"index\":{\"count\":\"Número\",\"repo_growth\":\"Crecimiento de Repositorios\",\"total_projects\":\"Total de Proyectos/Repositorios\",\"build_count\":\"Número de Builds\",\"last_month\":\"mes anterior\",\"total_builds\":\"Total de Builds\"}},\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"fr\":\"Français\",\"ja\":\"日本語\",\"nb\":\"Norsk Bokmål\",\"pl\":\"Polski\",\"ru\":\"Русский\",\"nl\":\"Nederlands\",\"pt-BR\":\"português brasileiro\"}},\"fr\":{\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} heure\",\"other\":\"%{count} heures\"},\"minutes_exact\":{\"one\":\"%{count} minute\",\"other\":\"%{count} minutes\"},\"seconds_exact\":{\"one\":\"%{count} seconde\",\"other\":\"%{count} secondes\"}}},\"workers\":\"Processus\",\"queue\":\"File\",\"no_job\":\"Pas de tâches\",\"repositories\":{\"branch\":\"Branche\",\"image_url\":\"Image\",\"markdown\":\"Markdown\",\"textile\":\"Textile\",\"rdoc\":\"RDOC\",\"commit\":\"Commit\",\"message\":\"Message\",\"started_at\":\"Commencé\",\"duration\":\"Durée\",\"finished_at\":\"Terminé\",\"tabs\":{\"current\":\"Actuel\",\"build_history\":\"Historique des tâches\",\"branches\":\"Résumé des branches\",\"build\":\"Construction\",\"job\":\"Tâche\"}},\"build\":{\"job\":\"Tâche\",\"duration\":\"Durée\",\"finished_at\":\"Terminé\"},\"jobs\":{\"messages\":{\"sponsored_by\":\"Cette série de tests a été exécutée sur une machine sponsorisée par\"},\"build_matrix\":\"Matrice des versions\",\"allowed_failures\":\"Échecs autorisés\",\"author\":\"Auteur\",\"config\":\"Config\",\"compare\":\"Comparer\",\"committer\":\"Committeur\",\"branch\":\"Branche\",\"commit\":\"Commit\",\"message\":\"Message\",\"started_at\":\"Commencé\",\"duration\":\"Durée\",\"finished_at\":\"Terminé\",\"sponsored_by\":\"Cette série de tests a été exécutée sur une machine sponsorisée par\"},\"builds\":{\"name\":\"Version\",\"messages\":{\"sponsored_by\":\"Cette série de tests a été exécutée sur une machine sponsorisée par\"},\"build_matrix\":\"Matrice des versions\",\"allowed_failures\":\"Échecs autorisés\",\"author\":\"Auteur\",\"config\":\"Config\",\"compare\":\"Comparer\",\"committer\":\"Committeur\",\"branch\":\"Branche\",\"commit\":\"Commit\",\"message\":\"Message\",\"started_at\":\"Commencé\",\"duration\":\"Durée\",\"finished_at\":\"Terminé\"},\"layouts\":{\"top\":{\"home\":\"Accueil\",\"blog\":\"Blog\",\"docs\":\"Documentation\",\"stats\":\"Statistiques\",\"github_login\":\"Connection Github\",\"profile\":\"Profil\",\"sign_out\":\"Déconnection\",\"admin\":\"Admin\"},\"application\":{\"fork_me\":\"Faites un Fork sur Github\",\"recent\":\"Récent\",\"search\":\"Chercher\",\"sponsers\":\"Sponsors\",\"sponsors_link\":\"Voir tous nos extraordinaire sponsors &rarr;\",\"my_repositories\":\"Mes dépôts\"},\"about\":{\"alpha\":\"Ceci est en alpha.\",\"messages\":{\"alpha\":\"S'il vous plaît ne considérez <strong>pas</strong> ce service comme étant stable. Nous sommes loin de ça! Plus d'infos <a href='https://github.com/travis-ci'>ici.</a>\"},\"join\":\"Joignez-vous à nous et aidez-nous!\",\"mailing_list\":\"Liste de distribution\",\"repository\":\"Dépôt\",\"twitter\":\"Twitter\"},\"mobile\":{\"author\":\"Auteur\",\"build\":\"Version\",\"build_matrix\":\"Matrice des versions\",\"commit\":\"Commit\",\"committer\":\"Committeur\",\"compare\":\"Comparer\",\"config\":\"Config\",\"duration\":\"Durée\",\"finished_at\":\"Terminé à\",\"job\":\"Tâche\",\"log\":\"Journal\"}},\"profiles\":{\"show\":{\"github\":\"Github\",\"message\":{\"your_repos\":\"Utilisez les boutons ci-dessous pour activer Travis sur vos projets puis déployez sur GitHub.<br />\\nPour tester sur plus de versions de ruby, voir\",\"config\":\"comment configurer des options de version personnalisées\"},\"messages\":{\"notice\":\"Pour commencer, veuillez lire notre <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">guide de démarrage</a>.\\n <small>Cela ne vous prendra que quelques minutes.</small>\"},\"token\":\"Jeton\",\"your_repos\":\"Vos dépôts\",\"email\":\"Courriel\",\"update\":\"Modifier\",\"update_locale\":\"Modifier\",\"your_locale\":\"Votre langue\"}},\"statistics\":{\"index\":{\"count\":\"Décompte\",\"repo_growth\":\"Croissance de dépôt\",\"total_projects\":\"Total des projets/dépôts\",\"build_count\":\"Décompte des versions\",\"last_month\":\"mois dernier\",\"total_builds\":\"Total des versions\"}},\"admin\":{\"actions\":{\"create\":\"créer\",\"created\":\"créé\",\"delete\":\"supprimer\",\"deleted\":\"supprimé\",\"update\":\"mise à jour\",\"updated\":\"mis à jour\"},\"credentials\":{\"log_out\":\"Déconnection\"},\"delete\":{\"confirmation\":\"Oui, je suis sure\",\"flash_confirmation\":\"%{name} a été détruit avec succès\"},\"flash\":{\"error\":\"%{name} n'a pas pu être %{action}\",\"noaction\":\"Aucune action n'a été entreprise\",\"successful\":\"%{name} a réussi à %{action}\"},\"history\":{\"name\":\"Historique\",\"no_activity\":\"Aucune activité\",\"page_name\":\"Historique pour %{name}\"},\"list\":{\"add_new\":\"Ajouter un nouveau\",\"delete_action\":\"Supprimer\",\"delete_selected\":\"Supprimer la sélection\",\"edit_action\":\"Modifier\",\"search\":\"Rechercher\",\"select\":\"Sélectionner le %{name} à modifier\",\"select_action\":\"Sélectionner\",\"show_all\":\"Montrer tout\"},\"new\":{\"basic_info\":\"Information de base\",\"cancel\":\"Annuler\",\"chosen\":\"%{name} choisi\",\"chose_all\":\"Choisir tout\",\"clear_all\":\"Déselectionner tout\",\"many_chars\":\"caractères ou moins\",\"one_char\":\"caractère.\",\"optional\":\"Optionnel\",\"required\":\"Requis\",\"save\":\"Sauvegarder\",\"save_and_add_another\":\"Sauvegarder et en ajouter un autre\",\"save_and_edit\":\"Sauvegarder et modifier\",\"select_choice\":\"Faites vos choix et cliquez\"},\"dashboard\":{\"add_new\":\"Ajouter un nouveau\",\"last_used\":\"Dernière utilisation\",\"model_name\":\"Nom du modèle\",\"modify\":\"Modification\",\"name\":\"Tableau de bord\",\"pagename\":\"Administration du site\",\"records\":\"Enregistrements\",\"show\":\"Voir\",\"ago\":\"plus tôt\"}},\"home\":{\"name\":\"accueil\"},\"repository\":{\"duration\":\"Durée\"},\"devise\":{\"confirmations\":{\"confirmed\":\"Votre compte a été crée avec succès. Vous être maintenant connecté.\",\"send_instructions\":\"Vous allez recevoir un courriel avec les instructions de confirmation de votre compte dans quelques minutes.\"},\"failure\":{\"inactive\":\"Votre compte n'a pas encore été activé.\",\"invalid\":\"Adresse courriel ou mot de passe invalide.\",\"invalid_token\":\"Jeton d'authentification invalide.\",\"locked\":\"Votre compte est bloqué.\",\"timeout\":\"Votre session est expirée, veuillez vous reconnecter pour continuer.\",\"unauthenticated\":\"Vous devez vous connecter ou vous enregistrer afin de continuer\",\"unconfirmed\":\"Vous devez confirmer votre compte avant de continuer.\"},\"mailer\":{\"confirmation_instructions\":{\"subject\":\"Instructions de confirmations\"},\"reset_password_instructions\":{\"subject\":\"Instruction de remise à zéro du mot de passe\"},\"unlock_instructions\":{\"subject\":\"Instruction de débloquage\"}},\"passwords\":{\"send_instructions\":\"Vous recevrez un courriel avec les instructions de remise à zéro du mot de passe dans quelques minutes.\",\"updated\":\"Votre mot de passe a été changé avec succès. Vous êtes maintenant connecté.\"},\"registrations\":{\"destroyed\":\"Au revoir! Votre compte a été annulé avec succès. Nous espérons vous revoir bientôt.\",\"signed_up\":\"Vous êtes enregistré avec succès. Si activé, une confirmation vous a été envoyé par courriel.\",\"updated\":\"Votre compte a été mis a jour avec succès\"},\"sessions\":{\"signed_in\":\"Connecté avec succès\",\"signed_out\":\"Déconnecté avec succès\"},\"unlocks\":{\"send_instructions\":\"Vous recevrez un courriel contenant les instructions pour débloquer votre compte dans quelques minutes.\",\"unlocked\":\"Votre compte a été débloqué avec succès.\"}},\"errors\":{\"messages\":{\"already_confirmed\":\"étais déja confirmé\",\"not_found\":\"n'a pas été trouvé\",\"not_locked\":\"n'étais pas bloqué\"}},\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"ja\":\"日本語\",\"ru\":\"Русский\",\"fr\":\"Français\",\"nb\":\"Norsk Bokmål\",\"pl\":\"Polski\",\"nl\":\"Nederlands\",\"pt-BR\":\"português brasileiro\"}},\"ja\":{\"workers\":\"ワーカー\",\"queue\":\"キュー\",\"no_job\":\"ジョブはありません\",\"repositories\":{\"branch\":\"ブランチ\",\"image_url\":\"画像URL\",\"markdown\":\".md\",\"textile\":\".textile\",\"rdoc\":\".rdoc\",\"commit\":\"コミット\",\"message\":\"メッセージ\",\"started_at\":\"開始時刻\",\"duration\":\"処理時間\",\"finished_at\":\"終了時刻\",\"tabs\":{\"current\":\"最新\",\"build_history\":\"ビルド履歴\",\"branches\":\"ブランチまとめ\",\"build\":\"ビルド\",\"job\":\"ジョブ\"}},\"build\":{\"job\":\"ジョブ\",\"duration\":\"処理時間\",\"finished_at\":\"終了時刻\"},\"jobs\":{\"messages\":{\"sponsored_by\":\"このテストは以下のスポンサーの協力で行いました。\"},\"build_matrix\":\"ビルドマトリクス\",\"allowed_failures\":\"失敗許容範囲内\",\"author\":\"制作者\",\"config\":\"設定\",\"compare\":\"比較\",\"committer\":\"コミット者\",\"branch\":\"ブランチ\",\"commit\":\"コミット\",\"message\":\"メッセージ\",\"started_at\":\"開始時刻\",\"duration\":\"処理時間\",\"finished_at\":\"終了時刻\"},\"builds\":{\"name\":\"ビルド\",\"messages\":{\"sponsored_by\":\"このテストは以下のスポンサーの協力で行いました。\"},\"build_matrix\":\"失敗許容範囲外\",\"allowed_failures\":\"失敗許容範囲内\",\"author\":\"制作者\",\"config\":\"設定\",\"compare\":\"比較\",\"committer\":\"コミット者\",\"branch\":\"ブランチ\",\"commit\":\"コミット\",\"message\":\"メッセージ\",\"started_at\":\"開始時刻\",\"duration\":\"処理時間\",\"finished_at\":\"終了時刻\"},\"layouts\":{\"about\":{\"alpha\":\"まだアルファですよ!\",\"join\":\"参加してみよう!\",\"mailing_list\":\"メールリスト\",\"messages\":{\"alpha\":\"Travis-ciは安定したサービスまで後一歩!詳しくは<a href='https://github.com/travis-ci'>こちら</a>\"},\"repository\":\"リポジトリ\",\"twitter\":\"ツイッター\"},\"application\":{\"fork_me\":\"Githubでフォークしよう\",\"my_repositories\":\"マイリポジトリ\",\"recent\":\"最近\",\"search\":\"検索\",\"sponsers\":\"スポンサー\",\"sponsors_link\":\"スポンサーをもっと見る &rarr;\"},\"top\":{\"blog\":\"ブログ\",\"docs\":\"Travisとは?\",\"github_login\":\"Githubでログイン\",\"home\":\"ホーム\",\"profile\":\"プロフィール\",\"sign_out\":\"ログアウト\",\"stats\":\"統計\",\"admin\":\"管理\"},\"mobile\":{\"author\":\"制作者\",\"build\":\"ビルド\",\"build_matrix\":\"ビルドマトリクス\",\"commit\":\"コミット\",\"committer\":\"コミット者\",\"compare\":\"比較\",\"config\":\"設定\",\"duration\":\"処理時間\",\"finished_at\":\"終了時刻\",\"job\":\"ジョブ\",\"log\":\"ログ\"}},\"profiles\":{\"show\":{\"github\":\"Github\",\"email\":\"メール\",\"message\":{\"config\":\"詳細設定\",\"your_repos\":\"以下のスイッチを設定し、Travis-ciを有効にします。Githubへプッシュしたらビルドは自動的に開始します。複数バーションや細かい設定はこちらへ:\"},\"messages\":{\"notice\":\"まずは<a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">Travisのはじめ方</a>を参照してください。\"},\"token\":\"トークン\",\"your_repos\":\"リポジトリ\",\"update\":\"更新\",\"update_locale\":\"更新\",\"your_locale\":\"言語設定\"}},\"statistics\":{\"index\":{\"build_count\":\"ビルド数\",\"count\":\"数\",\"last_month\":\"先月\",\"repo_growth\":\"リポジトリ\",\"total_builds\":\"合計ビルド数\",\"total_projects\":\"合計リポジトリ\"}},\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"fr\":\"Français\",\"ja\":\"日本語\",\"nb\":\"Norsk Bokmål\",\"pl\":\"Polski\",\"ru\":\"Русский\",\"nl\":\"Nederlands\",\"pt-BR\":\"português brasileiro\"}},\"nb\":{\"admin\":{\"actions\":{\"create\":\"opprett\",\"created\":\"opprettet\",\"delete\":\"slett\",\"deleted\":\"slettet\",\"update\":\"oppdater\",\"updated\":\"oppdatert\"},\"credentials\":{\"log_out\":\"Logg ut\"},\"dashboard\":{\"add_new\":\"Legg til ny\",\"ago\":\"siden\",\"last_used\":\"Sist brukt\",\"model_name\":\"Modell\",\"modify\":\"Rediger\",\"name\":\"Dashbord\",\"pagename\":\"Nettstedsadministrasjon\",\"records\":\"Oppføringer\",\"show\":\"Vis\"},\"delete\":{\"confirmation\":\"Ja, jeg er sikker\",\"flash_confirmation\":\"%{name} ble slettet\"},\"flash\":{\"error\":\"%{name} kunne ikke bli %{action}\",\"noaction\":\"Ingen handlinger ble utført\",\"successful\":\"%{name} ble %{action}\"},\"history\":{\"name\":\"Logg\",\"no_activity\":\"Ingen aktivitet\",\"page_name\":\"Logg for %{name}\"},\"list\":{\"add_new\":\"Legg til ny\",\"delete_action\":\"Slett\",\"delete_selected\":\"Slett valgte\",\"edit_action\":\"Rediger\",\"search\":\"Søk\",\"select\":\"Velg %{name} for å redigere\",\"select_action\":\"Velg\",\"show_all\":\"Vis alle \"},\"new\":{\"basic_info\":\"Basisinformasjon\",\"cancel\":\"Avbryt\",\"chosen\":\"Valgt %{name}\",\"chose_all\":\"Velg alle\",\"clear_all\":\"Fjern alle\",\"many_chars\":\"eller færre tegn.\",\"one_char\":\"tegn.\",\"optional\":\"Valgfri\",\"required\":\"Påkrevd\",\"save\":\"Lagre\",\"save_and_add_another\":\"Lagre og legg til ny\",\"save_and_edit\":\"Lagre og rediger\",\"select_choice\":\"Kryss av for dine valg og klikk\"}},\"build\":{\"duration\":\"Varighet\",\"finished_at\":\"Fullført\",\"job\":\"Jobb\"},\"builds\":{\"allowed_failures\":\"Tillatte feil\",\"author\":\"Forfatter\",\"branch\":\"Gren\",\"build_matrix\":\"Jobbmatrise\",\"commit\":\"Innsending\",\"committer\":\"Innsender\",\"compare\":\"Sammenlign\",\"config\":\"Oppsett\",\"duration\":\"Varighet\",\"finished_at\":\"Fullført\",\"message\":\"Beskrivelse\",\"messages\":{\"sponsored_by\":\"Denne testen ble kjørt på en maskin sponset av\"},\"name\":\"Jobb\",\"started_at\":\"Startet\"},\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} time\",\"other\":\"%{count} timer\"},\"minutes_exact\":{\"one\":\"%{count} minutt\",\"other\":\"%{count} minutter\"},\"seconds_exact\":{\"one\":\"%{count} sekund\",\"other\":\"%{count} sekunder\"}}},\"devise\":{\"confirmations\":{\"confirmed\":\"Din konto er aktivert og du er nå innlogget.\",\"send_instructions\":\"Om noen få minutter så vil du få en e-post med informasjon om hvordan du bekrefter kontoen din.\"},\"failure\":{\"inactive\":\"Kontoen din har ikke blitt aktivert enda.\",\"invalid\":\"Ugyldig e-post eller passord.\",\"invalid_token\":\"Ugyldig autentiseringskode.\",\"locked\":\"Kontoen din er låst.\",\"timeout\":\"Du ble logget ut siden på grunn av mangel på aktivitet, vennligst logg inn på nytt.\",\"unauthenticated\":\"Du må logge inn eller registrere deg for å fortsette.\",\"unconfirmed\":\"Du må bekrefte kontoen din før du kan fortsette.\"},\"mailer\":{\"confirmation_instructions\":{\"subject\":\"Bekreftelsesinformasjon\"},\"reset_password_instructions\":{\"subject\":\"Instruksjoner for å få nytt passord\"},\"unlock_instructions\":{\"subject\":\"Opplåsningsinstruksjoner\"}},\"passwords\":{\"send_instructions\":\"Om noen få minutter så vil du få en epost med informasjon om hvordan du kan få et nytt passord.\",\"updated\":\"Passordet ditt ble endret, og du er logget inn.\"},\"registrations\":{\"destroyed\":\"Adjø! Kontoen din ble kansellert. Vi håper vi ser deg igjen snart.\",\"signed_up\":\"Du er nå registrert.\",\"updated\":\"Kontoen din ble oppdatert.\"},\"sessions\":{\"signed_in\":\"Du er nå logget inn.\",\"signed_out\":\"Du er nå logget ut.\"},\"unlocks\":{\"send_instructions\":\"Om noen få minutter så kommer du til å få en e-post med informasjon om hvordan du kan låse opp kontoen din.\",\"unlocked\":\"Kontoen din ble låst opp, og du er nå logget inn igjen.\"}},\"errors\":{\"messages\":{\"already_confirmed\":\"har allerede blitt bekreftet\",\"not_found\":\"ikke funnnet\",\"not_locked\":\"var ikke låst\"}},\"home\":{\"name\":\"hjem\"},\"jobs\":{\"allowed_failures\":\"Tillatte feil\",\"author\":\"Forfatter\",\"branch\":\"Gren\",\"build_matrix\":\"Jobbmatrise\",\"commit\":\"Innsending\",\"committer\":\"Innsender\",\"compare\":\"Sammenlign\",\"config\":\"Oppsett\",\"duration\":\"Varighet\",\"finished_at\":\"Fullført\",\"message\":\"Beskrivelse\",\"messages\":{\"sponsored_by\":\"Denne testserien ble kjørt på en maskin sponset av\"},\"started_at\":\"Startet\"},\"layouts\":{\"about\":{\"alpha\":\"Dette er alfa-greier.\",\"join\":\"Bli med og hjelp oss!\",\"mailing_list\":\"E-postliste\",\"messages\":{\"alpha\":\"Dette er <strong>ikke</strong> en stabil tjeneste. Vi har fremdeles et stykke igjen! Mer informasjon finner du <a href=\\\"https://github.com/travis-ci\\\">her</a>.\"},\"repository\":\"Kodelager\",\"twitter\":\"Twitter.\"},\"application\":{\"fork_me\":\"Se koden på Github\",\"my_repositories\":\"Mine kodelagre\",\"recent\":\"Nylig\",\"search\":\"Søk\",\"sponsers\":\"Sponsorer\",\"sponsors_link\":\"Se alle de flotte sponsorene våre &rarr;\"},\"mobile\":{\"author\":\"Forfatter\",\"build\":\"Jobb\",\"build_matrix\":\"Jobbmatrise\",\"commit\":\"Innsending\",\"committer\":\"Innsender\",\"compare\":\"Sammenlign\",\"config\":\"Oppsett\",\"duration\":\"Varighet\",\"finished_at\":\"Fullført\",\"job\":\"Jobb\",\"log\":\"Logg\"},\"top\":{\"admin\":\"Administrator\",\"blog\":\"Blogg\",\"docs\":\"Dokumentasjon\",\"github_login\":\"Logg inn med Github\",\"home\":\"Hjem\",\"profile\":\"Profil\",\"sign_out\":\"Logg ut\",\"stats\":\"Statistikk\"}},\"no_job\":\"Ingen jobber finnnes\",\"profiles\":{\"show\":{\"email\":\"E-post\",\"github\":\"Github\",\"message\":{\"config\":\"hvordan sette opp egne jobbinnstillinger\",\"your_repos\":\"Slå\\u0010 på Travis for prosjektene dine ved å dra i bryterne under, og send koden til Github.<br />\\nFor å teste mot flere ruby-versjoner, se dokumentasjonen for\"},\"messages\":{\"notice\":\"For å komme i gang, vennligst les <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">kom-i-gang-veivisereren</a> vår. <small>Det tar bare et par minutter.</small>\"},\"token\":\"Kode\",\"update\":\"Oppdater\",\"update_locale\":\"Oppdater\",\"your_locale\":\"Ditt språk\",\"your_repos\":\"Dine kodelagre\"}},\"queue\":\"Kø\",\"repositories\":{\"branch\":\"Gren\",\"commit\":\"Innsender\",\"duration\":\"Varighet\",\"finished_at\":\"Fullført\",\"image_url\":\"Bilde-URL\",\"markdown\":\"Markdown\",\"message\":\"Beskrivelse\",\"rdoc\":\"RDOC\",\"started_at\":\"Startet\",\"tabs\":{\"branches\":\"Grensammendrag\",\"build\":\"Jobb\",\"build_history\":\"Jobblogg\",\"current\":\"Siste\",\"job\":\"Jobb\"},\"textile\":\"Textile\"},\"repository\":{\"duration\":\"Varighet\"},\"statistics\":{\"index\":{\"build_count\":\"Antall jobber\",\"count\":\"Antall\",\"last_month\":\"siste måned\",\"repo_growth\":\"Vekst i kodelager\",\"total_builds\":\"Totale jobber\",\"total_projects\":\"Antall prosjekter/kodelagre\"}},\"workers\":\"Arbeidere\",\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"ja\":\"日本語\",\"ru\":\"Русский\",\"fr\":\"Français\",\"nb\":\"Norsk Bokmål\",\"pl\":\"Polski\",\"nl\":\"Nederlands\",\"pt-BR\":\"português brasileiro\"}},\"nl\":{\"admin\":{\"actions\":{\"create\":\"aanmaken\",\"created\":\"aangemaakt\",\"delete\":\"verwijderen\",\"deleted\":\"verwijderd\",\"update\":\"bijwerken\",\"updated\":\"bijgewerkt\"},\"credentials\":{\"log_out\":\"Afmelden\"},\"dashboard\":{\"add_new\":\"Nieuwe toevoegen\",\"ago\":\"geleden\",\"last_used\":\"Laatst gebruikt\",\"model_name\":\"Model naam\",\"modify\":\"Wijzigen\",\"pagename\":\"Site administratie\",\"show\":\"Laten zien\",\"records\":\"Gegevens\"},\"delete\":{\"confirmation\":\"Ja, ik ben zeker\",\"flash_confirmation\":\"%{name} is vernietigd\"},\"flash\":{\"error\":\"%{name} kon niet worden %{action}\",\"noaction\":\"Er zijn geen acties genomen\",\"successful\":\"%{name} is %{action}\"},\"history\":{\"name\":\"Geschiedenis\",\"no_activity\":\"Geen activiteit\",\"page_name\":\"Geschiedenis van %{name}\"},\"list\":{\"add_new\":\"Nieuwe toevoegen\",\"delete_action\":\"Verwijderen\",\"delete_selected\":\"Verwijder geselecteerden\",\"edit_action\":\"Bewerken\",\"search\":\"Zoeken\",\"select\":\"Selecteer %{name} om te bewerken\",\"select_action\":\"Selecteer\",\"show_all\":\"Laat allen zien\"},\"new\":{\"basic_info\":\"Basisinfo\",\"cancel\":\"Annuleren\",\"chosen\":\"%{name} gekozen\",\"chose_all\":\"Kies allen\",\"clear_all\":\"Deselecteer allen\",\"many_chars\":\"tekens of minder.\",\"one_char\":\"teken.\",\"optional\":\"Optioneel\",\"required\":\"Vereist\",\"save\":\"Opslaan\",\"save_and_add_another\":\"Opslaan en een nieuwe toevoegen\",\"save_and_edit\":\"Opslaan en bewerken\",\"select_choice\":\"Selecteer uw keuzes en klik\"}},\"build\":{\"duration\":\"Duur\",\"finished_at\":\"Voltooid\",\"job\":\"Taak\"},\"builds\":{\"allowed_failures\":\"Toegestane mislukkingen\",\"author\":\"Auteur\",\"branch\":\"Tak\",\"build_matrix\":\"Bouw Matrix\",\"compare\":\"Vergelijk\",\"config\":\"Configuratie\",\"duration\":\"Duur\",\"finished_at\":\"Voltooid\",\"message\":\"Bericht\",\"messages\":{\"sponsored_by\":\"Deze tests zijn gedraaid op een machine gesponsord door\"},\"name\":\"Bouw\",\"started_at\":\"Gestart\",\"commit\":\"Commit\",\"committer\":\"Committer\"},\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} uur\",\"other\":\"%{count} uren\"},\"minutes_exact\":{\"one\":\"%{count} minuut\",\"other\":\"%{count} minuten\"},\"seconds_exact\":{\"one\":\"%{count} seconde\",\"other\":\"%{count} seconden\"}}},\"devise\":{\"confirmations\":{\"confirmed\":\"Uw account is bevestigd. U wordt nu ingelogd.\",\"send_instructions\":\"Binnen enkele minuten zal u een email ontvangen met instructies om uw account te bevestigen.\"},\"failure\":{\"inactive\":\"Uw account is nog niet geactiveerd.\",\"invalid\":\"Ongeldig email adres of wachtwoord.\",\"invalid_token\":\"Ongeldig authenticatie token.\",\"locked\":\"Uw account is vergrendeld.\",\"timeout\":\"Uw sessie is verlopen, gelieve opnieuw in te loggen om verder te gaan.\",\"unauthenticated\":\"U moet inloggen of u registeren voordat u verder gaat.\",\"unconfirmed\":\"U moet uw account bevestigen voordat u verder gaat.\"},\"mailer\":{\"confirmation_instructions\":{\"subject\":\"Bevestigings-instructies\"},\"reset_password_instructions\":{\"subject\":\"Wachtwoord herstel instructies\"},\"unlock_instructions\":{\"subject\":\"Ontgrendel-instructies\"}},\"passwords\":{\"send_instructions\":\"Binnen enkele minuten zal u een email krijgen met instructies om uw wachtwoord opnieuw in te stellen.\",\"updated\":\"Uw wachtwoord is veranderd. U wordt nu ingelogd.\"},\"registrations\":{\"destroyed\":\"Dag! Uw account is geannuleerd. We hopen u vlug terug te zien.\",\"signed_up\":\"Uw registratie is voltooid. Als het ingeschakeld is wordt een bevestiging naar uw email adres verzonden.\",\"updated\":\"Het bijwerken van uw account is gelukt.\"},\"sessions\":{\"signed_in\":\"Inloggen gelukt.\",\"signed_out\":\"Uitloggen gelukt.\"},\"unlocks\":{\"send_instructions\":\"Binnen enkele minuten zal u een email krijgen met instructies om uw account te ontgrendelen.\",\"unlocked\":\"Uw account is ontgrendeld. U wordt nu ingelogd.\"}},\"errors\":{\"messages\":{\"already_confirmed\":\"was al bevestigd\",\"not_found\":\"niet gevonden\",\"not_locked\":\"was niet vergrendeld\"}},\"jobs\":{\"allowed_failures\":\"Toegestane mislukkingen\",\"author\":\"Auteur\",\"branch\":\"Tak\",\"build_matrix\":\"Bouw matrix\",\"compare\":\"Vergelijk\",\"config\":\"Configuratie\",\"duration\":\"Duur\",\"finished_at\":\"Voltooid\",\"message\":\"Bericht\",\"messages\":{\"sponsored_by\":\"Deze testen zijn uitgevoerd op een machine gesponsord door\"},\"started_at\":\"Gestart\",\"commit\":\"Commit\",\"committer\":\"Committer\"},\"layouts\":{\"about\":{\"alpha\":\"Dit is in alfa-stadium.\",\"join\":\"Doe met ons mee en help!\",\"mailing_list\":\"Mailing lijst\",\"messages\":{\"alpha\":\"Gelieve deze service <strong>niet</strong> te beschouwen als stabiel. Daar zijn we nog lang niet! Meer info <a href='https://github.com/travis-ci'>hier.</a>\"},\"repository\":\"Repository\",\"twitter\":\"Twitter\"},\"application\":{\"fork_me\":\"Maak een fork op Github\",\"my_repositories\":\"Mijn repositories\",\"recent\":\"Recent\",\"search\":\"Zoeken\",\"sponsers\":\"Sponsors\",\"sponsors_link\":\"Bekijk al onze geweldige sponsors &rarr;\"},\"mobile\":{\"author\":\"Auteur\",\"build\":\"Bouw\",\"build_matrix\":\"Bouw matrix\",\"compare\":\"Vergelijk\",\"config\":\"Configuratie\",\"duration\":\"Duur\",\"finished_at\":\"Voltooid op\",\"job\":\"Taak\",\"commit\":\"Commit\",\"committer\":\"Committer\",\"log\":\"Logboek\"},\"top\":{\"admin\":\"Administratie\",\"blog\":\"Blog\",\"docs\":\"Documentatie\",\"github_login\":\"Inloggen met Github\",\"home\":\"Home\",\"profile\":\"Profiel\",\"sign_out\":\"Uitloggen\",\"stats\":\"Statistieken\"}},\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"fr\":\"Français\",\"ja\":\"日本語\",\"nb\":\"Norsk Bokmål\",\"nl\":\"Nederlands\",\"pl\":\"Polski\",\"ru\":\"Русский\",\"pt-BR\":\"português brasileiro\"},\"no_job\":\"Er zijn geen taken\",\"profiles\":{\"show\":{\"email\":\"Email adres\",\"github\":\"Github\",\"message\":{\"config\":\"hoe eigen bouw-opties in te stellen\",\"your_repos\":\"Zet de schakelaars hieronder aan om de Travis hook voor uw projecten te activeren en push daarna naar Github<br />\\nOm te testen tegen meerdere rubies, zie\"},\"messages\":{\"notice\":\"Om te beginnen kunt u onze <a href=\\\\\\\"http://about.travis-ci.org/docs/user/getting-started/\\\\\\\">startersgids</a> lezen.\\\\n  <small>Het zal maar enkele minuten van uw tijd vergen.</small>\"},\"update\":\"Bijwerken\",\"update_locale\":\"Bijwerken\",\"your_locale\":\"Uw taal\",\"your_repos\":\"Uw repositories\",\"token\":\"Token\"}},\"queue\":\"Wachtrij\",\"repositories\":{\"branch\":\"Tak\",\"duration\":\"Duur\",\"finished_at\":\"Voltooid\",\"image_url\":\"Afbeeldings URL\",\"message\":\"Bericht\",\"started_at\":\"Gestart\",\"tabs\":{\"branches\":\"Tak samenvatting\",\"build\":\"Bouw\",\"build_history\":\"Bouw geschiedenis\",\"current\":\"Huidig\",\"job\":\"Taak\"},\"commit\":\"Commit\",\"markdown\":\"Markdown\",\"rdoc\":\"RDOC\",\"textile\":\"Textile\"},\"repository\":{\"duration\":\"Duur\"},\"statistics\":{\"index\":{\"build_count\":\"Bouw aantal\",\"count\":\"Aantal\",\"last_month\":\"voorbije maand\",\"repo_growth\":\"Repository groei\",\"total_builds\":\"Bouw totaal\",\"total_projects\":\"Projecten/Repository totaal\"}},\"workers\":\"Machines\",\"home\":{\"name\":\"Hoofdpagina\"}},\"pl\":{\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} godzina\",\"other\":\"%{count} godziny\"},\"minutes_exact\":{\"one\":\"%{count} minuta\",\"other\":\"%{count} minuty\"},\"seconds_exact\":{\"one\":\"%{count} sekunda\",\"other\":\"%{count} sekundy\"}}},\"workers\":\"Workers\",\"queue\":\"Kolejka\",\"no_job\":\"Brak zadań\",\"repositories\":{\"branch\":\"Gałąź\",\"image_url\":\"URL obrazka\",\"markdown\":\"Markdown\",\"textile\":\"Textile\",\"rdoc\":\"RDOC\",\"commit\":\"Commit\",\"message\":\"Opis\",\"started_at\":\"Rozpoczęto\",\"duration\":\"Czas trwania\",\"finished_at\":\"Zakończono\",\"tabs\":{\"current\":\"Aktualny\",\"build_history\":\"Historia Buildów\",\"branches\":\"Wszystkie Gałęzie\",\"build\":\"Build\",\"job\":\"Zadanie\"}},\"build\":{\"job\":\"Zadanie\",\"duration\":\"Czas trwania\",\"finished_at\":\"Zakończono\"},\"jobs\":{\"messages\":{\"sponsored_by\":\"Te testy zostały uruchomione na maszynie sponsorowanej przez\"},\"build_matrix\":\"Macierz Buildów\",\"allowed_failures\":\"Dopuszczalne Niepowodzenia\",\"author\":\"Autor\",\"config\":\"Konfiguracja\",\"compare\":\"Porównanie\",\"committer\":\"Committer\",\"branch\":\"Gałąź\",\"commit\":\"Commit\",\"message\":\"Opis\",\"started_at\":\"Rozpoczęto\",\"duration\":\"Czas trwania\",\"finished_at\":\"Zakończono\",\"sponsored_by\":\"Te testy zostały uruchomione na maszynie sponsorowanej przez\"},\"builds\":{\"name\":\"Build\",\"messages\":{\"sponsored_by\":\"Te testy zostały uruchomione na maszynie sponsorowanej przez\"},\"build_matrix\":\"Macierz Buildów\",\"allowed_failures\":\"Dopuszczalne Niepowodzenia\",\"author\":\"Autor\",\"config\":\"Konfiguracja\",\"compare\":\"Porównanie\",\"committer\":\"Komitujący\",\"branch\":\"Gałąź\",\"commit\":\"Commit\",\"message\":\"Opis\",\"started_at\":\"Rozpoczęto\",\"duration\":\"Czas trwania\",\"finished_at\":\"Zakończono\"},\"layouts\":{\"top\":{\"home\":\"Start\",\"blog\":\"Blog\",\"docs\":\"Dokumentacja\",\"stats\":\"Statystki\",\"github_login\":\"Zaloguj się przy pomocy Githuba\",\"profile\":\"Profil\",\"sign_out\":\"Wyloguj się\"},\"application\":{\"fork_me\":\"Fork me on Github\",\"recent\":\"Ostatnie\",\"search\":\"Wyniki\",\"sponsers\":\"Sponsorzy\",\"sponsors_link\":\"Zobacz naszych wszystkich wspaniałych sponsorów &rarr;\",\"my_repositories\":\"Moje repozytoria\"},\"about\":{\"alpha\":\"To wciąż jest wersja alpha.\",\"messages\":{\"alpha\":\"Proszę <strong>nie</strong> traktuj tego jako stabilnej usługi. Wciąż nam wiele do tego brakuje! Więcej informacji znajdziesz <a href='https://github.com/travis-ci'>tutaj.</a>\"},\"join\":\"Pomóż i dołącz do nas!\",\"mailing_list\":\"Lista mailingowa\",\"repository\":\"Repozytorium\",\"twitter\":\"Twitter\"},\"mobile\":{\"author\":\"Autor\",\"build\":\"Build\",\"build_matrix\":\"Macierz Buildów\",\"commit\":\"Commit\",\"committer\":\"Komitujący\",\"compare\":\"Porównianie\",\"config\":\"Konfiguracja\",\"duration\":\"Czas trwania\",\"finished_at\":\"Zakończono\",\"job\":\"Zadanie\",\"log\":\"Log\"}},\"profiles\":{\"show\":{\"email\":\"Email\",\"github\":\"Github\",\"message\":{\"your_repos\":\"  Przesuń suwak poniżej, aby włączyć Travisa, dla twoich projektów, a następnie umieść swój kod na GitHubie.<br />\\n Aby testować swój kod przy użyciu wielu wersji Rubiego, zobacz\",\"config\":\"jak skonfigurować niestandardowe opcje builda\"},\"messages\":{\"notice\":\"Aby zacząć, przeczytaj nasz <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">Przewodnik </a>.\\n  <small>Zajmie ci to tylko kilka minut.</small>\"},\"token\":\"Token\",\"your_repos\":\"Twoje repozytoria\"}},\"statistics\":{\"index\":{\"count\":\"Ilość\",\"repo_growth\":\"Przyrost repozytoriów\",\"total_projects\":\"Łącznie projektów/repozytoriów\",\"build_count\":\"Liczba buildów\",\"last_month\":\"ostatni miesiąc\",\"total_builds\":\"Łącznie Buildów\"}},\"date\":{\"abbr_day_names\":[\"nie\",\"pon\",\"wto\",\"śro\",\"czw\",\"pią\",\"sob\"],\"abbr_month_names\":[\"sty\",\"lut\",\"mar\",\"kwi\",\"maj\",\"cze\",\"lip\",\"sie\",\"wrz\",\"paź\",\"lis\",\"gru\"],\"day_names\":[\"niedziela\",\"poniedziałek\",\"wtorek\",\"środa\",\"czwartek\",\"piątek\",\"sobota\"],\"formats\":{\"default\":\"%d-%m-%Y\",\"long\":\"%B %d, %Y\",\"short\":\"%d %b\"},\"month_names\":[\"styczeń\",\"luty\",\"marzec\",\"kwiecień\",\"maj\",\"czerwiec\",\"lipiec\",\"sierpień\",\"wrzesień\",\"październik\",\"listopad\",\"grudzień\"],\"order\":[\"day\",\"month\",\"year\"]},\"errors\":{\"format\":\"%{attribute} %{message}\",\"messages\":{\"accepted\":\"musi zostać zaakceptowane\",\"blank\":\"nie może być puste\"}},\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"ja\":\"日本語\",\"ru\":\"Русский\",\"fr\":\"Français\",\"nb\":\"Norsk Bokmål\",\"pl\":\"Polski\",\"nl\":\"Nederlands\",\"pt-BR\":\"português brasileiro\"}},\"pt-BR\":{\"admin\":{\"actions\":{\"create\":\"criar\",\"created\":\"criado\",\"delete\":\"deletar\",\"deleted\":\"deletado\",\"update\":\"atualizar\",\"updated\":\"atualizado\"},\"credentials\":{\"log_out\":\"Deslogar\"},\"dashboard\":{\"add_new\":\"Adicionar novo\",\"ago\":\"atrás\",\"last_used\":\"Última utilização\",\"model_name\":\"Nome do modelo\",\"modify\":\"Modificar\",\"name\":\"Dashboard\",\"pagename\":\"Administração do site\",\"records\":\"Registros\",\"show\":\"Mostrar\"},\"delete\":{\"confirmation\":\"Sim, tenho certeza\",\"flash_confirmation\":\"%{name} foi destruído com sucesso\"},\"flash\":{\"error\":\"%{name} falhou ao %{action}\",\"noaction\":\"Nenhuma ação foi tomada\",\"successful\":\"%{name} foi %{action} com sucesso\"},\"history\":{\"name\":\"Histórico\",\"no_activity\":\"Nenhuma Atividade\",\"page_name\":\"Histórico para %{name}\"},\"list\":{\"add_new\":\"Adicionar novo\",\"delete_action\":\"Deletar\",\"delete_selected\":\"Deletar selecionados\",\"edit_action\":\"Editar\",\"search\":\"Buscar\",\"select\":\"Selecionar %{name} para editar\",\"select_action\":\"Selecionar\",\"show_all\":\"Mostrar todos\"},\"new\":{\"basic_info\":\"Informações básicas\",\"cancel\":\"Cancelar\",\"chosen\":\"Escolhido %{name}\",\"chose_all\":\"Escolher todos\",\"clear_all\":\"Limpar todos\",\"many_chars\":\"caracteres ou menos.\",\"one_char\":\"caractere.\",\"optional\":\"Opcional\",\"required\":\"Requerido\",\"save\":\"Salvar\",\"save_and_add_another\":\"Salvar e adicionar outro\",\"save_and_edit\":\"Salvar e alterar\",\"select_choice\":\"Selecione e clique\"}},\"build\":{\"duration\":\"Duração\",\"finished_at\":\"Concluído em\",\"job\":\"Trabalho\"},\"builds\":{\"allowed_failures\":\"Falhas Permitidas\",\"author\":\"Autor\",\"branch\":\"Branch\",\"build_matrix\":\"Matriz de Build\",\"commit\":\"Commit\",\"committer\":\"Committer\",\"compare\":\"Comparar\",\"config\":\"Config\",\"duration\":\"Duração\",\"finished_at\":\"Concluído em\",\"message\":\"Mensagem\",\"messages\":{\"sponsored_by\":\"Esta série de testes foi executada em uma caixa de processos patrocinada por\"},\"name\":\"Build\",\"started_at\":\"Iniciou em\"},\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} hora\",\"other\":\"%{count} horas\"},\"minutes_exact\":{\"one\":\"%{count} minuto\",\"other\":\"%{count} minutos\"},\"seconds_exact\":{\"one\":\"%{count} segundo\",\"other\":\"%{count} segundos\"}}},\"devise\":{\"confirmations\":{\"confirmed\":\"Sua conta foi confirmada com sucesso. Você agora está logado.\",\"send_instructions\":\"Você receberá um email com instruções de como confirmar sua conta em alguns minutos.\"},\"failure\":{\"inactive\":\"Sua conta ainda não foi ativada.\",\"invalid\":\"Email ou senha inválidos.\",\"invalid_token\":\"Token de autenticação inválido.\",\"locked\":\"Sua conta está trancada.\",\"timeout\":\"Sua sessão expirou, por favor faça seu login novamente.\",\"unauthenticated\":\"Você precisa fazer o login ou cadastrar-se antes de continuar.\",\"unconfirmed\":\"Você precisa confirmar sua conta antes de continuar.\"},\"mailer\":{\"confirmation_instructions\":{\"subject\":\"Instruções de confirmação\"},\"reset_password_instructions\":{\"subject\":\"Instruções de atualização de senha\"},\"unlock_instructions\":{\"subject\":\"Instruções de destrancamento\"}},\"passwords\":{\"send_instructions\":\"Você receberá um email com instruções de como atualizar sua senha em alguns minutos.\",\"updated\":\"Sua senha foi alterada com sucesso. Você agora está logado.\"},\"registrations\":{\"destroyed\":\"Tchau! Sua conta foi cancelada com sucesso. Esperamos vê-lo novamente em breve!\",\"signed_up\":\"Você se cadastrou com sucesso. Se ativada, uma confirmação foi enviada para seu email.\",\"updated\":\"Você atualizou sua conta com sucesso.\"},\"sessions\":{\"signed_in\":\"Logado com sucesso.\",\"signed_out\":\"Deslogado com sucesso.\"},\"unlocks\":{\"send_instructions\":\"Você receberá um email com instruções de como destrancar sua conta em alguns minutos.\",\"unlocked\":\"Sua conta foi destrancada com sucesso. Você agora está logado.\"}},\"errors\":{\"messages\":{\"already_confirmed\":\"já foi confirmado\",\"not_found\":\"não encontrado\",\"not_locked\":\"não estava trancado\"}},\"home\":{\"name\":\"home\"},\"jobs\":{\"allowed_failures\":\"Falhas Permitidas\",\"author\":\"Autor\",\"branch\":\"Branch\",\"build_matrix\":\"Matriz de Build\",\"commit\":\"Commit\",\"committer\":\"Committer\",\"compare\":\"Comparar\",\"config\":\"Config\",\"duration\":\"Duração\",\"finished_at\":\"Concluído em\",\"message\":\"Mensagem\",\"messages\":{\"sponsored_by\":\"Esta série de testes foi executada em uma caixa de processos patrocinada por\"},\"started_at\":\"Iniciou em\"},\"layouts\":{\"about\":{\"alpha\":\"Isto é um alpha.\",\"join\":\"Junte-se à nós e ajude!\",\"mailing_list\":\"Lista de email\",\"messages\":{\"alpha\":\"Por favor, <strong>não</strong> considere isto um serviço estável. Estamos muito longe disso! Mais informações <a href='https://github.com/travis-ci'>aqui.</a>\"},\"repository\":\"Repositório\",\"twitter\":\"Twitter\"},\"application\":{\"fork_me\":\"Faça fork no Github\",\"my_repositories\":\"Meus Repositórios\",\"recent\":\"Recentes\",\"search\":\"Buscar\",\"sponsers\":\"Patrocinadores\",\"sponsors_link\":\"Conheça todos os nossos patrocinadores &rarr;\"},\"mobile\":{\"author\":\"Autor\",\"build\":\"Build\",\"build_matrix\":\"Matriz de Build\",\"commit\":\"Commit\",\"committer\":\"Committer\",\"compare\":\"Comparar\",\"config\":\"Config\",\"duration\":\"Duração\",\"finished_at\":\"Concluído em\",\"job\":\"Trabalho\",\"log\":\"Log\"},\"top\":{\"admin\":\"Admin\",\"blog\":\"Blog\",\"docs\":\"Documentação\",\"github_login\":\"Logue com o Github\",\"home\":\"Home\",\"profile\":\"Perfil\",\"sign_out\":\"Sair\",\"stats\":\"Estatísticas\"}},\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"fr\":\"Français\",\"ja\":\"日本語\",\"nb\":\"Norsk Bokmål\",\"nl\":\"Nederlands\",\"pl\":\"Polski\",\"ru\":\"Русский\",\"pt-BR\":\"português brasileiro\"},\"no_job\":\"Não há trabalhos\",\"profiles\":{\"show\":{\"email\":\"Email\",\"github\":\"Github\",\"message\":{\"config\":\"como configurar opções de build\",\"your_repos\":\"Use os botões abaixo para ligar ou desligar o hook de serviço do Travis para seus projetos, e então, faça um push para o Github.<br />Para testar com múltiplas versões do Ruby, leia\"},\"messages\":{\"notice\":\"Para começar, leia nosso <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">Guia de início</a>. <small>Só leva alguns minutinhos.</small>\"},\"token\":\"Token\",\"update\":\"Atualizar\",\"update_locale\":\"Atualizar\",\"your_locale\":\"Sua língua\",\"your_repos\":\"Seus Repositórios\"}},\"queue\":\"Fila\",\"repositories\":{\"branch\":\"Branch\",\"commit\":\"Commit\",\"duration\":\"Duração\",\"finished_at\":\"Concluído em\",\"image_url\":\"URL da imagem\",\"markdown\":\"Markdown\",\"message\":\"Mensagem\",\"rdoc\":\"RDOC\",\"started_at\":\"Iniciou em\",\"tabs\":{\"branches\":\"Sumário do Branch\",\"build\":\"Build\",\"build_history\":\"Histórico de Build\",\"current\":\"Atual\",\"job\":\"Trabalho\"},\"textile\":\"Textile\"},\"repository\":{\"duration\":\"Duração\"},\"statistics\":{\"index\":{\"build_count\":\"Número de Builds\",\"count\":\"Número\",\"last_month\":\"último mês\",\"repo_growth\":\"Crescimento de Repositório\",\"total_builds\":\"Total de Builds\",\"total_projects\":\"Total de Projetos/Repositórios\"}},\"workers\":\"Processos\"},\"ru\":{\"admin\":{\"actions\":{\"create\":\"создать\",\"created\":\"создано\",\"delete\":\"удалить\",\"deleted\":\"удалено\",\"update\":\"обновить\",\"updated\":\"обновлено\"},\"credentials\":{\"log_out\":\"Выход\"},\"dashboard\":{\"add_new\":\"Добавить\",\"ago\":\"назад\",\"last_used\":\"Использовалось в последний раз\",\"model_name\":\"Имя модели\",\"modify\":\"Изменить\",\"name\":\"Панель управления\",\"pagename\":\"Управление сайтом\",\"records\":\"Записи\",\"show\":\"Показать\"},\"delete\":{\"confirmation\":\"Да, я уверен\",\"flash_confirmation\":\"%{name} успешно удалено\"},\"history\":{\"name\":\"История\",\"no_activity\":\"Нет активности\",\"page_name\":\"История %{name}\"},\"list\":{\"add_new\":\"Добавить\",\"delete_action\":\"Удалить\",\"delete_selected\":\"Удалить выбранные\",\"edit_action\":\"Редактировать\",\"search\":\"Поиск\",\"select\":\"Для редактирования выберите %{name}\",\"select_action\":\"Выбрать\",\"show_all\":\"Показать все\"},\"new\":{\"basic_info\":\"Основная информация\",\"cancel\":\"Отмена\",\"chosen\":\"Выбрано %{name}\",\"chose_all\":\"Выбрать все\",\"clear_all\":\"Очистить все\",\"one_char\":\"символ.\",\"optional\":\"Необязательно\",\"required\":\"Обязательно\",\"save\":\"Сохранить\",\"save_and_add_another\":\"Сохранить и добавить другое\",\"save_and_edit\":\"Сохранить и продолжить редактирование\",\"select_choice\":\"Выберите и кликните\",\"many_chars\":\"символов или меньше.\"},\"flash\":{\"error\":\"%{name} не удалось %{action}\",\"noaction\":\"Никаких действий не произведено\",\"successful\":\"%{name} было успешно %{action}\"}},\"build\":{\"duration\":\"Длительность\",\"finished_at\":\"Завершен\",\"job\":\"Задача\"},\"builds\":{\"allowed_failures\":\"Допустимые неудачи\",\"author\":\"Автор\",\"branch\":\"Ветка\",\"build_matrix\":\"Матрица\",\"commit\":\"Коммит\",\"committer\":\"Коммитер\",\"compare\":\"Дифф\",\"config\":\"Конфигурация\",\"duration\":\"Длительность\",\"finished_at\":\"Завершен\",\"message\":\"Комментарий\",\"messages\":{\"sponsored_by\":\"Эта серия тестов была запущена на машине, спонсируемой\"},\"name\":\"Билд\",\"started_at\":\"Начало\"},\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} час\",\"few\":\"%{count} часа\",\"many\":\"%{count} часов\",\"other\":\"%{count} часа\"},\"minutes_exact\":{\"one\":\"%{count} минута\",\"few\":\"%{count} минуты\",\"many\":\"%{count} минут\",\"other\":\"%{count} минуты\"},\"seconds_exact\":{\"one\":\"%{count} секунда\",\"few\":\"%{count} секунды\",\"many\":\"%{count} секунд\",\"other\":\"%{count} секунды\"}}},\"devise\":{\"confirmations\":{\"confirmed\":\"Ваш аккаунт успешно подтвержден. Приветствуем!\",\"send_instructions\":\"В течении нескольких минут вы получите электронное письмо с инструкциями для прохождения процедуры подтверждения аккаунта.\"},\"failure\":{\"inactive\":\"Ваш аккаунт еще не активирован.\",\"invalid\":\"Ошибка в адресе почты или пароле.\",\"invalid_token\":\"Неправильный токен аутентификации.\",\"locked\":\"Ваш аккаунт заблокирован.\",\"timeout\":\"Сессия окончена. Для продолжения работы войдите снова.\",\"unauthenticated\":\"Вам нужно войти или зарегистрироваться.\",\"unconfirmed\":\"Вы должны сначала подтвердить свой аккаунт.\"},\"mailer\":{\"confirmation_instructions\":{\"subject\":\"Инструкции для подтверждению аккаунта\"},\"reset_password_instructions\":{\"subject\":\"Инструкции для сброса пароля\"},\"unlock_instructions\":{\"subject\":\"Инструкции для разблокирования аккаунта\"}},\"passwords\":{\"send_instructions\":\"В течении нескольких минут вы получите электронное письмо с инструкциями для сброса пароля.\",\"updated\":\"Ваш пароль успешно изменен. Приветствуем!\"},\"registrations\":{\"destroyed\":\"Ваш аккаунт был успешно удален. Живите долго и процветайте!\",\"signed_up\":\"Вы успешно прошли регистрацию. Инструкции для подтверждения аккаунта отправлены на ваш электронный адрес.\",\"updated\":\"Аккаунт успешно обновлен.\"},\"sessions\":{\"signed_in\":\"Приветствуем!\",\"signed_out\":\"Удачи!\"},\"unlocks\":{\"send_instructions\":\"В течении нескольких минут вы получите электронное письмо с инструкциям для разблокировния аккаунта.\",\"unlocked\":\"Ваш аккаунт успешно разблокирован. Приветствуем!\"}},\"errors\":{\"messages\":{\"already_confirmed\":\"уже подтвержден\",\"not_found\":\"не найден\",\"not_locked\":\"не заблокирован\"}},\"home\":{\"name\":\"Главная\"},\"jobs\":{\"allowed_failures\":\"Допустимые неудачи\",\"author\":\"Автор\",\"branch\":\"Ветка\",\"build_matrix\":\"Матрица\",\"commit\":\"Коммит\",\"committer\":\"Коммитер\",\"compare\":\"Сравнение\",\"config\":\"Конфигурация\",\"duration\":\"Длительность\",\"finished_at\":\"Завершен\",\"message\":\"Комментарий\",\"messages\":{\"sponsored_by\":\"Эта серия тестов была запущена на машине спонсируемой\"},\"started_at\":\"Начало\"},\"layouts\":{\"about\":{\"alpha\":\"Это альфа-версия\",\"join\":\"Присоединяйтесь к нам и помогайте!\",\"mailing_list\":\"Лист рассылки\",\"messages\":{\"alpha\":\"Пожалуйста, <strong>не</strong> считайте данный сервис стабильным. Мы еще очень далеки от стабильности! <a href='https://github.com/travis-ci'>Подробности</a>\"},\"repository\":\"Репозиторий\",\"twitter\":\"Twitter\"},\"application\":{\"fork_me\":\"Fork me on Github\",\"my_repositories\":\"Мои репозитории\",\"recent\":\"Недавние\",\"search\":\"Поиск\",\"sponsers\":\"Спонсоры\",\"sponsors_link\":\"Список всех наших замечательных спонсоров &rarr;\"},\"mobile\":{\"author\":\"Автор\",\"build\":\"Сборка\",\"build_matrix\":\"Матрица сборок\",\"commit\":\"Коммит\",\"committer\":\"Коммитер\",\"compare\":\"Сравнение\",\"config\":\"Конфигурация\",\"duration\":\"Длительность\",\"finished_at\":\"Завершен\",\"job\":\"Задача\",\"log\":\"Журнал\"},\"top\":{\"admin\":\"Управление\",\"blog\":\"Блог\",\"docs\":\"Документация\",\"github_login\":\"Войти через Github\",\"home\":\"Главная\",\"profile\":\"Профиль\",\"sign_out\":\"Выход\",\"stats\":\"Статистика\"}},\"no_job\":\"Очередь пуста\",\"profiles\":{\"show\":{\"email\":\"Электронная почта\",\"github\":\"Github\",\"message\":{\"config\":\"как настроить специальные опции билда\",\"your_repos\":\"Используйте переключатели, чтобы включить Travis service hook для вашего проекта, а потом отправьте код на GitHub.<br />\\nДля тестирования на нескольких версиях Ruby смотрите\"},\"messages\":{\"notice\":\"Перед началом, пожалуйста, прочтите <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">Руководство для быстрого старта</a>. <small>Это займет всего несколько минут.</small>\"},\"token\":\"Токен\",\"update\":\"Обновить\",\"update_locale\":\"Обновить\",\"your_locale\":\"Ваш язык\",\"your_repos\":\"Ваши репозитории\"}},\"queue\":\"Очередь\",\"repositories\":{\"branch\":\"Ветка\",\"commit\":\"Коммит\",\"duration\":\"Длительность\",\"finished_at\":\"Завершен\",\"image_url\":\"URL изображения\",\"markdown\":\"Markdown\",\"message\":\"Комментарий\",\"rdoc\":\"RDOC\",\"started_at\":\"Начало\",\"tabs\":{\"branches\":\"Статус веток\",\"build\":\"Билд\",\"build_history\":\"История\",\"current\":\"Текущий\",\"job\":\"Задача\"},\"textile\":\"Textile\"},\"repository\":{\"duration\":\"Длительность\"},\"statistics\":{\"index\":{\"build_count\":\"Количество билдов\",\"count\":\"Количество\",\"last_month\":\"прошлый месяц\",\"repo_growth\":\"Рост числа репозиториев\",\"total_builds\":\"Всего билдов\",\"total_projects\":\"Всего проектов/репозиториев\"}},\"workers\":\"Машины\",\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"ja\":\"日本語\",\"ru\":\"Русский\",\"fr\":\"Français\",\"nb\":\"Norsk Bokmål\",\"pl\":\"Polski\",\"nl\":\"Nederlands\",\"pt-BR\":\"português brasileiro\"}}};\n\n\n})();\n//@ sourceURL=config/i18n");minispade.register('config/locales', "(function() {window.I18n.translations = {\"ca\":{\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"fr\":\"Français\",\"ja\":\"日本語\",\"nb\":\"Norsk Bokmål\",\"nl\":\"Nederlands\",\"pl\":\"Polski\",\"pt-BR\":\"português brasileiro\",\"ru\":\"Русский\"}},\"en\":{\"errors\":{\"messages\":{\"not_found\":\"not found\",\"already_confirmed\":\"was already confirmed\",\"not_locked\":\"was not locked\"}},\"devise\":{\"failure\":{\"unauthenticated\":\"You need to sign in or sign up before continuing.\",\"unconfirmed\":\"You have to confirm your account before continuing.\",\"locked\":\"Your account is locked.\",\"invalid\":\"Invalid email or password.\",\"invalid_token\":\"Invalid authentication token.\",\"timeout\":\"Your session expired, please sign in again to continue.\",\"inactive\":\"Your account was not activated yet.\"},\"sessions\":{\"signed_in\":\"Signed in successfully.\",\"signed_out\":\"Signed out successfully.\"},\"passwords\":{\"send_instructions\":\"You will receive an email with instructions about how to reset your password in a few minutes.\",\"updated\":\"Your password was changed successfully. You are now signed in.\"},\"confirmations\":{\"send_instructions\":\"You will receive an email with instructions about how to confirm your account in a few minutes.\",\"confirmed\":\"Your account was successfully confirmed. You are now signed in.\"},\"registrations\":{\"signed_up\":\"You have signed up successfully. If enabled, a confirmation was sent to your e-mail.\",\"updated\":\"You updated your account successfully.\",\"destroyed\":\"Bye! Your account was successfully cancelled. We hope to see you again soon.\"},\"unlocks\":{\"send_instructions\":\"You will receive an email with instructions about how to unlock your account in a few minutes.\",\"unlocked\":\"Your account was successfully unlocked. You are now signed in.\"},\"mailer\":{\"confirmation_instructions\":{\"subject\":\"Confirmation instructions\"},\"reset_password_instructions\":{\"subject\":\"Reset password instructions\"},\"unlock_instructions\":{\"subject\":\"Unlock Instructions\"}}},\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} hour\",\"other\":\"%{count} hours\"},\"minutes_exact\":{\"one\":\"%{count} minute\",\"other\":\"%{count} minutes\"},\"seconds_exact\":{\"one\":\"%{count} second\",\"other\":\"%{count} seconds\"}}},\"workers\":\"Workers\",\"queue\":\"Queue\",\"no_job\":\"There are no jobs\",\"repositories\":{\"branch\":\"Branch\",\"image_url\":\"Image URL\",\"markdown\":\"Markdown\",\"textile\":\"Textile\",\"rdoc\":\"RDOC\",\"commit\":\"Commit\",\"message\":\"Message\",\"started_at\":\"Started\",\"duration\":\"Duration\",\"finished_at\":\"Finished\",\"tabs\":{\"current\":\"Current\",\"build_history\":\"Build History\",\"branches\":\"Branch Summary\",\"pull_requests\":\"Pull Requests\",\"build\":\"Build\",\"job\":\"Job\"}},\"build\":{\"job\":\"Job\",\"duration\":\"Duration\",\"finished_at\":\"Finished\"},\"jobs\":{\"messages\":{\"sponsored_by\":\"This test suite was run on a worker box sponsored by\"},\"build_matrix\":\"Build Matrix\",\"allowed_failures\":\"Allowed Failures\",\"author\":\"Author\",\"config\":\"Config\",\"compare\":\"Compare\",\"committer\":\"Committer\",\"branch\":\"Branch\",\"commit\":\"Commit\",\"message\":\"Message\",\"started_at\":\"Started\",\"duration\":\"Duration\",\"finished_at\":\"Finished\"},\"builds\":{\"name\":\"Build\",\"messages\":{\"sponsored_by\":\"This test suite was run on a worker box sponsored by\"},\"build_matrix\":\"Build Matrix\",\"allowed_failures\":\"Allowed Failures\",\"author\":\"Author\",\"config\":\"Config\",\"compare\":\"Compare\",\"committer\":\"Committer\",\"branch\":\"Branch\",\"commit\":\"Commit\",\"message\":\"Message\",\"started_at\":\"Started\",\"duration\":\"Duration\",\"finished_at\":\"Finished\",\"show_more\":\"Show more\"},\"layouts\":{\"top\":{\"home\":\"Home\",\"blog\":\"Blog\",\"docs\":\"Docs\",\"stats\":\"Stats\",\"github_login\":\"Sign in with Github\",\"profile\":\"Profile\",\"sign_out\":\"Sign Out\",\"admin\":\"Admin\"},\"application\":{\"fork_me\":\"Fork me on Github\",\"recent\":\"Recent\",\"search\":\"Search\",\"sponsers\":\"Sponsors\",\"sponsors_link\":\"See all of our amazing sponsors &rarr;\",\"my_repositories\":\"My Repositories\"},\"about\":{\"alpha\":\"This stuff is alpha.\",\"messages\":{\"alpha\":\"Please do <strong>not</strong> consider this a stable service. We're still far from that! More info <a href='https://github.com/travis-ci'>here.</a>\"},\"join\":\"Join us and help!\",\"mailing_list\":\"Mailing List\",\"repository\":\"Repository\",\"twitter\":\"Twitter\"},\"mobile\":{\"author\":\"Author\",\"build\":\"Build\",\"build_matrix\":\"Build Matrix\",\"commit\":\"Commit\",\"committer\":\"Committer\",\"compare\":\"Compare\",\"config\":\"Config\",\"duration\":\"Duration\",\"finished_at\":\"Finished at\",\"job\":\"Job\",\"log\":\"Log\"}},\"profiles\":{\"show\":{\"email\":\"Email\",\"github\":\"Github\",\"message\":{\"your_repos\":\"  Flick the switches below to turn on the Travis service hook for your projects, then push to GitHub.\",\"config\":\"how to configure custom build options\"},\"messages\":{\"notice\":\"To get started, please read our <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">Getting Started guide</a>.\\n  <small>It will only take a couple of minutes.</small>\"},\"token\":\"Token\",\"your_repos\":\"Your Repositories\",\"update\":\"Update\",\"update_locale\":\"Update\",\"your_locale\":\"Your Locale\"}},\"statistics\":{\"index\":{\"count\":\"Count\",\"repo_growth\":\"Repository Growth\",\"total_projects\":\"Total Projects/Repositories\",\"build_count\":\"Build Count\",\"last_month\":\"last month\",\"total_builds\":\"Total Builds\"}},\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"fr\":\"Français\",\"ja\":\"日本語\",\"nb\":\"Norsk Bokmål\",\"pl\":\"Polski\",\"ru\":\"Русский\",\"nl\":\"Nederlands\",\"pt-BR\":\"português brasileiro\"}},\"es\":{\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} hora\",\"other\":\"%{count} horas\"},\"minutes_exact\":{\"one\":\"%{count} minuto\",\"other\":\"%{count} minutos\"},\"seconds_exact\":{\"one\":\"%{count} segundo\",\"other\":\"%{count} segundos\"}}},\"workers\":\"Procesos\",\"queue\":\"Cola\",\"no_job\":\"No hay trabajos\",\"repositories\":{\"branch\":\"Rama\",\"image_url\":\"Imagen URL\",\"markdown\":\"Markdown\",\"textile\":\"Textile\",\"rdoc\":\"RDOC\",\"commit\":\"Commit\",\"message\":\"Mensaje\",\"started_at\":\"Iniciado\",\"duration\":\"Duración\",\"finished_at\":\"Finalizado\",\"tabs\":{\"current\":\"Actual\",\"build_history\":\"Histórico\",\"branches\":\"Ramas\",\"build\":\"Builds\",\"job\":\"Trabajo\"}},\"build\":{\"job\":\"Trabajo\",\"duration\":\"Duración\",\"finished_at\":\"Finalizado\"},\"jobs\":{\"messages\":{\"sponsored_by\":\"Esta serie de tests han sido ejecutados en una caja de Proceso patrocinada por\"},\"build_matrix\":\"Matriz de Builds\",\"allowed_failures\":\"Fallos Permitidos\",\"author\":\"Autor\",\"config\":\"Configuración\",\"compare\":\"Comparar\",\"committer\":\"Committer\",\"branch\":\"Rama\",\"commit\":\"Commit\",\"message\":\"Mensaje\",\"started_at\":\"Iniciado\",\"duration\":\"Duración\",\"finished_at\":\"Finalizado\",\"sponsored_by\":\"Patrocinado por\"},\"builds\":{\"name\":\"Build\",\"messages\":{\"sponsored_by\":\"Esta serie de tests han sido ejecutados en una caja de Proceso patrocinada por\"},\"build_matrix\":\"Matriz de Builds\",\"allowed_failures\":\"Fallos Permitidos\",\"author\":\"Autor\",\"config\":\"Configuración\",\"compare\":\"Comparar\",\"committer\":\"Committer\",\"branch\":\"Rama\",\"commit\":\"Commit\",\"message\":\"Mensaje\",\"started_at\":\"Iniciado\",\"duration\":\"Duración\",\"finished_at\":\"Finalizado\"},\"layouts\":{\"top\":{\"home\":\"Inicio\",\"blog\":\"Blog\",\"docs\":\"Documentación\",\"stats\":\"Estadísticas\",\"github_login\":\"Iniciar sesión con Github\",\"profile\":\"Perfil\",\"sign_out\":\"Desconectar\",\"admin\":\"Admin\"},\"application\":{\"fork_me\":\"Hazme un Fork en Github\",\"recent\":\"Reciente\",\"search\":\"Buscar\",\"sponsers\":\"Patrocinadores\",\"sponsors_link\":\"Ver todos nuestros patrocinadores &rarr;\",\"my_repositories\":\"Mis Repositorios\"},\"about\":{\"alpha\":\"Esto es alpha.\",\"messages\":{\"alpha\":\"Por favor <strong>no</strong> considereis esto un servicio estable. Estamos estamos aún lejos de ello! Más información <a href='https://github.com/travis-ci'>aquí.</a>\"},\"join\":\"Únetenos y ayudanos!\",\"mailing_list\":\"Lista de Correos\",\"repository\":\"Repositorio\",\"twitter\":\"Twitter\"}},\"profiles\":{\"show\":{\"email\":\"Correo electrónico\",\"github\":\"Github\",\"message\":{\"your_repos\":\"  Activa los interruptores para inicial el  Travis service hook para tus proyectos, y haz un Push en GitHub.<br />\\n  Para probar varias versiones de ruby, mira\",\"config\":\"como configurar tus propias opciones para el Build\"},\"messages\":{\"notice\":\"Para comenzar, por favor lee nuestra <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">Guía de Inicio </a>.\\n  <small>Solo tomará unos pocos minutos.</small>\"},\"token\":\"Token\",\"your_repos\":\"Tus repositorios\",\"update\":\"Actualizar\",\"update_locale\":\"Actualizar\",\"your_locale\":\"Tu Idioma\"}},\"statistics\":{\"index\":{\"count\":\"Número\",\"repo_growth\":\"Crecimiento de Repositorios\",\"total_projects\":\"Total de Proyectos/Repositorios\",\"build_count\":\"Número de Builds\",\"last_month\":\"mes anterior\",\"total_builds\":\"Total de Builds\"}},\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"fr\":\"Français\",\"ja\":\"日本語\",\"nb\":\"Norsk Bokmål\",\"pl\":\"Polski\",\"ru\":\"Русский\",\"nl\":\"Nederlands\",\"pt-BR\":\"português brasileiro\"}},\"fr\":{\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} heure\",\"other\":\"%{count} heures\"},\"minutes_exact\":{\"one\":\"%{count} minute\",\"other\":\"%{count} minutes\"},\"seconds_exact\":{\"one\":\"%{count} seconde\",\"other\":\"%{count} secondes\"}}},\"workers\":\"Processus\",\"queue\":\"File\",\"no_job\":\"Pas de tâches\",\"repositories\":{\"branch\":\"Branche\",\"image_url\":\"Image\",\"markdown\":\"Markdown\",\"textile\":\"Textile\",\"rdoc\":\"RDOC\",\"commit\":\"Commit\",\"message\":\"Message\",\"started_at\":\"Commencé\",\"duration\":\"Durée\",\"finished_at\":\"Terminé\",\"tabs\":{\"current\":\"Actuel\",\"build_history\":\"Historique des tâches\",\"branches\":\"Résumé des branches\",\"build\":\"Construction\",\"job\":\"Tâche\"}},\"build\":{\"job\":\"Tâche\",\"duration\":\"Durée\",\"finished_at\":\"Terminé\"},\"jobs\":{\"messages\":{\"sponsored_by\":\"Cette série de tests a été exécutée sur une machine sponsorisée par\"},\"build_matrix\":\"Matrice des versions\",\"allowed_failures\":\"Échecs autorisés\",\"author\":\"Auteur\",\"config\":\"Config\",\"compare\":\"Comparer\",\"committer\":\"Committeur\",\"branch\":\"Branche\",\"commit\":\"Commit\",\"message\":\"Message\",\"started_at\":\"Commencé\",\"duration\":\"Durée\",\"finished_at\":\"Terminé\",\"sponsored_by\":\"Cette série de tests a été exécutée sur une machine sponsorisée par\"},\"builds\":{\"name\":\"Version\",\"messages\":{\"sponsored_by\":\"Cette série de tests a été exécutée sur une machine sponsorisée par\"},\"build_matrix\":\"Matrice des versions\",\"allowed_failures\":\"Échecs autorisés\",\"author\":\"Auteur\",\"config\":\"Config\",\"compare\":\"Comparer\",\"committer\":\"Committeur\",\"branch\":\"Branche\",\"commit\":\"Commit\",\"message\":\"Message\",\"started_at\":\"Commencé\",\"duration\":\"Durée\",\"finished_at\":\"Terminé\"},\"layouts\":{\"top\":{\"home\":\"Accueil\",\"blog\":\"Blog\",\"docs\":\"Documentation\",\"stats\":\"Statistiques\",\"github_login\":\"Connection Github\",\"profile\":\"Profil\",\"sign_out\":\"Déconnection\",\"admin\":\"Admin\"},\"application\":{\"fork_me\":\"Faites un Fork sur Github\",\"recent\":\"Récent\",\"search\":\"Chercher\",\"sponsers\":\"Sponsors\",\"sponsors_link\":\"Voir tous nos extraordinaire sponsors &rarr;\",\"my_repositories\":\"Mes dépôts\"},\"about\":{\"alpha\":\"Ceci est en alpha.\",\"messages\":{\"alpha\":\"S'il vous plaît ne considérez <strong>pas</strong> ce service comme étant stable. Nous sommes loin de ça! Plus d'infos <a href='https://github.com/travis-ci'>ici.</a>\"},\"join\":\"Joignez-vous à nous et aidez-nous!\",\"mailing_list\":\"Liste de distribution\",\"repository\":\"Dépôt\",\"twitter\":\"Twitter\"},\"mobile\":{\"author\":\"Auteur\",\"build\":\"Version\",\"build_matrix\":\"Matrice des versions\",\"commit\":\"Commit\",\"committer\":\"Committeur\",\"compare\":\"Comparer\",\"config\":\"Config\",\"duration\":\"Durée\",\"finished_at\":\"Terminé à\",\"job\":\"Tâche\",\"log\":\"Journal\"}},\"profiles\":{\"show\":{\"github\":\"Github\",\"message\":{\"your_repos\":\"Utilisez les boutons ci-dessous pour activer Travis sur vos projets puis déployez sur GitHub.<br />\\nPour tester sur plus de versions de ruby, voir\",\"config\":\"comment configurer des options de version personnalisées\"},\"messages\":{\"notice\":\"Pour commencer, veuillez lire notre <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">guide de démarrage</a>.\\n <small>Cela ne vous prendra que quelques minutes.</small>\"},\"token\":\"Jeton\",\"your_repos\":\"Vos dépôts\",\"email\":\"Courriel\",\"update\":\"Modifier\",\"update_locale\":\"Modifier\",\"your_locale\":\"Votre langue\"}},\"statistics\":{\"index\":{\"count\":\"Décompte\",\"repo_growth\":\"Croissance de dépôt\",\"total_projects\":\"Total des projets/dépôts\",\"build_count\":\"Décompte des versions\",\"last_month\":\"mois dernier\",\"total_builds\":\"Total des versions\"}},\"admin\":{\"actions\":{\"create\":\"créer\",\"created\":\"créé\",\"delete\":\"supprimer\",\"deleted\":\"supprimé\",\"update\":\"mise à jour\",\"updated\":\"mis à jour\"},\"credentials\":{\"log_out\":\"Déconnection\"},\"delete\":{\"confirmation\":\"Oui, je suis sure\",\"flash_confirmation\":\"%{name} a été détruit avec succès\"},\"flash\":{\"error\":\"%{name} n'a pas pu être %{action}\",\"noaction\":\"Aucune action n'a été entreprise\",\"successful\":\"%{name} a réussi à %{action}\"},\"history\":{\"name\":\"Historique\",\"no_activity\":\"Aucune activité\",\"page_name\":\"Historique pour %{name}\"},\"list\":{\"add_new\":\"Ajouter un nouveau\",\"delete_action\":\"Supprimer\",\"delete_selected\":\"Supprimer la sélection\",\"edit_action\":\"Modifier\",\"search\":\"Rechercher\",\"select\":\"Sélectionner le %{name} à modifier\",\"select_action\":\"Sélectionner\",\"show_all\":\"Montrer tout\"},\"new\":{\"basic_info\":\"Information de base\",\"cancel\":\"Annuler\",\"chosen\":\"%{name} choisi\",\"chose_all\":\"Choisir tout\",\"clear_all\":\"Déselectionner tout\",\"many_chars\":\"caractères ou moins\",\"one_char\":\"caractère.\",\"optional\":\"Optionnel\",\"required\":\"Requis\",\"save\":\"Sauvegarder\",\"save_and_add_another\":\"Sauvegarder et en ajouter un autre\",\"save_and_edit\":\"Sauvegarder et modifier\",\"select_choice\":\"Faites vos choix et cliquez\"},\"dashboard\":{\"add_new\":\"Ajouter un nouveau\",\"last_used\":\"Dernière utilisation\",\"model_name\":\"Nom du modèle\",\"modify\":\"Modification\",\"name\":\"Tableau de bord\",\"pagename\":\"Administration du site\",\"records\":\"Enregistrements\",\"show\":\"Voir\",\"ago\":\"plus tôt\"}},\"home\":{\"name\":\"accueil\"},\"repository\":{\"duration\":\"Durée\"},\"devise\":{\"confirmations\":{\"confirmed\":\"Votre compte a été crée avec succès. Vous être maintenant connecté.\",\"send_instructions\":\"Vous allez recevoir un courriel avec les instructions de confirmation de votre compte dans quelques minutes.\"},\"failure\":{\"inactive\":\"Votre compte n'a pas encore été activé.\",\"invalid\":\"Adresse courriel ou mot de passe invalide.\",\"invalid_token\":\"Jeton d'authentification invalide.\",\"locked\":\"Votre compte est bloqué.\",\"timeout\":\"Votre session est expirée, veuillez vous reconnecter pour continuer.\",\"unauthenticated\":\"Vous devez vous connecter ou vous enregistrer afin de continuer\",\"unconfirmed\":\"Vous devez confirmer votre compte avant de continuer.\"},\"mailer\":{\"confirmation_instructions\":{\"subject\":\"Instructions de confirmations\"},\"reset_password_instructions\":{\"subject\":\"Instruction de remise à zéro du mot de passe\"},\"unlock_instructions\":{\"subject\":\"Instruction de débloquage\"}},\"passwords\":{\"send_instructions\":\"Vous recevrez un courriel avec les instructions de remise à zéro du mot de passe dans quelques minutes.\",\"updated\":\"Votre mot de passe a été changé avec succès. Vous êtes maintenant connecté.\"},\"registrations\":{\"destroyed\":\"Au revoir! Votre compte a été annulé avec succès. Nous espérons vous revoir bientôt.\",\"signed_up\":\"Vous êtes enregistré avec succès. Si activé, une confirmation vous a été envoyé par courriel.\",\"updated\":\"Votre compte a été mis a jour avec succès\"},\"sessions\":{\"signed_in\":\"Connecté avec succès\",\"signed_out\":\"Déconnecté avec succès\"},\"unlocks\":{\"send_instructions\":\"Vous recevrez un courriel contenant les instructions pour débloquer votre compte dans quelques minutes.\",\"unlocked\":\"Votre compte a été débloqué avec succès.\"}},\"errors\":{\"messages\":{\"already_confirmed\":\"étais déja confirmé\",\"not_found\":\"n'a pas été trouvé\",\"not_locked\":\"n'étais pas bloqué\"}},\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"ja\":\"日本語\",\"ru\":\"Русский\",\"fr\":\"Français\",\"nb\":\"Norsk Bokmål\",\"pl\":\"Polski\",\"nl\":\"Nederlands\",\"pt-BR\":\"português brasileiro\"}},\"ja\":{\"workers\":\"ワーカー\",\"queue\":\"キュー\",\"no_job\":\"ジョブはありません\",\"repositories\":{\"branch\":\"ブランチ\",\"image_url\":\"画像URL\",\"markdown\":\".md\",\"textile\":\".textile\",\"rdoc\":\".rdoc\",\"commit\":\"コミット\",\"message\":\"メッセージ\",\"started_at\":\"開始時刻\",\"duration\":\"処理時間\",\"finished_at\":\"終了時刻\",\"tabs\":{\"current\":\"最新\",\"build_history\":\"ビルド履歴\",\"branches\":\"ブランチまとめ\",\"build\":\"ビルド\",\"job\":\"ジョブ\"}},\"build\":{\"job\":\"ジョブ\",\"duration\":\"処理時間\",\"finished_at\":\"終了時刻\"},\"jobs\":{\"messages\":{\"sponsored_by\":\"このテストは以下のスポンサーの協力で行いました。\"},\"build_matrix\":\"ビルドマトリクス\",\"allowed_failures\":\"失敗許容範囲内\",\"author\":\"制作者\",\"config\":\"設定\",\"compare\":\"比較\",\"committer\":\"コミット者\",\"branch\":\"ブランチ\",\"commit\":\"コミット\",\"message\":\"メッセージ\",\"started_at\":\"開始時刻\",\"duration\":\"処理時間\",\"finished_at\":\"終了時刻\"},\"builds\":{\"name\":\"ビルド\",\"messages\":{\"sponsored_by\":\"このテストは以下のスポンサーの協力で行いました。\"},\"build_matrix\":\"失敗許容範囲外\",\"allowed_failures\":\"失敗許容範囲内\",\"author\":\"制作者\",\"config\":\"設定\",\"compare\":\"比較\",\"committer\":\"コミット者\",\"branch\":\"ブランチ\",\"commit\":\"コミット\",\"message\":\"メッセージ\",\"started_at\":\"開始時刻\",\"duration\":\"処理時間\",\"finished_at\":\"終了時刻\"},\"layouts\":{\"about\":{\"alpha\":\"まだアルファですよ!\",\"join\":\"参加してみよう!\",\"mailing_list\":\"メールリスト\",\"messages\":{\"alpha\":\"Travis-ciは安定したサービスまで後一歩!詳しくは<a href='https://github.com/travis-ci'>こちら</a>\"},\"repository\":\"リポジトリ\",\"twitter\":\"ツイッター\"},\"application\":{\"fork_me\":\"Githubでフォークしよう\",\"my_repositories\":\"マイリポジトリ\",\"recent\":\"最近\",\"search\":\"検索\",\"sponsers\":\"スポンサー\",\"sponsors_link\":\"スポンサーをもっと見る &rarr;\"},\"top\":{\"blog\":\"ブログ\",\"docs\":\"Travisとは?\",\"github_login\":\"Githubでログイン\",\"home\":\"ホーム\",\"profile\":\"プロフィール\",\"sign_out\":\"ログアウト\",\"stats\":\"統計\",\"admin\":\"管理\"},\"mobile\":{\"author\":\"制作者\",\"build\":\"ビルド\",\"build_matrix\":\"ビルドマトリクス\",\"commit\":\"コミット\",\"committer\":\"コミット者\",\"compare\":\"比較\",\"config\":\"設定\",\"duration\":\"処理時間\",\"finished_at\":\"終了時刻\",\"job\":\"ジョブ\",\"log\":\"ログ\"}},\"profiles\":{\"show\":{\"github\":\"Github\",\"email\":\"メール\",\"message\":{\"config\":\"詳細設定\",\"your_repos\":\"以下のスイッチを設定し、Travis-ciを有効にします。Githubへプッシュしたらビルドは自動的に開始します。複数バーションや細かい設定はこちらへ:\"},\"messages\":{\"notice\":\"まずは<a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">Travisのはじめ方</a>を参照してください。\"},\"token\":\"トークン\",\"your_repos\":\"リポジトリ\",\"update\":\"更新\",\"update_locale\":\"更新\",\"your_locale\":\"言語設定\"}},\"statistics\":{\"index\":{\"build_count\":\"ビルド数\",\"count\":\"数\",\"last_month\":\"先月\",\"repo_growth\":\"リポジトリ\",\"total_builds\":\"合計ビルド数\",\"total_projects\":\"合計リポジトリ\"}},\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"fr\":\"Français\",\"ja\":\"日本語\",\"nb\":\"Norsk Bokmål\",\"pl\":\"Polski\",\"ru\":\"Русский\",\"nl\":\"Nederlands\",\"pt-BR\":\"português brasileiro\"}},\"nb\":{\"admin\":{\"actions\":{\"create\":\"opprett\",\"created\":\"opprettet\",\"delete\":\"slett\",\"deleted\":\"slettet\",\"update\":\"oppdater\",\"updated\":\"oppdatert\"},\"credentials\":{\"log_out\":\"Logg ut\"},\"dashboard\":{\"add_new\":\"Legg til ny\",\"ago\":\"siden\",\"last_used\":\"Sist brukt\",\"model_name\":\"Modell\",\"modify\":\"Rediger\",\"name\":\"Dashbord\",\"pagename\":\"Nettstedsadministrasjon\",\"records\":\"Oppføringer\",\"show\":\"Vis\"},\"delete\":{\"confirmation\":\"Ja, jeg er sikker\",\"flash_confirmation\":\"%{name} ble slettet\"},\"flash\":{\"error\":\"%{name} kunne ikke bli %{action}\",\"noaction\":\"Ingen handlinger ble utført\",\"successful\":\"%{name} ble %{action}\"},\"history\":{\"name\":\"Logg\",\"no_activity\":\"Ingen aktivitet\",\"page_name\":\"Logg for %{name}\"},\"list\":{\"add_new\":\"Legg til ny\",\"delete_action\":\"Slett\",\"delete_selected\":\"Slett valgte\",\"edit_action\":\"Rediger\",\"search\":\"Søk\",\"select\":\"Velg %{name} for å redigere\",\"select_action\":\"Velg\",\"show_all\":\"Vis alle \"},\"new\":{\"basic_info\":\"Basisinformasjon\",\"cancel\":\"Avbryt\",\"chosen\":\"Valgt %{name}\",\"chose_all\":\"Velg alle\",\"clear_all\":\"Fjern alle\",\"many_chars\":\"eller færre tegn.\",\"one_char\":\"tegn.\",\"optional\":\"Valgfri\",\"required\":\"Påkrevd\",\"save\":\"Lagre\",\"save_and_add_another\":\"Lagre og legg til ny\",\"save_and_edit\":\"Lagre og rediger\",\"select_choice\":\"Kryss av for dine valg og klikk\"}},\"build\":{\"duration\":\"Varighet\",\"finished_at\":\"Fullført\",\"job\":\"Jobb\"},\"builds\":{\"allowed_failures\":\"Tillatte feil\",\"author\":\"Forfatter\",\"branch\":\"Gren\",\"build_matrix\":\"Jobbmatrise\",\"commit\":\"Innsending\",\"committer\":\"Innsender\",\"compare\":\"Sammenlign\",\"config\":\"Oppsett\",\"duration\":\"Varighet\",\"finished_at\":\"Fullført\",\"message\":\"Beskrivelse\",\"messages\":{\"sponsored_by\":\"Denne testen ble kjørt på en maskin sponset av\"},\"name\":\"Jobb\",\"started_at\":\"Startet\"},\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} time\",\"other\":\"%{count} timer\"},\"minutes_exact\":{\"one\":\"%{count} minutt\",\"other\":\"%{count} minutter\"},\"seconds_exact\":{\"one\":\"%{count} sekund\",\"other\":\"%{count} sekunder\"}}},\"devise\":{\"confirmations\":{\"confirmed\":\"Din konto er aktivert og du er nå innlogget.\",\"send_instructions\":\"Om noen få minutter så vil du få en e-post med informasjon om hvordan du bekrefter kontoen din.\"},\"failure\":{\"inactive\":\"Kontoen din har ikke blitt aktivert enda.\",\"invalid\":\"Ugyldig e-post eller passord.\",\"invalid_token\":\"Ugyldig autentiseringskode.\",\"locked\":\"Kontoen din er låst.\",\"timeout\":\"Du ble logget ut siden på grunn av mangel på aktivitet, vennligst logg inn på nytt.\",\"unauthenticated\":\"Du må logge inn eller registrere deg for å fortsette.\",\"unconfirmed\":\"Du må bekrefte kontoen din før du kan fortsette.\"},\"mailer\":{\"confirmation_instructions\":{\"subject\":\"Bekreftelsesinformasjon\"},\"reset_password_instructions\":{\"subject\":\"Instruksjoner for å få nytt passord\"},\"unlock_instructions\":{\"subject\":\"Opplåsningsinstruksjoner\"}},\"passwords\":{\"send_instructions\":\"Om noen få minutter så vil du få en epost med informasjon om hvordan du kan få et nytt passord.\",\"updated\":\"Passordet ditt ble endret, og du er logget inn.\"},\"registrations\":{\"destroyed\":\"Adjø! Kontoen din ble kansellert. Vi håper vi ser deg igjen snart.\",\"signed_up\":\"Du er nå registrert.\",\"updated\":\"Kontoen din ble oppdatert.\"},\"sessions\":{\"signed_in\":\"Du er nå logget inn.\",\"signed_out\":\"Du er nå logget ut.\"},\"unlocks\":{\"send_instructions\":\"Om noen få minutter så kommer du til å få en e-post med informasjon om hvordan du kan låse opp kontoen din.\",\"unlocked\":\"Kontoen din ble låst opp, og du er nå logget inn igjen.\"}},\"errors\":{\"messages\":{\"already_confirmed\":\"har allerede blitt bekreftet\",\"not_found\":\"ikke funnnet\",\"not_locked\":\"var ikke låst\"}},\"home\":{\"name\":\"hjem\"},\"jobs\":{\"allowed_failures\":\"Tillatte feil\",\"author\":\"Forfatter\",\"branch\":\"Gren\",\"build_matrix\":\"Jobbmatrise\",\"commit\":\"Innsending\",\"committer\":\"Innsender\",\"compare\":\"Sammenlign\",\"config\":\"Oppsett\",\"duration\":\"Varighet\",\"finished_at\":\"Fullført\",\"message\":\"Beskrivelse\",\"messages\":{\"sponsored_by\":\"Denne testserien ble kjørt på en maskin sponset av\"},\"started_at\":\"Startet\"},\"layouts\":{\"about\":{\"alpha\":\"Dette er alfa-greier.\",\"join\":\"Bli med og hjelp oss!\",\"mailing_list\":\"E-postliste\",\"messages\":{\"alpha\":\"Dette er <strong>ikke</strong> en stabil tjeneste. Vi har fremdeles et stykke igjen! Mer informasjon finner du <a href=\\\"https://github.com/travis-ci\\\">her</a>.\"},\"repository\":\"Kodelager\",\"twitter\":\"Twitter.\"},\"application\":{\"fork_me\":\"Se koden på Github\",\"my_repositories\":\"Mine kodelagre\",\"recent\":\"Nylig\",\"search\":\"Søk\",\"sponsers\":\"Sponsorer\",\"sponsors_link\":\"Se alle de flotte sponsorene våre &rarr;\"},\"mobile\":{\"author\":\"Forfatter\",\"build\":\"Jobb\",\"build_matrix\":\"Jobbmatrise\",\"commit\":\"Innsending\",\"committer\":\"Innsender\",\"compare\":\"Sammenlign\",\"config\":\"Oppsett\",\"duration\":\"Varighet\",\"finished_at\":\"Fullført\",\"job\":\"Jobb\",\"log\":\"Logg\"},\"top\":{\"admin\":\"Administrator\",\"blog\":\"Blogg\",\"docs\":\"Dokumentasjon\",\"github_login\":\"Logg inn med Github\",\"home\":\"Hjem\",\"profile\":\"Profil\",\"sign_out\":\"Logg ut\",\"stats\":\"Statistikk\"}},\"no_job\":\"Ingen jobber finnnes\",\"profiles\":{\"show\":{\"email\":\"E-post\",\"github\":\"Github\",\"message\":{\"config\":\"hvordan sette opp egne jobbinnstillinger\",\"your_repos\":\"Slå\\u0010 på Travis for prosjektene dine ved å dra i bryterne under, og send koden til Github.<br />\\nFor å teste mot flere ruby-versjoner, se dokumentasjonen for\"},\"messages\":{\"notice\":\"For å komme i gang, vennligst les <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">kom-i-gang-veivisereren</a> vår. <small>Det tar bare et par minutter.</small>\"},\"token\":\"Kode\",\"update\":\"Oppdater\",\"update_locale\":\"Oppdater\",\"your_locale\":\"Ditt språk\",\"your_repos\":\"Dine kodelagre\"}},\"queue\":\"Kø\",\"repositories\":{\"branch\":\"Gren\",\"commit\":\"Innsender\",\"duration\":\"Varighet\",\"finished_at\":\"Fullført\",\"image_url\":\"Bilde-URL\",\"markdown\":\"Markdown\",\"message\":\"Beskrivelse\",\"rdoc\":\"RDOC\",\"started_at\":\"Startet\",\"tabs\":{\"branches\":\"Grensammendrag\",\"build\":\"Jobb\",\"build_history\":\"Jobblogg\",\"current\":\"Siste\",\"job\":\"Jobb\"},\"textile\":\"Textile\"},\"repository\":{\"duration\":\"Varighet\"},\"statistics\":{\"index\":{\"build_count\":\"Antall jobber\",\"count\":\"Antall\",\"last_month\":\"siste måned\",\"repo_growth\":\"Vekst i kodelager\",\"total_builds\":\"Totale jobber\",\"total_projects\":\"Antall prosjekter/kodelagre\"}},\"workers\":\"Arbeidere\",\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"ja\":\"日本語\",\"ru\":\"Русский\",\"fr\":\"Français\",\"nb\":\"Norsk Bokmål\",\"pl\":\"Polski\",\"nl\":\"Nederlands\",\"pt-BR\":\"português brasileiro\"}},\"nl\":{\"admin\":{\"actions\":{\"create\":\"aanmaken\",\"created\":\"aangemaakt\",\"delete\":\"verwijderen\",\"deleted\":\"verwijderd\",\"update\":\"bijwerken\",\"updated\":\"bijgewerkt\"},\"credentials\":{\"log_out\":\"Afmelden\"},\"dashboard\":{\"add_new\":\"Nieuwe toevoegen\",\"ago\":\"geleden\",\"last_used\":\"Laatst gebruikt\",\"model_name\":\"Model naam\",\"modify\":\"Wijzigen\",\"pagename\":\"Site administratie\",\"show\":\"Laten zien\",\"records\":\"Gegevens\"},\"delete\":{\"confirmation\":\"Ja, ik ben zeker\",\"flash_confirmation\":\"%{name} is vernietigd\"},\"flash\":{\"error\":\"%{name} kon niet worden %{action}\",\"noaction\":\"Er zijn geen acties genomen\",\"successful\":\"%{name} is %{action}\"},\"history\":{\"name\":\"Geschiedenis\",\"no_activity\":\"Geen activiteit\",\"page_name\":\"Geschiedenis van %{name}\"},\"list\":{\"add_new\":\"Nieuwe toevoegen\",\"delete_action\":\"Verwijderen\",\"delete_selected\":\"Verwijder geselecteerden\",\"edit_action\":\"Bewerken\",\"search\":\"Zoeken\",\"select\":\"Selecteer %{name} om te bewerken\",\"select_action\":\"Selecteer\",\"show_all\":\"Laat allen zien\"},\"new\":{\"basic_info\":\"Basisinfo\",\"cancel\":\"Annuleren\",\"chosen\":\"%{name} gekozen\",\"chose_all\":\"Kies allen\",\"clear_all\":\"Deselecteer allen\",\"many_chars\":\"tekens of minder.\",\"one_char\":\"teken.\",\"optional\":\"Optioneel\",\"required\":\"Vereist\",\"save\":\"Opslaan\",\"save_and_add_another\":\"Opslaan en een nieuwe toevoegen\",\"save_and_edit\":\"Opslaan en bewerken\",\"select_choice\":\"Selecteer uw keuzes en klik\"}},\"build\":{\"duration\":\"Duur\",\"finished_at\":\"Voltooid\",\"job\":\"Taak\"},\"builds\":{\"allowed_failures\":\"Toegestane mislukkingen\",\"author\":\"Auteur\",\"branch\":\"Tak\",\"build_matrix\":\"Bouw Matrix\",\"compare\":\"Vergelijk\",\"config\":\"Configuratie\",\"duration\":\"Duur\",\"finished_at\":\"Voltooid\",\"message\":\"Bericht\",\"messages\":{\"sponsored_by\":\"Deze tests zijn gedraaid op een machine gesponsord door\"},\"name\":\"Bouw\",\"started_at\":\"Gestart\",\"commit\":\"Commit\",\"committer\":\"Committer\"},\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} uur\",\"other\":\"%{count} uren\"},\"minutes_exact\":{\"one\":\"%{count} minuut\",\"other\":\"%{count} minuten\"},\"seconds_exact\":{\"one\":\"%{count} seconde\",\"other\":\"%{count} seconden\"}}},\"devise\":{\"confirmations\":{\"confirmed\":\"Uw account is bevestigd. U wordt nu ingelogd.\",\"send_instructions\":\"Binnen enkele minuten zal u een email ontvangen met instructies om uw account te bevestigen.\"},\"failure\":{\"inactive\":\"Uw account is nog niet geactiveerd.\",\"invalid\":\"Ongeldig email adres of wachtwoord.\",\"invalid_token\":\"Ongeldig authenticatie token.\",\"locked\":\"Uw account is vergrendeld.\",\"timeout\":\"Uw sessie is verlopen, gelieve opnieuw in te loggen om verder te gaan.\",\"unauthenticated\":\"U moet inloggen of u registeren voordat u verder gaat.\",\"unconfirmed\":\"U moet uw account bevestigen voordat u verder gaat.\"},\"mailer\":{\"confirmation_instructions\":{\"subject\":\"Bevestigings-instructies\"},\"reset_password_instructions\":{\"subject\":\"Wachtwoord herstel instructies\"},\"unlock_instructions\":{\"subject\":\"Ontgrendel-instructies\"}},\"passwords\":{\"send_instructions\":\"Binnen enkele minuten zal u een email krijgen met instructies om uw wachtwoord opnieuw in te stellen.\",\"updated\":\"Uw wachtwoord is veranderd. U wordt nu ingelogd.\"},\"registrations\":{\"destroyed\":\"Dag! Uw account is geannuleerd. We hopen u vlug terug te zien.\",\"signed_up\":\"Uw registratie is voltooid. Als het ingeschakeld is wordt een bevestiging naar uw email adres verzonden.\",\"updated\":\"Het bijwerken van uw account is gelukt.\"},\"sessions\":{\"signed_in\":\"Inloggen gelukt.\",\"signed_out\":\"Uitloggen gelukt.\"},\"unlocks\":{\"send_instructions\":\"Binnen enkele minuten zal u een email krijgen met instructies om uw account te ontgrendelen.\",\"unlocked\":\"Uw account is ontgrendeld. U wordt nu ingelogd.\"}},\"errors\":{\"messages\":{\"already_confirmed\":\"was al bevestigd\",\"not_found\":\"niet gevonden\",\"not_locked\":\"was niet vergrendeld\"}},\"jobs\":{\"allowed_failures\":\"Toegestane mislukkingen\",\"author\":\"Auteur\",\"branch\":\"Tak\",\"build_matrix\":\"Bouw matrix\",\"compare\":\"Vergelijk\",\"config\":\"Configuratie\",\"duration\":\"Duur\",\"finished_at\":\"Voltooid\",\"message\":\"Bericht\",\"messages\":{\"sponsored_by\":\"Deze testen zijn uitgevoerd op een machine gesponsord door\"},\"started_at\":\"Gestart\",\"commit\":\"Commit\",\"committer\":\"Committer\"},\"layouts\":{\"about\":{\"alpha\":\"Dit is in alfa-stadium.\",\"join\":\"Doe met ons mee en help!\",\"mailing_list\":\"Mailing lijst\",\"messages\":{\"alpha\":\"Gelieve deze service <strong>niet</strong> te beschouwen als stabiel. Daar zijn we nog lang niet! Meer info <a href='https://github.com/travis-ci'>hier.</a>\"},\"repository\":\"Repository\",\"twitter\":\"Twitter\"},\"application\":{\"fork_me\":\"Maak een fork op Github\",\"my_repositories\":\"Mijn repositories\",\"recent\":\"Recent\",\"search\":\"Zoeken\",\"sponsers\":\"Sponsors\",\"sponsors_link\":\"Bekijk al onze geweldige sponsors &rarr;\"},\"mobile\":{\"author\":\"Auteur\",\"build\":\"Bouw\",\"build_matrix\":\"Bouw matrix\",\"compare\":\"Vergelijk\",\"config\":\"Configuratie\",\"duration\":\"Duur\",\"finished_at\":\"Voltooid op\",\"job\":\"Taak\",\"commit\":\"Commit\",\"committer\":\"Committer\",\"log\":\"Logboek\"},\"top\":{\"admin\":\"Administratie\",\"blog\":\"Blog\",\"docs\":\"Documentatie\",\"github_login\":\"Inloggen met Github\",\"home\":\"Home\",\"profile\":\"Profiel\",\"sign_out\":\"Uitloggen\",\"stats\":\"Statistieken\"}},\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"fr\":\"Français\",\"ja\":\"日本語\",\"nb\":\"Norsk Bokmål\",\"nl\":\"Nederlands\",\"pl\":\"Polski\",\"ru\":\"Русский\",\"pt-BR\":\"português brasileiro\"},\"no_job\":\"Er zijn geen taken\",\"profiles\":{\"show\":{\"email\":\"Email adres\",\"github\":\"Github\",\"message\":{\"config\":\"hoe eigen bouw-opties in te stellen\",\"your_repos\":\"Zet de schakelaars hieronder aan om de Travis hook voor uw projecten te activeren en push daarna naar Github<br />\\nOm te testen tegen meerdere rubies, zie\"},\"messages\":{\"notice\":\"Om te beginnen kunt u onze <a href=\\\\\\\"http://about.travis-ci.org/docs/user/getting-started/\\\\\\\">startersgids</a> lezen.\\\\n  <small>Het zal maar enkele minuten van uw tijd vergen.</small>\"},\"update\":\"Bijwerken\",\"update_locale\":\"Bijwerken\",\"your_locale\":\"Uw taal\",\"your_repos\":\"Uw repositories\",\"token\":\"Token\"}},\"queue\":\"Wachtrij\",\"repositories\":{\"branch\":\"Tak\",\"duration\":\"Duur\",\"finished_at\":\"Voltooid\",\"image_url\":\"Afbeeldings URL\",\"message\":\"Bericht\",\"started_at\":\"Gestart\",\"tabs\":{\"branches\":\"Tak samenvatting\",\"build\":\"Bouw\",\"build_history\":\"Bouw geschiedenis\",\"current\":\"Huidig\",\"job\":\"Taak\"},\"commit\":\"Commit\",\"markdown\":\"Markdown\",\"rdoc\":\"RDOC\",\"textile\":\"Textile\"},\"repository\":{\"duration\":\"Duur\"},\"statistics\":{\"index\":{\"build_count\":\"Bouw aantal\",\"count\":\"Aantal\",\"last_month\":\"voorbije maand\",\"repo_growth\":\"Repository groei\",\"total_builds\":\"Bouw totaal\",\"total_projects\":\"Projecten/Repository totaal\"}},\"workers\":\"Machines\",\"home\":{\"name\":\"Hoofdpagina\"}},\"pl\":{\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} godzina\",\"other\":\"%{count} godziny\"},\"minutes_exact\":{\"one\":\"%{count} minuta\",\"other\":\"%{count} minuty\"},\"seconds_exact\":{\"one\":\"%{count} sekunda\",\"other\":\"%{count} sekundy\"}}},\"workers\":\"Workers\",\"queue\":\"Kolejka\",\"no_job\":\"Brak zadań\",\"repositories\":{\"branch\":\"Gałąź\",\"image_url\":\"URL obrazka\",\"markdown\":\"Markdown\",\"textile\":\"Textile\",\"rdoc\":\"RDOC\",\"commit\":\"Commit\",\"message\":\"Opis\",\"started_at\":\"Rozpoczęto\",\"duration\":\"Czas trwania\",\"finished_at\":\"Zakończono\",\"tabs\":{\"current\":\"Aktualny\",\"build_history\":\"Historia Buildów\",\"branches\":\"Wszystkie Gałęzie\",\"build\":\"Build\",\"job\":\"Zadanie\"}},\"build\":{\"job\":\"Zadanie\",\"duration\":\"Czas trwania\",\"finished_at\":\"Zakończono\"},\"jobs\":{\"messages\":{\"sponsored_by\":\"Te testy zostały uruchomione na maszynie sponsorowanej przez\"},\"build_matrix\":\"Macierz Buildów\",\"allowed_failures\":\"Dopuszczalne Niepowodzenia\",\"author\":\"Autor\",\"config\":\"Konfiguracja\",\"compare\":\"Porównanie\",\"committer\":\"Committer\",\"branch\":\"Gałąź\",\"commit\":\"Commit\",\"message\":\"Opis\",\"started_at\":\"Rozpoczęto\",\"duration\":\"Czas trwania\",\"finished_at\":\"Zakończono\",\"sponsored_by\":\"Te testy zostały uruchomione na maszynie sponsorowanej przez\"},\"builds\":{\"name\":\"Build\",\"messages\":{\"sponsored_by\":\"Te testy zostały uruchomione na maszynie sponsorowanej przez\"},\"build_matrix\":\"Macierz Buildów\",\"allowed_failures\":\"Dopuszczalne Niepowodzenia\",\"author\":\"Autor\",\"config\":\"Konfiguracja\",\"compare\":\"Porównanie\",\"committer\":\"Komitujący\",\"branch\":\"Gałąź\",\"commit\":\"Commit\",\"message\":\"Opis\",\"started_at\":\"Rozpoczęto\",\"duration\":\"Czas trwania\",\"finished_at\":\"Zakończono\"},\"layouts\":{\"top\":{\"home\":\"Start\",\"blog\":\"Blog\",\"docs\":\"Dokumentacja\",\"stats\":\"Statystki\",\"github_login\":\"Zaloguj się przy pomocy Githuba\",\"profile\":\"Profil\",\"sign_out\":\"Wyloguj się\"},\"application\":{\"fork_me\":\"Fork me on Github\",\"recent\":\"Ostatnie\",\"search\":\"Wyniki\",\"sponsers\":\"Sponsorzy\",\"sponsors_link\":\"Zobacz naszych wszystkich wspaniałych sponsorów &rarr;\",\"my_repositories\":\"Moje repozytoria\"},\"about\":{\"alpha\":\"To wciąż jest wersja alpha.\",\"messages\":{\"alpha\":\"Proszę <strong>nie</strong> traktuj tego jako stabilnej usługi. Wciąż nam wiele do tego brakuje! Więcej informacji znajdziesz <a href='https://github.com/travis-ci'>tutaj.</a>\"},\"join\":\"Pomóż i dołącz do nas!\",\"mailing_list\":\"Lista mailingowa\",\"repository\":\"Repozytorium\",\"twitter\":\"Twitter\"},\"mobile\":{\"author\":\"Autor\",\"build\":\"Build\",\"build_matrix\":\"Macierz Buildów\",\"commit\":\"Commit\",\"committer\":\"Komitujący\",\"compare\":\"Porównianie\",\"config\":\"Konfiguracja\",\"duration\":\"Czas trwania\",\"finished_at\":\"Zakończono\",\"job\":\"Zadanie\",\"log\":\"Log\"}},\"profiles\":{\"show\":{\"email\":\"Email\",\"github\":\"Github\",\"message\":{\"your_repos\":\"  Przesuń suwak poniżej, aby włączyć Travisa, dla twoich projektów, a następnie umieść swój kod na GitHubie.<br />\\n Aby testować swój kod przy użyciu wielu wersji Rubiego, zobacz\",\"config\":\"jak skonfigurować niestandardowe opcje builda\"},\"messages\":{\"notice\":\"Aby zacząć, przeczytaj nasz <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">Przewodnik </a>.\\n  <small>Zajmie ci to tylko kilka minut.</small>\"},\"token\":\"Token\",\"your_repos\":\"Twoje repozytoria\"}},\"statistics\":{\"index\":{\"count\":\"Ilość\",\"repo_growth\":\"Przyrost repozytoriów\",\"total_projects\":\"Łącznie projektów/repozytoriów\",\"build_count\":\"Liczba buildów\",\"last_month\":\"ostatni miesiąc\",\"total_builds\":\"Łącznie Buildów\"}},\"date\":{\"abbr_day_names\":[\"nie\",\"pon\",\"wto\",\"śro\",\"czw\",\"pią\",\"sob\"],\"abbr_month_names\":[\"sty\",\"lut\",\"mar\",\"kwi\",\"maj\",\"cze\",\"lip\",\"sie\",\"wrz\",\"paź\",\"lis\",\"gru\"],\"day_names\":[\"niedziela\",\"poniedziałek\",\"wtorek\",\"środa\",\"czwartek\",\"piątek\",\"sobota\"],\"formats\":{\"default\":\"%d-%m-%Y\",\"long\":\"%B %d, %Y\",\"short\":\"%d %b\"},\"month_names\":[\"styczeń\",\"luty\",\"marzec\",\"kwiecień\",\"maj\",\"czerwiec\",\"lipiec\",\"sierpień\",\"wrzesień\",\"październik\",\"listopad\",\"grudzień\"],\"order\":[\"day\",\"month\",\"year\"]},\"errors\":{\"format\":\"%{attribute} %{message}\",\"messages\":{\"accepted\":\"musi zostać zaakceptowane\",\"blank\":\"nie może być puste\"}},\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"ja\":\"日本語\",\"ru\":\"Русский\",\"fr\":\"Français\",\"nb\":\"Norsk Bokmål\",\"pl\":\"Polski\",\"nl\":\"Nederlands\",\"pt-BR\":\"português brasileiro\"}},\"pt-BR\":{\"admin\":{\"actions\":{\"create\":\"criar\",\"created\":\"criado\",\"delete\":\"deletar\",\"deleted\":\"deletado\",\"update\":\"atualizar\",\"updated\":\"atualizado\"},\"credentials\":{\"log_out\":\"Deslogar\"},\"dashboard\":{\"add_new\":\"Adicionar novo\",\"ago\":\"atrás\",\"last_used\":\"Última utilização\",\"model_name\":\"Nome do modelo\",\"modify\":\"Modificar\",\"name\":\"Dashboard\",\"pagename\":\"Administração do site\",\"records\":\"Registros\",\"show\":\"Mostrar\"},\"delete\":{\"confirmation\":\"Sim, tenho certeza\",\"flash_confirmation\":\"%{name} foi destruído com sucesso\"},\"flash\":{\"error\":\"%{name} falhou ao %{action}\",\"noaction\":\"Nenhuma ação foi tomada\",\"successful\":\"%{name} foi %{action} com sucesso\"},\"history\":{\"name\":\"Histórico\",\"no_activity\":\"Nenhuma Atividade\",\"page_name\":\"Histórico para %{name}\"},\"list\":{\"add_new\":\"Adicionar novo\",\"delete_action\":\"Deletar\",\"delete_selected\":\"Deletar selecionados\",\"edit_action\":\"Editar\",\"search\":\"Buscar\",\"select\":\"Selecionar %{name} para editar\",\"select_action\":\"Selecionar\",\"show_all\":\"Mostrar todos\"},\"new\":{\"basic_info\":\"Informações básicas\",\"cancel\":\"Cancelar\",\"chosen\":\"Escolhido %{name}\",\"chose_all\":\"Escolher todos\",\"clear_all\":\"Limpar todos\",\"many_chars\":\"caracteres ou menos.\",\"one_char\":\"caractere.\",\"optional\":\"Opcional\",\"required\":\"Requerido\",\"save\":\"Salvar\",\"save_and_add_another\":\"Salvar e adicionar outro\",\"save_and_edit\":\"Salvar e alterar\",\"select_choice\":\"Selecione e clique\"}},\"build\":{\"duration\":\"Duração\",\"finished_at\":\"Concluído em\",\"job\":\"Trabalho\"},\"builds\":{\"allowed_failures\":\"Falhas Permitidas\",\"author\":\"Autor\",\"branch\":\"Branch\",\"build_matrix\":\"Matriz de Build\",\"commit\":\"Commit\",\"committer\":\"Committer\",\"compare\":\"Comparar\",\"config\":\"Config\",\"duration\":\"Duração\",\"finished_at\":\"Concluído em\",\"message\":\"Mensagem\",\"messages\":{\"sponsored_by\":\"Esta série de testes foi executada em uma caixa de processos patrocinada por\"},\"name\":\"Build\",\"started_at\":\"Iniciou em\"},\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} hora\",\"other\":\"%{count} horas\"},\"minutes_exact\":{\"one\":\"%{count} minuto\",\"other\":\"%{count} minutos\"},\"seconds_exact\":{\"one\":\"%{count} segundo\",\"other\":\"%{count} segundos\"}}},\"devise\":{\"confirmations\":{\"confirmed\":\"Sua conta foi confirmada com sucesso. Você agora está logado.\",\"send_instructions\":\"Você receberá um email com instruções de como confirmar sua conta em alguns minutos.\"},\"failure\":{\"inactive\":\"Sua conta ainda não foi ativada.\",\"invalid\":\"Email ou senha inválidos.\",\"invalid_token\":\"Token de autenticação inválido.\",\"locked\":\"Sua conta está trancada.\",\"timeout\":\"Sua sessão expirou, por favor faça seu login novamente.\",\"unauthenticated\":\"Você precisa fazer o login ou cadastrar-se antes de continuar.\",\"unconfirmed\":\"Você precisa confirmar sua conta antes de continuar.\"},\"mailer\":{\"confirmation_instructions\":{\"subject\":\"Instruções de confirmação\"},\"reset_password_instructions\":{\"subject\":\"Instruções de atualização de senha\"},\"unlock_instructions\":{\"subject\":\"Instruções de destrancamento\"}},\"passwords\":{\"send_instructions\":\"Você receberá um email com instruções de como atualizar sua senha em alguns minutos.\",\"updated\":\"Sua senha foi alterada com sucesso. Você agora está logado.\"},\"registrations\":{\"destroyed\":\"Tchau! Sua conta foi cancelada com sucesso. Esperamos vê-lo novamente em breve!\",\"signed_up\":\"Você se cadastrou com sucesso. Se ativada, uma confirmação foi enviada para seu email.\",\"updated\":\"Você atualizou sua conta com sucesso.\"},\"sessions\":{\"signed_in\":\"Logado com sucesso.\",\"signed_out\":\"Deslogado com sucesso.\"},\"unlocks\":{\"send_instructions\":\"Você receberá um email com instruções de como destrancar sua conta em alguns minutos.\",\"unlocked\":\"Sua conta foi destrancada com sucesso. Você agora está logado.\"}},\"errors\":{\"messages\":{\"already_confirmed\":\"já foi confirmado\",\"not_found\":\"não encontrado\",\"not_locked\":\"não estava trancado\"}},\"home\":{\"name\":\"home\"},\"jobs\":{\"allowed_failures\":\"Falhas Permitidas\",\"author\":\"Autor\",\"branch\":\"Branch\",\"build_matrix\":\"Matriz de Build\",\"commit\":\"Commit\",\"committer\":\"Committer\",\"compare\":\"Comparar\",\"config\":\"Config\",\"duration\":\"Duração\",\"finished_at\":\"Concluído em\",\"message\":\"Mensagem\",\"messages\":{\"sponsored_by\":\"Esta série de testes foi executada em uma caixa de processos patrocinada por\"},\"started_at\":\"Iniciou em\"},\"layouts\":{\"about\":{\"alpha\":\"Isto é um alpha.\",\"join\":\"Junte-se à nós e ajude!\",\"mailing_list\":\"Lista de email\",\"messages\":{\"alpha\":\"Por favor, <strong>não</strong> considere isto um serviço estável. Estamos muito longe disso! Mais informações <a href='https://github.com/travis-ci'>aqui.</a>\"},\"repository\":\"Repositório\",\"twitter\":\"Twitter\"},\"application\":{\"fork_me\":\"Faça fork no Github\",\"my_repositories\":\"Meus Repositórios\",\"recent\":\"Recentes\",\"search\":\"Buscar\",\"sponsers\":\"Patrocinadores\",\"sponsors_link\":\"Conheça todos os nossos patrocinadores &rarr;\"},\"mobile\":{\"author\":\"Autor\",\"build\":\"Build\",\"build_matrix\":\"Matriz de Build\",\"commit\":\"Commit\",\"committer\":\"Committer\",\"compare\":\"Comparar\",\"config\":\"Config\",\"duration\":\"Duração\",\"finished_at\":\"Concluído em\",\"job\":\"Trabalho\",\"log\":\"Log\"},\"top\":{\"admin\":\"Admin\",\"blog\":\"Blog\",\"docs\":\"Documentação\",\"github_login\":\"Logue com o Github\",\"home\":\"Home\",\"profile\":\"Perfil\",\"sign_out\":\"Sair\",\"stats\":\"Estatísticas\"}},\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"fr\":\"Français\",\"ja\":\"日本語\",\"nb\":\"Norsk Bokmål\",\"nl\":\"Nederlands\",\"pl\":\"Polski\",\"ru\":\"Русский\",\"pt-BR\":\"português brasileiro\"},\"no_job\":\"Não há trabalhos\",\"profiles\":{\"show\":{\"email\":\"Email\",\"github\":\"Github\",\"message\":{\"config\":\"como configurar opções de build\",\"your_repos\":\"Use os botões abaixo para ligar ou desligar o hook de serviço do Travis para seus projetos, e então, faça um push para o Github.<br />Para testar com múltiplas versões do Ruby, leia\"},\"messages\":{\"notice\":\"Para começar, leia nosso <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">Guia de início</a>. <small>Só leva alguns minutinhos.</small>\"},\"token\":\"Token\",\"update\":\"Atualizar\",\"update_locale\":\"Atualizar\",\"your_locale\":\"Sua língua\",\"your_repos\":\"Seus Repositórios\"}},\"queue\":\"Fila\",\"repositories\":{\"branch\":\"Branch\",\"commit\":\"Commit\",\"duration\":\"Duração\",\"finished_at\":\"Concluído em\",\"image_url\":\"URL da imagem\",\"markdown\":\"Markdown\",\"message\":\"Mensagem\",\"rdoc\":\"RDOC\",\"started_at\":\"Iniciou em\",\"tabs\":{\"branches\":\"Sumário do Branch\",\"build\":\"Build\",\"build_history\":\"Histórico de Build\",\"current\":\"Atual\",\"job\":\"Trabalho\"},\"textile\":\"Textile\"},\"repository\":{\"duration\":\"Duração\"},\"statistics\":{\"index\":{\"build_count\":\"Número de Builds\",\"count\":\"Número\",\"last_month\":\"último mês\",\"repo_growth\":\"Crescimento de Repositório\",\"total_builds\":\"Total de Builds\",\"total_projects\":\"Total de Projetos/Repositórios\"}},\"workers\":\"Processos\"},\"ru\":{\"admin\":{\"actions\":{\"create\":\"создать\",\"created\":\"создано\",\"delete\":\"удалить\",\"deleted\":\"удалено\",\"update\":\"обновить\",\"updated\":\"обновлено\"},\"credentials\":{\"log_out\":\"Выход\"},\"dashboard\":{\"add_new\":\"Добавить\",\"ago\":\"назад\",\"last_used\":\"Использовалось в последний раз\",\"model_name\":\"Имя модели\",\"modify\":\"Изменить\",\"name\":\"Панель управления\",\"pagename\":\"Управление сайтом\",\"records\":\"Записи\",\"show\":\"Показать\"},\"delete\":{\"confirmation\":\"Да, я уверен\",\"flash_confirmation\":\"%{name} успешно удалено\"},\"history\":{\"name\":\"История\",\"no_activity\":\"Нет активности\",\"page_name\":\"История %{name}\"},\"list\":{\"add_new\":\"Добавить\",\"delete_action\":\"Удалить\",\"delete_selected\":\"Удалить выбранные\",\"edit_action\":\"Редактировать\",\"search\":\"Поиск\",\"select\":\"Для редактирования выберите %{name}\",\"select_action\":\"Выбрать\",\"show_all\":\"Показать все\"},\"new\":{\"basic_info\":\"Основная информация\",\"cancel\":\"Отмена\",\"chosen\":\"Выбрано %{name}\",\"chose_all\":\"Выбрать все\",\"clear_all\":\"Очистить все\",\"one_char\":\"символ.\",\"optional\":\"Необязательно\",\"required\":\"Обязательно\",\"save\":\"Сохранить\",\"save_and_add_another\":\"Сохранить и добавить другое\",\"save_and_edit\":\"Сохранить и продолжить редактирование\",\"select_choice\":\"Выберите и кликните\",\"many_chars\":\"символов или меньше.\"},\"flash\":{\"error\":\"%{name} не удалось %{action}\",\"noaction\":\"Никаких действий не произведено\",\"successful\":\"%{name} было успешно %{action}\"}},\"build\":{\"duration\":\"Длительность\",\"finished_at\":\"Завершен\",\"job\":\"Задача\"},\"builds\":{\"allowed_failures\":\"Допустимые неудачи\",\"author\":\"Автор\",\"branch\":\"Ветка\",\"build_matrix\":\"Матрица\",\"commit\":\"Коммит\",\"committer\":\"Коммитер\",\"compare\":\"Дифф\",\"config\":\"Конфигурация\",\"duration\":\"Длительность\",\"finished_at\":\"Завершен\",\"message\":\"Комментарий\",\"messages\":{\"sponsored_by\":\"Эта серия тестов была запущена на машине, спонсируемой\"},\"name\":\"Билд\",\"started_at\":\"Начало\"},\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} час\",\"few\":\"%{count} часа\",\"many\":\"%{count} часов\",\"other\":\"%{count} часа\"},\"minutes_exact\":{\"one\":\"%{count} минута\",\"few\":\"%{count} минуты\",\"many\":\"%{count} минут\",\"other\":\"%{count} минуты\"},\"seconds_exact\":{\"one\":\"%{count} секунда\",\"few\":\"%{count} секунды\",\"many\":\"%{count} секунд\",\"other\":\"%{count} секунды\"}}},\"devise\":{\"confirmations\":{\"confirmed\":\"Ваш аккаунт успешно подтвержден. Приветствуем!\",\"send_instructions\":\"В течении нескольких минут вы получите электронное письмо с инструкциями для прохождения процедуры подтверждения аккаунта.\"},\"failure\":{\"inactive\":\"Ваш аккаунт еще не активирован.\",\"invalid\":\"Ошибка в адресе почты или пароле.\",\"invalid_token\":\"Неправильный токен аутентификации.\",\"locked\":\"Ваш аккаунт заблокирован.\",\"timeout\":\"Сессия окончена. Для продолжения работы войдите снова.\",\"unauthenticated\":\"Вам нужно войти или зарегистрироваться.\",\"unconfirmed\":\"Вы должны сначала подтвердить свой аккаунт.\"},\"mailer\":{\"confirmation_instructions\":{\"subject\":\"Инструкции для подтверждению аккаунта\"},\"reset_password_instructions\":{\"subject\":\"Инструкции для сброса пароля\"},\"unlock_instructions\":{\"subject\":\"Инструкции для разблокирования аккаунта\"}},\"passwords\":{\"send_instructions\":\"В течении нескольких минут вы получите электронное письмо с инструкциями для сброса пароля.\",\"updated\":\"Ваш пароль успешно изменен. Приветствуем!\"},\"registrations\":{\"destroyed\":\"Ваш аккаунт был успешно удален. Живите долго и процветайте!\",\"signed_up\":\"Вы успешно прошли регистрацию. Инструкции для подтверждения аккаунта отправлены на ваш электронный адрес.\",\"updated\":\"Аккаунт успешно обновлен.\"},\"sessions\":{\"signed_in\":\"Приветствуем!\",\"signed_out\":\"Удачи!\"},\"unlocks\":{\"send_instructions\":\"В течении нескольких минут вы получите электронное письмо с инструкциям для разблокировния аккаунта.\",\"unlocked\":\"Ваш аккаунт успешно разблокирован. Приветствуем!\"}},\"errors\":{\"messages\":{\"already_confirmed\":\"уже подтвержден\",\"not_found\":\"не найден\",\"not_locked\":\"не заблокирован\"}},\"home\":{\"name\":\"Главная\"},\"jobs\":{\"allowed_failures\":\"Допустимые неудачи\",\"author\":\"Автор\",\"branch\":\"Ветка\",\"build_matrix\":\"Матрица\",\"commit\":\"Коммит\",\"committer\":\"Коммитер\",\"compare\":\"Сравнение\",\"config\":\"Конфигурация\",\"duration\":\"Длительность\",\"finished_at\":\"Завершен\",\"message\":\"Комментарий\",\"messages\":{\"sponsored_by\":\"Эта серия тестов была запущена на машине спонсируемой\"},\"started_at\":\"Начало\"},\"layouts\":{\"about\":{\"alpha\":\"Это альфа-версия\",\"join\":\"Присоединяйтесь к нам и помогайте!\",\"mailing_list\":\"Лист рассылки\",\"messages\":{\"alpha\":\"Пожалуйста, <strong>не</strong> считайте данный сервис стабильным. Мы еще очень далеки от стабильности! <a href='https://github.com/travis-ci'>Подробности</a>\"},\"repository\":\"Репозиторий\",\"twitter\":\"Twitter\"},\"application\":{\"fork_me\":\"Fork me on Github\",\"my_repositories\":\"Мои репозитории\",\"recent\":\"Недавние\",\"search\":\"Поиск\",\"sponsers\":\"Спонсоры\",\"sponsors_link\":\"Список всех наших замечательных спонсоров &rarr;\"},\"mobile\":{\"author\":\"Автор\",\"build\":\"Сборка\",\"build_matrix\":\"Матрица сборок\",\"commit\":\"Коммит\",\"committer\":\"Коммитер\",\"compare\":\"Сравнение\",\"config\":\"Конфигурация\",\"duration\":\"Длительность\",\"finished_at\":\"Завершен\",\"job\":\"Задача\",\"log\":\"Журнал\"},\"top\":{\"admin\":\"Управление\",\"blog\":\"Блог\",\"docs\":\"Документация\",\"github_login\":\"Войти через Github\",\"home\":\"Главная\",\"profile\":\"Профиль\",\"sign_out\":\"Выход\",\"stats\":\"Статистика\"}},\"no_job\":\"Очередь пуста\",\"profiles\":{\"show\":{\"email\":\"Электронная почта\",\"github\":\"Github\",\"message\":{\"config\":\"как настроить специальные опции билда\",\"your_repos\":\"Используйте переключатели, чтобы включить Travis service hook для вашего проекта, а потом отправьте код на GitHub.<br />\\nДля тестирования на нескольких версиях Ruby смотрите\"},\"messages\":{\"notice\":\"Перед началом, пожалуйста, прочтите <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">Руководство для быстрого старта</a>. <small>Это займет всего несколько минут.</small>\"},\"token\":\"Токен\",\"update\":\"Обновить\",\"update_locale\":\"Обновить\",\"your_locale\":\"Ваш язык\",\"your_repos\":\"Ваши репозитории\"}},\"queue\":\"Очередь\",\"repositories\":{\"branch\":\"Ветка\",\"commit\":\"Коммит\",\"duration\":\"Длительность\",\"finished_at\":\"Завершен\",\"image_url\":\"URL изображения\",\"markdown\":\"Markdown\",\"message\":\"Комментарий\",\"rdoc\":\"RDOC\",\"started_at\":\"Начало\",\"tabs\":{\"branches\":\"Статус веток\",\"build\":\"Билд\",\"build_history\":\"История\",\"current\":\"Текущий\",\"job\":\"Задача\"},\"textile\":\"Textile\"},\"repository\":{\"duration\":\"Длительность\"},\"statistics\":{\"index\":{\"build_count\":\"Количество билдов\",\"count\":\"Количество\",\"last_month\":\"прошлый месяц\",\"repo_growth\":\"Рост числа репозиториев\",\"total_builds\":\"Всего билдов\",\"total_projects\":\"Всего проектов/репозиториев\"}},\"workers\":\"Машины\",\"locales\":{\"en\":\"English\",\"es\":\"Español\",\"ja\":\"日本語\",\"ru\":\"Русский\",\"fr\":\"Français\",\"nb\":\"Norsk Bokmål\",\"pl\":\"Polski\",\"nl\":\"Nederlands\",\"pt-BR\":\"português brasileiro\"}}};\n\n\n})();\n//@ sourceURL=config/locales");minispade.register('ext/ember/bound_helper', "(function() {// https://gist.github.com/2018185\n// For reference: https://github.com/wagenet/ember.js/blob/ac66dcb8a1cbe91d736074441f853e0da474ee6e/packages/ember-handlebars/lib/views/bound_property_view.js\nvar BoundHelperView = Ember.View.extend(Ember._Metamorph, {\n\n  context: null,\n  options: null,\n  property: null,\n  // paths of the property that are also observed\n  propertyPaths: [],\n\n  value: Ember.K,\n\n  valueForRender: function() {\n    var value = this.value(Ember.get(this.context, this.property), this.options);\n    if (this.options.escaped) { value = Handlebars.Utils.escapeExpression(value); }\n    return value;\n  },\n\n  render: function(buffer) {\n    buffer.push(this.valueForRender());\n  },\n\n  valueDidChange: function() {\n    if (this.morph.isRemoved()) { return; }\n    this.morph.html(this.valueForRender());\n  },\n\n  didInsertElement: function() {\n    this.valueDidChange();\n  },\n\n  init: function() {\n    this._super();\n    Ember.addObserver(this.context, this.property, this, 'valueDidChange');\n    this.get('propertyPaths').forEach(function(propName) {\n        Ember.addObserver(this.context, this.property + '.' + propName, this, 'valueDidChange');\n    }, this);\n  },\n\n  destroy: function() {\n    Ember.removeObserver(this.context, this.property, this, 'valueDidChange');\n    this.get('propertyPaths').forEach(function(propName) {\n        this.context.removeObserver(this.property + '.' + propName, this, 'valueDidChange');\n    }, this);\n    this._super();\n  }\n\n});\n\nEmber.registerBoundHelper = function(name, func) {\n  var propertyPaths = Array.prototype.slice.call(arguments, 2);\n  Ember.Handlebars.registerHelper(name, function(property, options) {\n    var data = options.data,\n        view = data.view,\n        ctx  = this;\n\n    var bindView = view.createChildView(BoundHelperView, {\n      property: property,\n      propertyPaths: propertyPaths,\n      context: ctx,\n      options: options.hash,\n      value: func\n    });\n\n    view.appendChild(bindView);\n  });\n};\n\n\n})();\n//@ sourceURL=ext/ember/bound_helper");minispade.register('ext/ember/namespace', "(function() {Em.Namespace.reopen = Em.Namespace.reopenClass\n\n\n\n})();\n//@ sourceURL=ext/ember/namespace");
\ No newline at end of file